You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by nv...@apache.org on 2024/01/02 18:09:59 UTC
(cloudstack) 01/01: [NSX] Add more unit tests
This is an automated email from the ASF dual-hosted git repository.
nvazquez pushed a commit to branch nsx-unit-tests-coverage-inc
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 9e307474d79ff1655cd0bb504a1aaacf5e821883
Author: nvazquez <ni...@gmail.com>
AuthorDate: Tue Jan 2 15:09:39 2024 -0300
[NSX] Add more unit tests
---
.../apache/cloudstack/service/NsxApiClient.java | 2 +-
.../cloudstack/utils/NsxControllerUtils.java | 5 +-
.../org/apache/cloudstack/utils/NsxHelper.java | 6 -
.../cloudstack/resource/NsxResourceTest.java | 136 +++++++++++---
.../cloudstack/utils/NsxControllerUtilsTest.java | 198 +++++++++++++++++++++
5 files changed, 315 insertions(+), 32 deletions(-)
diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
index 5a3cf48aa04..50b0dae3396 100644
--- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
+++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
@@ -289,7 +289,7 @@ public class NsxApiClient {
return types;
}
- public void createTier1Gateway(String name, String tier0Gateway, String edgeCluster, boolean sourceNatEnabled) {
+ public void createTier1Gateway(String name, String tier0Gateway, String edgeCluster, boolean sourceNatEnabled) throws CloudRuntimeException {
String tier0GatewayPath = TIER_0_GATEWAY_PATH_PREFIX + tier0Gateway;
Tier1 tier1 = getTier1Gateway(name);
if (tier1 != null) {
diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxControllerUtils.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxControllerUtils.java
index eec19e3e075..7a4d5cfcc8b 100644
--- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxControllerUtils.java
+++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxControllerUtils.java
@@ -36,9 +36,9 @@ public class NsxControllerUtils {
private static final Logger s_logger = Logger.getLogger(NsxControllerUtils.class);
@Inject
- AgentManager agentMgr;
+ private AgentManager agentMgr;
@Inject
- NsxProviderDao nsxProviderDao;
+ private NsxProviderDao nsxProviderDao;
public static String getNsxNatRuleId(long domainId, long accountId, long dataCenterId, long resourceId, boolean isForVpc) {
String resourcePrefix = isForVpc ? "V" : "N";
@@ -50,7 +50,6 @@ public class NsxControllerUtils {
}
public NsxAnswer sendNsxCommand(NsxCommand cmd, long zoneId) throws IllegalArgumentException {
-
NsxProviderVO nsxProviderVO = nsxProviderDao.findByZoneId(zoneId);
if (nsxProviderVO == null) {
s_logger.error("No NSX controller was found!");
diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxHelper.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxHelper.java
index 1d1dd033928..54df6a11dc9 100644
--- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxHelper.java
+++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxHelper.java
@@ -24,7 +24,6 @@ import com.cloud.network.vpc.VpcVO;
import com.cloud.user.Account;
import org.apache.cloudstack.agent.api.CreateNsxDhcpRelayConfigCommand;
import org.apache.cloudstack.agent.api.CreateNsxSegmentCommand;
-import org.apache.cloudstack.agent.api.CreateNsxTier1GatewayCommand;
import org.apache.cloudstack.agent.api.CreateOrUpdateNsxTier1NatRuleCommand;
import java.util.List;
@@ -43,11 +42,6 @@ public class NsxHelper {
networkVO.getVpcId(), vpcName, networkVO.getId(), networkVO.getName(), networkVO.getGateway(), networkVO.getCidr());
}
- public static CreateNsxTier1GatewayCommand createNsxTier1GatewayCommand(DomainVO domain, Account account, DataCenter zone,
- Long networkResourceId, String networkResourceName, boolean isResourceVpc) {
- return new CreateNsxTier1GatewayCommand(domain.getId(), account.getId(), zone.getId(), networkResourceId, networkResourceName, isResourceVpc, false);
- }
-
public static CreateOrUpdateNsxTier1NatRuleCommand createOrUpdateNsxNatRuleCommand(long domainId, long accountId, long zoneId,
String tier1Gateway, String action, String ipAddress,
String natRuleId) {
diff --git a/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/resource/NsxResourceTest.java b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/resource/NsxResourceTest.java
index e47da0ce9e6..c9b8fd1d27d 100644
--- a/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/resource/NsxResourceTest.java
+++ b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/resource/NsxResourceTest.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.resource;
import com.cloud.network.dao.NetworkVO;
+import com.cloud.utils.exception.CloudRuntimeException;
import com.vmware.nsx.model.TransportZone;
import com.vmware.nsx.model.TransportZoneListResult;
import com.vmware.nsx_policy.model.EnforcementPoint;
@@ -31,18 +32,21 @@ import org.apache.cloudstack.agent.api.CreateNsxPortForwardRuleCommand;
import org.apache.cloudstack.agent.api.CreateNsxSegmentCommand;
import org.apache.cloudstack.agent.api.CreateNsxStaticNatCommand;
import org.apache.cloudstack.agent.api.CreateNsxTier1GatewayCommand;
+import org.apache.cloudstack.agent.api.CreateOrUpdateNsxTier1NatRuleCommand;
import org.apache.cloudstack.agent.api.DeleteNsxDistributedFirewallRulesCommand;
import org.apache.cloudstack.agent.api.DeleteNsxNatRuleCommand;
import org.apache.cloudstack.agent.api.DeleteNsxSegmentCommand;
import org.apache.cloudstack.agent.api.DeleteNsxTier1GatewayCommand;
import org.apache.cloudstack.agent.api.NsxCommand;
import org.apache.cloudstack.service.NsxApiClient;
+import org.apache.cloudstack.utils.NsxControllerUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
@@ -51,9 +55,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertThrows;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -72,12 +80,22 @@ public class NsxResourceTest {
@Mock
TransportZoneListResult transportZoneListResult;
+ private static final String transportZone = "Overlay";
+ private static final String tier0Gateway = "Tier0-GW01";
+ private static final String edgeCluster = "EdgeCluster";
+
+ private static final long domainId = 1L;
+ private static final long accountId = 2L;
+ private static final long zoneId = 1L;
+
@Before
public void setup() {
closeable = MockitoAnnotations.openMocks(this);
nsxResource = new NsxResource();
nsxResource.nsxApiClient = nsxApi;
- nsxResource.transportZone = "Overlay";
+ nsxResource.transportZone = transportZone;
+ nsxResource.tier0Gateway = tier0Gateway;
+ nsxResource.edgeCluster = edgeCluster;
}
@After
@@ -94,9 +112,9 @@ public class NsxResourceTest {
params.put("hostname", "host1");
params.put("username", "admin");
params.put("password", "password");
- params.put("tier0Gateway", "Tier0-GW01");
- params.put("edgeCluster", "EdgeCluster");
- params.put("transportZone", "Overlay");
+ params.put("tier0Gateway", tier0Gateway);
+ params.put("edgeCluster", edgeCluster);
+ params.put("transportZone", transportZone);
params.put("port", "443");
Assert.assertTrue(nsxResource.configure("nsx", params));
@@ -111,22 +129,39 @@ public class NsxResourceTest {
@Test
public void testCreateNsxTier1Gateway() {
- NsxCommand command = new CreateNsxTier1GatewayCommand(1L, 2L,
- 1L, 3L, "VPC01", true, false);
-
+ NsxCommand command = new CreateNsxTier1GatewayCommand(domainId, accountId, zoneId,
+ 3L, "VPC01", true, false);
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
assertTrue(answer.getResult());
}
@Test
- public void testDeleteTier1Gateway() {
- NsxCommand command = new DeleteNsxTier1GatewayCommand(1L, 1L,
- 1L, 2L, "VPC01", true);
+ public void testCreateNsxTier1GatewayError() {
+ NsxCommand command = new CreateNsxTier1GatewayCommand(domainId, accountId, zoneId,
+ 3L, "VPC01", true, false);
+ Mockito.doThrow(new CloudRuntimeException("ERROR"))
+ .when(nsxApi).createTier1Gateway(anyString(), anyString(), anyString(), anyBoolean());
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+ @Test
+ public void testDeleteTier1Gateway() {
+ NsxCommand command = new DeleteNsxTier1GatewayCommand(domainId, accountId, zoneId,
+ 2L, "VPC01", true);
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
assertTrue(answer.getResult());
}
+ @Test
+ public void testDeleteTier1GatewayError() {
+ NsxCommand command = new DeleteNsxTier1GatewayCommand(domainId, accountId, zoneId,
+ 2L, "VPC01", true);
+ Mockito.doThrow(new CloudRuntimeException("ERROR")).when(nsxApi).deleteTier1Gateway(anyString());
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+
@Test
public void testCreateNsxSegment() {
NetworkVO tierNetwork = new NetworkVO();
@@ -137,10 +172,10 @@ public class NsxResourceTest {
List<Site> siteList = List.of(site);
EnforcementPoint enforcementPoint = mock(EnforcementPoint.class);
List<EnforcementPoint> enforcementPointList = List.of(enforcementPoint);
- List<TransportZone> transportZoneList = List.of(new TransportZone.Builder().setDisplayName("Overlay").build());
+ List<TransportZone> transportZoneList = List.of(new TransportZone.Builder().setDisplayName(transportZone).build());
- NsxCommand command = new CreateNsxSegmentCommand(1L, 1L,
- 1L, 2L, "VPC01", 3L, "Web", "10.10.10.1", "10.10.10.0/24");
+ NsxCommand command = new CreateNsxSegmentCommand(domainId, accountId, zoneId,
+ 2L, "VPC01", 3L, "Web", "10.10.10.1", "10.10.10.0/24");
when(nsxApi.getSites()).thenReturn(siteListResult);
when(siteListResult.getResults()).thenReturn(siteList);
@@ -157,33 +192,82 @@ public class NsxResourceTest {
assertTrue(answer.getResult());
}
+ @Test
+ public void testCreateNsxSegmentEmptySites() {
+ when(nsxApi.getSites()).thenReturn(null);
+ CreateNsxSegmentCommand command = Mockito.mock(CreateNsxSegmentCommand.class);
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+
+ @Test
+ public void testCreateNsxSegmentEmptyEnforcementPoints() {
+ Site site = mock(Site.class);
+ List<Site> siteList = List.of(site);
+ when(nsxApi.getSites()).thenReturn(siteListResult);
+ when(siteListResult.getResults()).thenReturn(siteList);
+ when(siteList.get(0).getId()).thenReturn("site1");
+ when(nsxApi.getEnforcementPoints(anyString())).thenReturn(null);
+ CreateNsxSegmentCommand command = Mockito.mock(CreateNsxSegmentCommand.class);
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+
+ @Test
+ public void testCreateNsxSegmentEmptyTransportZones() {
+ Site site = mock(Site.class);
+ List<Site> siteList = List.of(site);
+ when(nsxApi.getSites()).thenReturn(siteListResult);
+ when(siteListResult.getResults()).thenReturn(siteList);
+ when(siteList.get(0).getId()).thenReturn("site1");
+ EnforcementPoint enforcementPoint = mock(EnforcementPoint.class);
+ List<EnforcementPoint> enforcementPointList = List.of(enforcementPoint);
+ when(enforcementPointListResult.getResults()).thenReturn(enforcementPointList);
+ when(enforcementPointList.get(0).getPath()).thenReturn("enforcementPointPath");
+ when(nsxApi.getTransportZones()).thenReturn(null);
+ CreateNsxSegmentCommand command = Mockito.mock(CreateNsxSegmentCommand.class);
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+
@Test
public void testDeleteNsxSegment() {
NetworkVO tierNetwork = new NetworkVO();
tierNetwork.setName("tier1");
- DeleteNsxSegmentCommand command = new DeleteNsxSegmentCommand(1L, 1L, 1L, 3L, "VPC01", 2L, "Web");
-
+ DeleteNsxSegmentCommand command = new DeleteNsxSegmentCommand(domainId, accountId, zoneId,
+ 3L, "VPC01", 2L, "Web");
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
assertTrue(answer.getResult());
}
+ @Test
+ public void testDeleteNsxSegmentError() {
+ NetworkVO tierNetwork = new NetworkVO();
+ tierNetwork.setName("tier1");
+ DeleteNsxSegmentCommand command = new DeleteNsxSegmentCommand(domainId, accountId, zoneId,
+ 3L, "VPC01", 2L, "Web");
+ doThrow(new CloudRuntimeException("ERROR")).when(nsxApi).deleteSegment(anyLong(), anyLong(), anyLong(), anyLong(), anyLong(), anyString());
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertFalse(answer.getResult());
+ }
+
@Test
public void testCreateStaticNat() {
- CreateNsxStaticNatCommand cmd = new CreateNsxStaticNatCommand(1L, 1L, 1L, 3L, "VPC01", true, 2L, "10.1.12.10", "172.30.20.12");
+ CreateNsxStaticNatCommand cmd = new CreateNsxStaticNatCommand(domainId, accountId, zoneId, 3L, "VPC01", true, 2L, "10.1.12.10", "172.30.20.12");
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
}
@Test
public void testCreatePortForwardRule() {
- CreateNsxPortForwardRuleCommand cmd = new CreateNsxPortForwardRuleCommand(1L, 1L, 1L, 3L, "VPC01", true, 2L, 5L, "10.1.12.10", "172.30.20.12", "2222", "22", "tcp");
+ CreateNsxPortForwardRuleCommand cmd = new CreateNsxPortForwardRuleCommand(domainId, accountId, zoneId, 3L, "VPC01", true, 2L, 5L, "10.1.12.10", "172.30.20.12", "2222", "22", "tcp");
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
}
@Test
public void testDeleteNsxNatRule() {
- DeleteNsxNatRuleCommand cmd = new DeleteNsxNatRuleCommand(1L, 1L, 1L, 3L, "VPC01", true, 2L, 5L, "22", "tcp");
+ DeleteNsxNatRuleCommand cmd = new DeleteNsxNatRuleCommand(domainId, accountId, zoneId, 3L, "VPC01", true, 2L, 5L, "22", "tcp");
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
}
@@ -193,7 +277,7 @@ public class NsxResourceTest {
List<NsxLoadBalancerMember> loadBalancerMembers = List.of(new NsxLoadBalancerMember(
1L, "172.30.20.12", 6443
));
- CreateNsxLoadBalancerRuleCommand cmd = new CreateNsxLoadBalancerRuleCommand(1L, 1L, 1L,
+ CreateNsxLoadBalancerRuleCommand cmd = new CreateNsxLoadBalancerRuleCommand(domainId, accountId, zoneId,
3L, "VPC01", true, loadBalancerMembers, 1L, "6443", "6443", "RoundRobin", "TCP");
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
@@ -203,7 +287,7 @@ public class NsxResourceTest {
@Test
public void testCreateNsxDistributedFirewallRule() {
List<NsxNetworkRule> networkRules = List.of(new NsxNetworkRule());
- CreateNsxDistributedFirewallRulesCommand cmd = new CreateNsxDistributedFirewallRulesCommand(1L, 1L, 1L,
+ CreateNsxDistributedFirewallRulesCommand cmd = new CreateNsxDistributedFirewallRulesCommand(domainId, accountId, zoneId,
3L, 1L, networkRules);
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
@@ -212,11 +296,19 @@ public class NsxResourceTest {
@Test
public void testDeleteNsxDistributedFirewallRule() {
List<NsxNetworkRule> networkRules = List.of(new NsxNetworkRule());
- DeleteNsxDistributedFirewallRulesCommand cmd = new DeleteNsxDistributedFirewallRulesCommand(1L, 1L, 1L,
+ DeleteNsxDistributedFirewallRulesCommand cmd = new DeleteNsxDistributedFirewallRulesCommand(domainId, accountId, zoneId,
3L, 1L, networkRules);
NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(cmd);
assertTrue(answer.getResult());
}
-
+ @Test
+ public void testCreateTier1NatRule() {
+ long vpcId = 5L;
+ String tier1GatewayName = NsxControllerUtils.getTier1GatewayName(domainId, accountId, zoneId, vpcId, true);
+ CreateOrUpdateNsxTier1NatRuleCommand command = new CreateOrUpdateNsxTier1NatRuleCommand(domainId, accountId, zoneId,
+ tier1GatewayName, "SNAT", "10.1.10.10", "natRuleId");
+ NsxAnswer answer = (NsxAnswer) nsxResource.executeRequest(command);
+ assertTrue(answer.getResult());
+ }
}
diff --git a/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/utils/NsxControllerUtilsTest.java b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/utils/NsxControllerUtilsTest.java
new file mode 100644
index 00000000000..58d7cfc4787
--- /dev/null
+++ b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/utils/NsxControllerUtilsTest.java
@@ -0,0 +1,198 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.utils;
+
+import com.cloud.agent.AgentManager;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.dao.NsxProviderDao;
+import com.cloud.network.element.NsxProviderVO;
+import org.apache.cloudstack.NsxAnswer;
+import org.apache.cloudstack.agent.api.NsxCommand;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class NsxControllerUtilsTest {
+
+ private static final long domainId = 2L;
+ private static final long accountId = 10L;
+ private static final long zoneId = 1L;
+ private static final long nsxProviderHostId = 1L;
+
+ private static final String commonPrefix = String.format("D%s-A%s-Z%s", domainId, accountId, zoneId);
+
+ @Mock
+ private NsxProviderDao nsxProviderDao;
+ @Mock
+ private AgentManager agentMgr;
+
+ @Spy
+ @InjectMocks
+ private NsxControllerUtils nsxControllerUtils = new NsxControllerUtils();
+
+ @Mock
+ private NsxProviderVO nsxProviderVO;
+
+ @Before
+ public void setup() {
+ Mockito.when(nsxProviderDao.findByZoneId(zoneId)).thenReturn(nsxProviderVO);
+ Mockito.when(nsxProviderVO.getHostId()).thenReturn(nsxProviderHostId);
+ }
+
+ @Test(expected = InvalidParameterValueException.class)
+ public void testSendCommandAnswerFailure() {
+ NsxCommand cmd = Mockito.mock(NsxCommand.class);
+ Mockito.when(nsxProviderDao.findByZoneId(zoneId)).thenReturn(null);
+ nsxControllerUtils.sendNsxCommand(cmd, zoneId);
+ }
+
+ @Test(expected = InvalidParameterValueException.class)
+ public void testSendCommandNoNsxProvider() {
+ NsxCommand cmd = Mockito.mock(NsxCommand.class);
+ Mockito.when(agentMgr.easySend(nsxProviderHostId, cmd)).thenReturn(null);
+ nsxControllerUtils.sendNsxCommand(cmd, zoneId);
+ }
+
+ @Test
+ public void testSendCommand() {
+ NsxCommand cmd = Mockito.mock(NsxCommand.class);
+ NsxAnswer answer = Mockito.mock(NsxAnswer.class);
+ Mockito.when(answer.getResult()).thenReturn(true);
+ Mockito.when(agentMgr.easySend(nsxProviderHostId, cmd)).thenReturn(answer);
+ NsxAnswer nsxAnswer = nsxControllerUtils.sendNsxCommand(cmd, zoneId);
+ Assert.assertNotNull(nsxAnswer);
+ }
+
+ @Test
+ public void testGetNsxNatRuleIdForVpc() {
+ long vpcId = 5L;
+ String nsxNatRuleId = NsxControllerUtils.getNsxNatRuleId(domainId, accountId, zoneId, vpcId, true);
+ String ruleIdPart = String.format("V%s-NAT", vpcId);
+ String expected = String.format("%s-%s", commonPrefix, ruleIdPart);
+ Assert.assertEquals(expected, nsxNatRuleId);
+ }
+
+ @Test
+ public void testGetNsxNatRuleIdForNetwork() {
+ long networkId = 5L;
+ String nsxNatRuleId = NsxControllerUtils.getNsxNatRuleId(domainId, accountId, zoneId, networkId, false);
+ String ruleIdPart = String.format("N%s-NAT", networkId);
+ String expected = String.format("%s-%s", commonPrefix, ruleIdPart);
+ Assert.assertEquals(expected, nsxNatRuleId);
+ }
+
+ @Test
+ public void testGetNsxSegmentIdForVpcNetwork() {
+ long vpcId = 5L;
+ long networkId = 2L;
+ String nsxSegmentName = NsxControllerUtils.getNsxSegmentId(domainId, accountId, zoneId, vpcId, networkId);
+ String segmentPart = String.format("V%s-S%s", vpcId, networkId);
+ String expected = String.format("%s-%s", commonPrefix, segmentPart);
+ Assert.assertEquals(expected, nsxSegmentName);
+ }
+
+ @Test
+ public void testGetNsxSegmentIdForNonVpcNetwork() {
+ Long vpcId = null;
+ long networkId = 2L;
+ String nsxSegmentName = NsxControllerUtils.getNsxSegmentId(domainId, accountId, zoneId, vpcId, networkId);
+ String segmentPart = String.format("S%s", networkId);
+ String expected = String.format("%s-%s", commonPrefix, segmentPart);
+ Assert.assertEquals(expected, nsxSegmentName);
+ }
+
+ @Test
+ public void testGetNsxDistributedFirewallPolicyRuleIdForVpcNetwork() {
+ long vpcId = 5L;
+ long networkId = 2L;
+ long ruleId = 1L;
+ String nsxSegmentName = NsxControllerUtils.getNsxSegmentId(domainId, accountId, zoneId, vpcId, networkId);
+ String expected = String.format("%s-R%s", nsxSegmentName, ruleId);
+ Assert.assertEquals(expected, NsxControllerUtils.getNsxDistributedFirewallPolicyRuleId(nsxSegmentName, ruleId));
+ }
+
+ @Test
+ public void testGetTier1GatewayNameForVpcNetwork() {
+ long networkOnVpcId = 5L;
+ String networkPart = String.format("V%s", networkOnVpcId);
+ String expected = String.format("%s-%s", commonPrefix, networkPart);
+ Assert.assertEquals(expected, NsxControllerUtils.getTier1GatewayName(domainId, accountId, zoneId, networkOnVpcId, true));
+ }
+
+ @Test
+ public void testGetTier1GatewayNameForNetwork() {
+ long networkId = 5L;
+ String networkPart = String.format("N%s", networkId);
+ String expected = String.format("%s-%s", commonPrefix, networkPart);
+ Assert.assertEquals(expected, NsxControllerUtils.getTier1GatewayName(domainId, accountId, zoneId, networkId, false));
+ }
+
+ @Test
+ public void testGetNsxDhcpRelayConfigIdForVpcNetwork() {
+ long vpcId = 5L;
+ long networkId = 2L;
+ String relayPart = String.format("V%s-S%s-Relay", vpcId, networkId);
+ String expected = String.format("%s-%s", commonPrefix, relayPart);
+ String dhcpRelayConfigId = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneId, domainId, accountId, vpcId, networkId);
+ Assert.assertEquals(expected, dhcpRelayConfigId);
+ }
+
+ @Test
+ public void testGetNsxDhcpRelayConfigIdForNetwork() {
+ Long vpcId = null;
+ long networkId = 2L;
+ String relayPart = String.format("S%s-Relay", networkId);
+ String expected = String.format("%s-%s", commonPrefix, relayPart);
+ String dhcpRelayConfigId = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneId, domainId, accountId, vpcId, networkId);
+ Assert.assertEquals(expected, dhcpRelayConfigId);
+ }
+
+ @Test
+ public void testGetStaticNatRuleNameForVpc() {
+ long vpcId = 5L;
+ String rulePart = String.format("V%s-STATICNAT", vpcId);
+ String expected = String.format("%s-%s", commonPrefix, rulePart);
+ String staticNatRuleName = NsxControllerUtils.getStaticNatRuleName(domainId, accountId, zoneId, vpcId, true);
+ Assert.assertEquals(expected, staticNatRuleName);
+ }
+
+ @Test
+ public void testGetStaticNatRuleNameForNetwork() {
+ long network = 5L;
+ String rulePart = String.format("N%s-STATICNAT", network);
+ String expected = String.format("%s-%s", commonPrefix, rulePart);
+ String staticNatRuleName = NsxControllerUtils.getStaticNatRuleName(domainId, accountId, zoneId, network, false);
+ Assert.assertEquals(expected, staticNatRuleName);
+ }
+
+ @Test
+ public void testGetPortForwardRuleName() {
+ long vpcId = 5L;
+ long ruleId = 2L;
+ String rulePart = String.format("V%s-PF%s", vpcId, ruleId);
+ String expected = String.format("%s-%s", commonPrefix, rulePart);
+ String portForwardRuleName = NsxControllerUtils.getPortForwardRuleName(domainId, accountId, zoneId, vpcId, ruleId, true);
+ Assert.assertEquals(expected, portForwardRuleName);
+ }
+}