Skip to content

Commit be5e66e

Browse files
committed
SSL offloading: add testUpdateLoadBalancerRule5
1 parent 1e85137 commit be5e66e

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

server/src/test/java/com/cloud/network/lb/LoadBalancingRulesManagerImplTest.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package com.cloud.network.lb;
1919

20+
import com.cloud.exception.ResourceUnavailableException;
2021
import com.cloud.network.Network;
2122
import com.cloud.network.NetworkModel;
2223
import com.cloud.network.dao.LoadBalancerCertMapDao;
@@ -92,6 +93,9 @@ public class LoadBalancingRulesManagerImplTest{
9293
@InjectMocks
9394
LoadBalancingRulesManagerImpl lbr = new LoadBalancingRulesManagerImpl();
9495

96+
@Mock
97+
NetworkVO networkMock;
98+
9599
@Mock
96100
LoadBalancerVO loadBalancerMock;
97101

@@ -198,8 +202,7 @@ private void setupUpdateLoadBalancerRule() throws Exception{
198202
when(loadBalancerMock.getId()).thenReturn(lbRuleId);
199203
when(loadBalancerMock.getNetworkId()).thenReturn(networkId);
200204

201-
NetworkVO network = Mockito.mock(NetworkVO.class);
202-
when(_networkDao.findById(networkId)).thenReturn(network);
205+
when(_networkDao.findById(networkId)).thenReturn(networkMock);
203206

204207
Mockito.doNothing().when(_accountMgr).checkAccess(Mockito.any(Account.class), Mockito.isNull(SecurityChecker.AccessType.class), Mockito.eq(true), Mockito.any(LoadBalancerVO.class));
205208

@@ -282,4 +285,27 @@ public void testUpdateLoadBalancerRule4() throws Exception {
282285
Mockito.verify(lbr, never()).applyLoadBalancerConfig(lbRuleId);
283286
Mockito.verify(_lbCertMapDao, never()).remove(anyLong());
284287
}
288+
289+
@Test(expected = CloudRuntimeException.class)
290+
public void testUpdateLoadBalancerRule5() throws Exception {
291+
setupUpdateLoadBalancerRule();
292+
293+
// Update protocol from SSL to TCP, throws an exception
294+
UpdateLoadBalancerRuleCmd cmd = new UpdateLoadBalancerRuleCmd();
295+
ReflectionTestUtils.setField(cmd, ApiConstants.ID, lbRuleId);
296+
ReflectionTestUtils.setField(cmd, "lbProtocol", NetUtils.TCP_PROTO);
297+
when(loadBalancerMock.getLbProtocol()).thenReturn(NetUtils.SSL_PROTO).thenReturn(NetUtils.TCP_PROTO);
298+
Mockito.doThrow(ResourceUnavailableException.class).when(lbr).applyLoadBalancerConfig(lbRuleId);
299+
300+
List<Network.Provider> providers = Arrays.asList(Network.Provider.VirtualRouter);
301+
when(_networkDao.findById(anyLong())).thenReturn(networkMock);
302+
when(_networkMgr.getProvidersForServiceInNetwork(networkMock, Network.Service.Lb)).thenReturn(providers);
303+
304+
lbr.updateLoadBalancerRule(cmd);
305+
306+
Mockito.verify(_lbCertMapDao, never()).remove(anyLong());
307+
Mockito.verify(lbr, times(1)).applyLoadBalancerConfig(lbRuleId);
308+
Mockito.verify(loadBalancerMock, times(1)).setLbProtocol(NetUtils.TCP_PROTO);
309+
Mockito.verify(loadBalancerMock, times(1)).setLbProtocol(NetUtils.SSL_PROTO);
310+
}
285311
}

0 commit comments

Comments
 (0)