More tests

This commit is contained in:
nvazquez 2024-01-02 17:39:27 -03:00
parent 9e307474d7
commit f7e49802ee
No known key found for this signature in database
GPG Key ID: 656E1BCC8CB54F84
1 changed files with 71 additions and 3 deletions

View File

@ -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;
@ -29,12 +34,14 @@ 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;
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;
@ -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);
@ -80,15 +91,72 @@ public class NsxServiceImplTest {
}
@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));
}
}