Refactoring org.apache.cloudstack.network.tungsten.service (#8098)

* Refactoring reduces mock cloning of TungstenAnswer

* Apply suggestions from code review

Great suggestions, thanks a lot!

Co-authored-by: dahn <daan.hoogland@gmail.com>

* Rename CreateMockTungstenAnswer  to MockTungstenAnswerFactory

* Updated parameter to camel case.

* Revised in accordance with the latest update

* Replace all `\r` with `\n`.

* Replace all \r with \n.

* temp for re-uploading

* reupdate

* update line ending

* update ling ending

* Add static methods to avoid duplicate creation of new

---------

Co-authored-by: dahn <daan.hoogland@gmail.com>
This commit is contained in:
gzhao9 2023-11-03 07:49:59 -04:00 committed by GitHub
parent 2f97e3bd83
commit 9e8f591ace
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 188 additions and 278 deletions

View File

@ -0,0 +1,38 @@
// 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.network.tungsten.service;
import org.apache.cloudstack.network.tungsten.agent.api.TungstenAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class MockTungstenAnswerFactory {
TungstenAnswer tungstenAnswer;
MockTungstenAnswerFactory(boolean returnResult){
tungstenAnswer=mock(TungstenAnswer.class);
when(tungstenAnswer.getResult()).thenReturn(returnResult);
}
TungstenAnswer get() {
return tungstenAnswer;
}
public static TungstenAnswer get(boolean returnResult){
TungstenAnswer tungstenAnswers = new MockTungstenAnswerFactory(returnResult).get();
return tungstenAnswers;
}
}

View File

@ -256,13 +256,12 @@ public class TungstenElementTest {
StaticNatImpl staticNat = mock(StaticNatImpl.class);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class);
TungstenAnswer assignFloatingIpAnswer = MockTungstenAnswerFactory.get(true);
Nic nic = mock(Nic.class);
Network publicNetwork = mock(Network.class);
List<StaticNatImpl> staticNatList = List.of(staticNat);
when(staticNat.isForRevoke()).thenReturn(false);
when(assignFloatingIpAnswer.getResult()).thenReturn(true);
when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO);
when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO);
when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic);
@ -278,13 +277,12 @@ public class TungstenElementTest {
StaticNatImpl staticNat = mock(StaticNatImpl.class);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class);
TungstenAnswer assignFloatingIpAnswer = MockTungstenAnswerFactory.get(false);
Nic nic = mock(Nic.class);
Network publicNetwork = mock(Network.class);
List<StaticNatImpl> staticNatList = List.of(staticNat);
when(staticNat.isForRevoke()).thenReturn(false);
when(assignFloatingIpAnswer.getResult()).thenReturn(false);
when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO);
when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO);
when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic);
@ -300,13 +298,12 @@ public class TungstenElementTest {
StaticNatImpl staticNat = mock(StaticNatImpl.class);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class);
TungstenAnswer releaseFloatingIpAnswer = MockTungstenAnswerFactory.get(true);
Nic nic = mock(Nic.class);
Network publicNetwork = mock(Network.class);
List<StaticNatImpl> staticNatList = List.of(staticNat);
when(staticNat.isForRevoke()).thenReturn(true);
when(releaseFloatingIpAnswer.getResult()).thenReturn(true);
when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO);
when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO);
when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic);
@ -322,13 +319,12 @@ public class TungstenElementTest {
StaticNatImpl staticNat = mock(StaticNatImpl.class);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class);
TungstenAnswer releaseFloatingIpAnswer = MockTungstenAnswerFactory.get(false);
Nic nic = mock(Nic.class);
Network publicNetwork = mock(Network.class);
List<StaticNatImpl> staticNatList = List.of(staticNat);
when(staticNat.isForRevoke()).thenReturn(true);
when(releaseFloatingIpAnswer.getResult()).thenReturn(false);
when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO);
when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO);
when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic);
@ -355,11 +351,11 @@ public class TungstenElementTest {
TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class);
TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class);
TungstenAnswer createTungstenNetworkLoadbalancerAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenLoadBalancerPoolAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenLoadBalancerMemberAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenLoadBalancerListenerAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenHealthMonitorAnswer = MockTungstenAnswerFactory.get(true);
LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class);
when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie");
List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue"));
@ -382,10 +378,6 @@ public class TungstenElementTest {
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer);
when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true);
when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true);
when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true);
when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true);
when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled");
when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true);
when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString");
@ -410,10 +402,10 @@ public class TungstenElementTest {
List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class);
TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class);
TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class);
TungstenAnswer createTungstenNetworkLoadbalancerAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenLoadBalancerPoolAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenLoadBalancerMemberAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer updateTungstenHealthMonitorAnswer = MockTungstenAnswerFactory.get(true);
List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue"));
TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class);
@ -435,12 +427,8 @@ public class TungstenElementTest {
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer);
when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true);
when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true);
when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true);
when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled");
when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO);
when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true);
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer);
assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1));
@ -457,8 +445,8 @@ public class TungstenElementTest {
List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1);
List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1);
TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class);
TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class);
TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class);
TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer deleteTungstenLoadBalancerCommand = MockTungstenAnswerFactory.get(true);
when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork);
when(loadBalancingRule1.getSourceIp()).thenReturn(ip1);
@ -467,7 +455,6 @@ public class TungstenElementTest {
when(ipAddressVO.getAddress()).thenReturn(ip1);
when(ip1.addr()).thenReturn("10.10.10.10");
when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand);
when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true);
when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1);
when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(),anyString())).thenReturn(tungstenGuestNetworkIpAddressVO);
when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false);
@ -485,8 +472,8 @@ public class TungstenElementTest {
LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class);
LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class);
TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class);
TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class);
TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class);
TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer deleteTungstenLoadBalancerCommand = MockTungstenAnswerFactory.get(true);
List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule);
List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2);
@ -496,7 +483,6 @@ public class TungstenElementTest {
when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO);
when(ip.addr()).thenReturn("10.10.10.10");
when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer);
when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true);
when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true);
when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList);
@ -511,7 +497,7 @@ public class TungstenElementTest {
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
UserVm userVm = mock(UserVm.class);
Nic nic = mock(Nic.class);
TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyTungstenPortForwardingAnswer = MockTungstenAnswerFactory.get(true);
List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule);
when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add);
@ -520,7 +506,6 @@ public class TungstenElementTest {
when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm);
when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer);
when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList));
}
@ -533,7 +518,7 @@ public class TungstenElementTest {
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
UserVm userVm = mock(UserVm.class);
Nic nic = mock(Nic.class);
TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyTungstenPortForwardingAnswer = MockTungstenAnswerFactory.get(false);
List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule);
when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add);
@ -542,7 +527,6 @@ public class TungstenElementTest {
when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm);
when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer);
when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false);
assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList));
}
@ -555,7 +539,7 @@ public class TungstenElementTest {
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
UserVm userVm = mock(UserVm.class);
Nic nic = mock(Nic.class);
TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyTungstenPortForwardingAnswer = MockTungstenAnswerFactory.get(true);
List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule);
when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke);
@ -564,7 +548,6 @@ public class TungstenElementTest {
when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm);
when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer);
when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList));
}
@ -577,7 +560,7 @@ public class TungstenElementTest {
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
UserVm userVm = mock(UserVm.class);
Nic nic = mock(Nic.class);
TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyTungstenPortForwardingAnswer = MockTungstenAnswerFactory.get(false);
List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule);
when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke);
@ -586,7 +569,6 @@ public class TungstenElementTest {
when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm);
when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer);
when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false);
assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList));
}
@ -600,9 +582,9 @@ public class TungstenElementTest {
ReservationContext reservationContext = mock(ReservationContext.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
HostVO host = mock(HostVO.class);
TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class);
TungstenAnswer createTungstenVMAnswer = MockTungstenAnswerFactory.get(true);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class);
TungstenAnswer createTungstenNetworkPolicyAnswer = MockTungstenAnswerFactory.get(true);
nicProfile.setIPv4Address("192.168.100.100");
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public);
@ -612,8 +594,6 @@ public class TungstenElementTest {
when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO);
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer);
when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy);
when(createTungstenVMAnswer.getResult()).thenReturn(true);
when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext));
assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy());
@ -631,7 +611,7 @@ public class TungstenElementTest {
ReservationContext reservationContext = mock(ReservationContext.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
HostVO host = mock(HostVO.class);
TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class);
TungstenAnswer createTungstenVMAnswer = MockTungstenAnswerFactory.get(true);
nicProfile.setIPv4Address("192.168.100.100");
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management);
@ -639,7 +619,6 @@ public class TungstenElementTest {
when(hostDao.findById(anyLong())).thenReturn(host);
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer);
when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm);
when(createTungstenVMAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext));
assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy());
@ -749,14 +728,12 @@ public class TungstenElementTest {
Network network = mock(Network.class);
ReservationContext reservationContext = mock(ReservationContext.class);
List<IPAddressVO> ipAddressVOList = Arrays.asList(ipAddressVO1, ipAddressVO2);
TungstenAnswer tungstenDeleteFIPAnswer = mock(TungstenAnswer.class);
TungstenAnswer tungstenDeleteNPAnswer = mock(TungstenAnswer.class);
TungstenAnswer tungstenDeleteFIPAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer tungstenDeleteNPAnswer = MockTungstenAnswerFactory.get(true);
when(ipAddressDao.listByAssociatedNetwork(anyLong(), anyBoolean())).thenReturn(ipAddressVOList);
when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpCommand.class), anyLong())).thenReturn(tungstenDeleteFIPAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(tungstenDeleteNPAnswer);
when(tungstenDeleteFIPAnswer.getResult()).thenReturn(true);
when(tungstenDeleteNPAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.destroy(network, reservationContext));
}
@ -898,8 +875,8 @@ public class TungstenElementTest {
Network network = mock(Network.class);
FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class);
Network publicNetwork = mock(Network.class);
TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class);
TungstenAnswer createNetworkPolicyAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer applyNetworkPolicyAnswer = MockTungstenAnswerFactory.get(true);
when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add);
when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24"));
@ -909,8 +886,6 @@ public class TungstenElementTest {
when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress);
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer);
when(createNetworkPolicyAnswer.getResult()).thenReturn(true);
when(applyNetworkPolicyAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO)));
}
@ -920,8 +895,8 @@ public class TungstenElementTest {
Network network = mock(Network.class);
FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class);
Network publicNetwork = mock(Network.class);
TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class);
TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class);
TungstenAnswer createNetworkPolicyAnswer = MockTungstenAnswerFactory.get(true);
TungstenAnswer applyNetworkPolicyAnswer = MockTungstenAnswerFactory.get(true);
IPAddressVO ipAddressVO = mock(IPAddressVO.class);
Ip ip = mock(Ip.class);
@ -935,8 +910,6 @@ public class TungstenElementTest {
when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress);
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer);
when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer);
when(createNetworkPolicyAnswer.getResult()).thenReturn(true);
when(applyNetworkPolicyAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO)));
}
@ -992,14 +965,13 @@ public class TungstenElementTest {
ReservationContext context = mock(ReservationContext.class);
VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class);
HostVO hostVO = mock(HostVO.class);
TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class);
TungstenAnswer tungstenAnswer = MockTungstenAnswerFactory.get(true);
when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy);
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public);
when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO);
when(hostDao.findById(anyLong())).thenReturn(hostVO);
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer);
when(tungstenAnswer.getResult()).thenReturn(true);
assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context));
}

View File

@ -63,12 +63,11 @@ public class TungstenFabricUtilsTest {
@Test
public void sendTungstenCommandSuccessTest() {
TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class);
TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class);
TungstenAnswer tungstenAnswer = MockTungstenAnswerFactory.get(true);
TungstenCommand tungstenCommand = mock(TungstenCommand.class);
when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO);
when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer);
when(tungstenAnswer.getResult()).thenReturn(true);
assertEquals(tungstenAnswer, tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong()));
}
@ -93,12 +92,11 @@ public class TungstenFabricUtilsTest {
@Test(expected = InvalidParameterValueException.class)
public void sendTungstenCommandWithFalseAnswer() {
TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class);
TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class);
TungstenAnswer tungstenAnswer = MockTungstenAnswerFactory.get(false);
TungstenCommand tungstenCommand = mock(TungstenCommand.class);
when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO);
when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer);
when(tungstenAnswer.getResult()).thenReturn(false);
tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong());
}