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 <nicovazque...@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); + } +}