Skip to content

Commit 38a4fe6

Browse files
committed
more tests
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent d81d77b commit 38a4fe6

File tree

3 files changed

+292
-23
lines changed

3 files changed

+292
-23
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package com.cloud.consoleproxy;
18+
19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertNotNull;
21+
import static org.mockito.ArgumentMatchers.any;
22+
import static org.mockito.Mockito.verify;
23+
import static org.mockito.Mockito.when;
24+
25+
import org.junit.Before;
26+
import org.junit.Test;
27+
import org.junit.runner.RunWith;
28+
import org.mockito.InjectMocks;
29+
import org.mockito.Mock;
30+
import org.mockito.junit.MockitoJUnitRunner;
31+
32+
import com.cloud.hypervisor.Hypervisor;
33+
import com.cloud.offering.ServiceOffering;
34+
import com.cloud.storage.VMTemplateVO;
35+
import com.cloud.user.Account;
36+
import com.cloud.user.AccountManager;
37+
import com.cloud.user.User;
38+
import com.cloud.vm.ConsoleProxyVO;
39+
import com.cloud.vm.dao.ConsoleProxyDao;
40+
41+
@RunWith(MockitoJUnitRunner.class)
42+
public class ConsoleProxyManagerImplTest {
43+
@InjectMocks
44+
private ConsoleProxyManagerImpl consoleProxyManager;
45+
46+
@Mock
47+
private ConsoleProxyDao consoleProxyDao;
48+
49+
@Mock
50+
private AccountManager accountManager;
51+
52+
@Mock
53+
private ServiceOffering serviceOffering;
54+
@Mock
55+
private VMTemplateVO template;
56+
@Mock
57+
private Account systemAccount;
58+
@Mock
59+
private User systemUser;
60+
61+
@Before
62+
public void setUp() {
63+
when(accountManager.getSystemUser()).thenReturn(systemUser);
64+
}
65+
66+
@Test
67+
public void testCreateConsoleProxy_New() {
68+
long dataCenterId = 1L;
69+
long id = 10L;
70+
String name = "console1";
71+
// When creating a new proxy, persist should be called.
72+
when(consoleProxyDao.persist(any(ConsoleProxyVO.class)))
73+
.thenAnswer(invocation -> invocation.getArgument(0));
74+
ConsoleProxyVO result = consoleProxyManager.createOrUpdateConsoleProxy(null, dataCenterId, id, name, serviceOffering, template, systemAccount);
75+
assertNotNull(result);
76+
assertEquals(id, result.getId());
77+
assertEquals(serviceOffering.getId(), result.getServiceOfferingId());
78+
assertEquals(name, result.getName());
79+
assertEquals(template.getId(), result.getTemplateId());
80+
assertEquals(template.getHypervisorType(), result.getHypervisorType());
81+
assertEquals(template.getGuestOSId(), result.getGuestOSId());
82+
assertEquals(dataCenterId, result.getDataCenterId());
83+
assertEquals(systemAccount.getDomainId(), result.getDomainId());
84+
assertEquals(systemAccount.getId(), result.getAccountId());
85+
assertEquals(serviceOffering.isOfferHA(), result.isHaEnabled());
86+
assertEquals(template.isDynamicallyScalable(), result.isDynamicallyScalable());
87+
assertEquals(serviceOffering.getLimitCpuUse(), result.limitCpuUse());
88+
verify(consoleProxyDao).persist(any(ConsoleProxyVO.class));
89+
}
90+
91+
@Test
92+
public void testUpdateConsoleProxy() {
93+
long dataCenterId = 1L;
94+
long id = 10L;
95+
String name = "console1";
96+
ConsoleProxyVO existing = new ConsoleProxyVO(id, serviceOffering.getId(), name, 999L, Hypervisor.HypervisorType.KVM, 111L,
97+
dataCenterId, systemAccount.getDomainId(), systemAccount.getId(),
98+
systemUser.getId(), 0, serviceOffering.isOfferHA());
99+
existing.setDynamicallyScalable(false);
100+
ConsoleProxyVO result = consoleProxyManager.createOrUpdateConsoleProxy(existing, dataCenterId, id, name, serviceOffering, template, systemAccount);
101+
verify(consoleProxyDao).update(existing.getId(), existing);
102+
assertEquals(template.getId(), result.getTemplateId());
103+
assertEquals(template.getHypervisorType(), result.getHypervisorType());
104+
assertEquals(template.getGuestOSId(), result.getGuestOSId());
105+
assertEquals(template.isDynamicallyScalable(), result.isDynamicallyScalable());
106+
}
107+
}

server/src/test/java/com/cloud/network/router/NetworkHelperImplTest.java

Lines changed: 100 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,46 @@
1616
// under the License.
1717
package com.cloud.network.router;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertFalse;
21+
import static org.junit.Assert.assertNotNull;
22+
import static org.junit.Assert.assertTrue;
23+
import static org.mockito.ArgumentMatchers.any;
24+
import static org.mockito.Mockito.doReturn;
25+
import static org.mockito.Mockito.lenient;
26+
import static org.mockito.Mockito.mock;
27+
import static org.mockito.Mockito.spy;
28+
import static org.mockito.Mockito.times;
29+
import static org.mockito.Mockito.verify;
30+
import static org.mockito.Mockito.when;
31+
32+
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
33+
import org.apache.cloudstack.network.router.deployment.RouterDeploymentDefinition;
34+
import org.junit.Before;
35+
import org.junit.Test;
36+
import org.junit.runner.RunWith;
37+
import org.mockito.InjectMocks;
38+
import org.mockito.Mock;
39+
import org.mockito.junit.MockitoJUnitRunner;
40+
1941
import com.cloud.agent.AgentManager;
2042
import com.cloud.agent.api.Answer;
2143
import com.cloud.agent.api.Command;
2244
import com.cloud.agent.manager.Commands;
2345
import com.cloud.exception.AgentUnavailableException;
2446
import com.cloud.exception.OperationTimedoutException;
2547
import com.cloud.exception.ResourceUnavailableException;
48+
import com.cloud.hypervisor.Hypervisor;
2649
import com.cloud.network.NetworkModel;
50+
import com.cloud.network.VirtualRouterProvider;
2751
import com.cloud.network.dao.NetworkDao;
52+
import com.cloud.service.ServiceOfferingVO;
53+
import com.cloud.storage.VMTemplateVO;
54+
import com.cloud.user.Account;
55+
import com.cloud.vm.DomainRouterVO;
56+
import com.cloud.vm.VirtualMachineName;
57+
import com.cloud.vm.dao.DomainRouterDao;
2858
import com.cloud.vm.dao.NicDao;
29-
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
30-
import org.junit.Before;
31-
import org.junit.Test;
32-
import org.junit.runner.RunWith;
33-
import org.mockito.InjectMocks;
34-
import org.mockito.ArgumentMatchers;
35-
import org.mockito.Mock;
36-
import org.mockito.junit.MockitoJUnitRunner;
37-
38-
import static org.junit.Assert.assertFalse;
39-
import static org.junit.Assert.assertTrue;
40-
import static org.mockito.Mockito.doReturn;
41-
import static org.mockito.Mockito.lenient;
42-
import static org.mockito.Mockito.mock;
43-
import static org.mockito.Mockito.spy;
44-
import static org.mockito.Mockito.times;
45-
import static org.mockito.Mockito.verify;
46-
import static org.mockito.Mockito.when;
4759

4860

4961
@RunWith(MockitoJUnitRunner.class)
@@ -54,6 +66,9 @@ public class NetworkHelperImplTest {
5466
@Mock
5567
protected AgentManager agentManager;
5668

69+
@Mock
70+
DomainRouterDao routerDao;
71+
5772
@InjectMocks
5873
protected NetworkHelperImpl nwHelper = new NetworkHelperImpl();
5974
@Mock
@@ -65,10 +80,27 @@ public class NetworkHelperImplTest {
6580
@Mock
6681
NicDao nicDao;
6782

83+
@Mock
84+
private RouterDeploymentDefinition routerDeploymentDefinition;
85+
@Mock
86+
private VirtualRouterProvider virtualProvider;
87+
@Mock
88+
private Account owner;
89+
@Mock
90+
private ServiceOfferingVO routerOffering;
91+
@Mock
92+
private VMTemplateVO template;
93+
6894
@Before
6995
public void setUp() {
7096
nwHelper._networkDao = networkDao;
7197
nwHelper._networkModel = networkModel;
98+
when(template.getId()).thenReturn(1L);
99+
when(template.isDynamicallyScalable()).thenReturn(true);
100+
when(virtualProvider.getId()).thenReturn(1L);
101+
when(routerDeploymentDefinition.getVirtualProvider()).thenReturn(virtualProvider);
102+
when(routerDeploymentDefinition.isRedundant()).thenReturn(true);
103+
when(routerOffering.getLimitCpuUse()).thenReturn(true);
72104
}
73105

74106
@Test(expected=ResourceUnavailableException.class)
@@ -83,7 +115,7 @@ public void testSendCommandsToRouterWrongRouterVersion()
83115
nwHelperUT.sendCommandsToRouter(vr, null);
84116

85117
// Assert
86-
verify(this.agentManager, times(0)).send((Long) ArgumentMatchers.any(), (Command) ArgumentMatchers.any());
118+
verify(this.agentManager, times(0)).send((Long) any(), (Command) any());
87119
}
88120

89121
@Test
@@ -187,4 +219,53 @@ public void testSendCommandsToRouterWithNoAnswers()
187219
verify(answer1, times(0)).getResult();
188220
assertFalse(result);
189221
}
222+
223+
@Test
224+
public void testCreateDomainRouter_New() {
225+
long id = 1L;
226+
long userId = 800L;
227+
boolean offerHA = false;
228+
Long vpcId = 900L;
229+
when(routerDao.persist(any(DomainRouterVO.class))).thenAnswer(invocation -> invocation.getArgument(0));
230+
DomainRouterVO result = nwHelper.createOrUpdateDomainRouter(
231+
null, id, routerDeploymentDefinition, owner, userId, routerOffering, offerHA, vpcId, template);
232+
assertNotNull(result);
233+
assertEquals(id, result.getId());
234+
assertEquals(routerOffering.getId(), result.getServiceOfferingId());
235+
assertEquals(1L, result.getElementId());
236+
assertEquals(VirtualMachineName.getRouterName(id, NetworkHelperImpl.s_vmInstanceName), result.getInstanceName());
237+
assertEquals(template.getId(), result.getTemplateId());
238+
assertEquals(template.getHypervisorType(), result.getHypervisorType());
239+
assertEquals(template.getGuestOSId(), result.getGuestOSId());
240+
assertEquals(owner.getDomainId(), result.getDomainId());
241+
assertEquals(owner.getId(), result.getAccountId());
242+
assertEquals(userId, result.getUserId());
243+
assertTrue(result.getIsRedundantRouter());
244+
assertEquals(VirtualRouter.RedundantState.UNKNOWN, result.getRedundantState());
245+
assertEquals(offerHA, result.isHaEnabled());
246+
assertEquals(vpcId, result.getVpcId());
247+
assertTrue(result.isDynamicallyScalable());
248+
assertEquals(VirtualRouter.Role.VIRTUAL_ROUTER, result.getRole());
249+
assertTrue(result.limitCpuUse());
250+
verify(routerDao).persist(any(DomainRouterVO.class));
251+
}
252+
253+
@Test
254+
public void testUpdateDomainRouter() {
255+
long id = 1L;
256+
long userId = 800L;
257+
boolean offerHA = false;
258+
Long vpcId = 900L;
259+
DomainRouterVO existing = new DomainRouterVO(id, routerOffering.getId(), virtualProvider.getId(),
260+
VirtualMachineName.getRouterName(id, NetworkHelperImpl.s_vmInstanceName), 999L, Hypervisor.HypervisorType.KVM, 888L,
261+
owner.getDomainId(), owner.getId(), userId, routerDeploymentDefinition.isRedundant(), VirtualRouter.RedundantState.UNKNOWN,
262+
offerHA, false, vpcId);
263+
existing.setDynamicallyScalable(false);
264+
DomainRouterVO result = nwHelper.createOrUpdateDomainRouter(
265+
existing, id, routerDeploymentDefinition, owner, userId, routerOffering, offerHA, vpcId, template);
266+
verify(routerDao).update(existing.getId(), existing);
267+
assertEquals(template.getId(), result.getTemplateId());
268+
assertEquals(Hypervisor.HypervisorType.KVM, result.getHypervisorType());
269+
assertTrue(result.isDynamicallyScalable());
270+
}
190271
}

0 commit comments

Comments
 (0)