Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
More tests
  • Loading branch information
nvazquez committed Jan 2, 2024
commit f7e49802ee0926cffe92b8aa23ad1d4ba6113041
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,16 @@
// under the License.
package org.apache.cloudstack.service;

import com.cloud.network.IpAddress;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.vpc.VpcVO;
import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.utils.net.Ip;
import org.apache.cloudstack.NsxAnswer;
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.DeleteNsxNatRuleCommand;
import org.apache.cloudstack.agent.api.DeleteNsxSegmentCommand;
import org.apache.cloudstack.agent.api.DeleteNsxTier1GatewayCommand;
import org.apache.cloudstack.utils.NsxControllerUtils;
Expand All @@ -29,12 +34,14 @@
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;

import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

Expand All @@ -48,6 +55,10 @@ public class NsxServiceImplTest {

AutoCloseable closeable;

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);
Expand Down Expand Up @@ -80,15 +91,72 @@ public void testDeleteVpcNetwork() {
}

@Test
public void testDelete() {
public void testDeleteNetworkOnVpc() {
NetworkVO network = new NetworkVO();
network.setVpcId(1L);
VpcVO vpc = mock(VpcVO.class);
when(vpcDao.findById(1L)).thenReturn(mock(VpcVO.class));
NsxAnswer deleteNsxSegmentAnswer = mock(NsxAnswer.class);
when(nsxControllerUtils.sendNsxCommand(any(DeleteNsxSegmentCommand.class), anyLong())).thenReturn(deleteNsxSegmentAnswer);
when(deleteNsxSegmentAnswer.getResult()).thenReturn(true);

assertTrue(nsxService.deleteNetwork(1L, 3L, 5L, network));
assertTrue(nsxService.deleteNetwork(zoneId, accountId, domainId, network));
}

@Test
public void testDeleteNetwork() {
NetworkVO network = new NetworkVO();
network.setVpcId(null);
NsxAnswer deleteNsxSegmentAnswer = mock(NsxAnswer.class);
when(deleteNsxSegmentAnswer.getResult()).thenReturn(true);
when(nsxControllerUtils.sendNsxCommand(any(DeleteNsxSegmentCommand.class), anyLong())).thenReturn(deleteNsxSegmentAnswer);
NsxAnswer deleteNsxTier1GatewayAnswer = mock(NsxAnswer.class);
when(deleteNsxTier1GatewayAnswer.getResult()).thenReturn(true);
when(nsxControllerUtils.sendNsxCommand(any(DeleteNsxTier1GatewayCommand.class), anyLong())).thenReturn(deleteNsxTier1GatewayAnswer);
assertTrue(nsxService.deleteNetwork(zoneId, accountId, domainId, network));
}

@Test
public void testUpdateVpcSourceNatIp() {
VpcVO vpc = mock(VpcVO.class);
IpAddress ipAddress = mock(IpAddress.class);
Ip ip = Mockito.mock(Ip.class);
when(ip.addr()).thenReturn("10.1.10.10");
when(ipAddress.getAddress()).thenReturn(ip);
long vpcId = 1L;
when(vpc.getAccountId()).thenReturn(accountId);
when(vpc.getDomainId()).thenReturn(domainId);
when(vpc.getZoneId()).thenReturn(zoneId);
when(vpc.getId()).thenReturn(vpcId);
NsxAnswer answer = mock(NsxAnswer.class);
when(answer.getResult()).thenReturn(true);
when(nsxControllerUtils.sendNsxCommand(any(CreateOrUpdateNsxTier1NatRuleCommand.class), eq(zoneId))).thenReturn(answer);
nsxService.updateVpcSourceNatIp(vpc, ipAddress);
Mockito.verify(nsxControllerUtils).sendNsxCommand(any(CreateOrUpdateNsxTier1NatRuleCommand.class), eq(zoneId));
}

@Test
public void testCreateStaticNatRule() {
long networkId = 1L;
String networkName = "Network-Test";
long vmId = 1L;
String publicIp = "10.10.1.10";
String vmIp = "192.168.1.20";
NsxAnswer answer = Mockito.mock(NsxAnswer.class);
when(answer.getResult()).thenReturn(true);
when(nsxControllerUtils.sendNsxCommand(any(CreateNsxStaticNatCommand.class), eq(zoneId))).thenReturn(answer);
nsxService.createStaticNatRule(zoneId, domainId, accountId,
networkId, networkName, true, vmId, publicIp, vmIp);
Mockito.verify(nsxControllerUtils).sendNsxCommand(any(CreateNsxStaticNatCommand.class), eq(zoneId));
}

@Test
public void testDeleteStaticNatRule() {
long networkId = 1L;
String networkName = "Network-Test";
NsxAnswer answer = Mockito.mock(NsxAnswer.class);
when(answer.getResult()).thenReturn(true);
when(nsxControllerUtils.sendNsxCommand(any(DeleteNsxNatRuleCommand.class), eq(zoneId))).thenReturn(answer);
nsxService.deleteStaticNatRule(zoneId, domainId, accountId, networkId, networkName, true);
Mockito.verify(nsxControllerUtils).sendNsxCommand(any(DeleteNsxNatRuleCommand.class), eq(zoneId));
}
}