Skip to content

Commit 0e2fec1

Browse files
committed
refactor
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent 8e414a6 commit 0e2fec1

File tree

2 files changed

+61
-11
lines changed

2 files changed

+61
-11
lines changed

server/src/main/java/com/cloud/server/ManagementServerImpl.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2411,18 +2411,9 @@ public Pair<List<? extends ConfigurationGroup>, Integer> listConfigurationGroups
24112411
return new Pair<>(result.first(), result.second());
24122412
}
24132413

2414-
@Override
2415-
public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListPublicIpAddressesCmd cmd) {
2416-
final Long associatedNetworkId = cmd.getAssociatedNetworkId();
2417-
final Long zone = cmd.getZoneId();
2418-
final Long vlan = cmd.getVlanId();
2419-
final Boolean forVirtualNetwork = cmd.isForVirtualNetwork();
2420-
final Long ipId = cmd.getId();
2421-
final Long networkId = cmd.getNetworkId();
2422-
final Long vpcId = cmd.getVpcId();
2423-
2414+
protected List<IpAddress.State> getStatesForIpAddressSearch(final ListPublicIpAddressesCmd cmd) {
24242415
final String state = cmd.getState();
2425-
List<IpAddress.State> states = new ArrayList<>();
2416+
final List<IpAddress.State> states = new ArrayList<>();
24262417
if (StringUtils.isNotBlank(state)) {
24272418
for (String s : StringUtils.split(state, ",")) {
24282419
try {
@@ -2432,6 +2423,20 @@ public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListP
24322423
}
24332424
}
24342425
}
2426+
return states;
2427+
}
2428+
2429+
@Override
2430+
public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListPublicIpAddressesCmd cmd) {
2431+
final Long associatedNetworkId = cmd.getAssociatedNetworkId();
2432+
final Long zone = cmd.getZoneId();
2433+
final Long vlan = cmd.getVlanId();
2434+
final Boolean forVirtualNetwork = cmd.isForVirtualNetwork();
2435+
final Long ipId = cmd.getId();
2436+
final Long networkId = cmd.getNetworkId();
2437+
final Long vpcId = cmd.getVpcId();
2438+
2439+
final List<IpAddress.State> states = getStatesForIpAddressSearch(cmd);
24352440
Boolean isAllocated = cmd.isAllocatedOnly();
24362441
if (isAllocated == null) {
24372442
if (states.contains(IpAddress.State.Free) || states.contains(IpAddress.State.Reserved)) {

server/src/test/java/com/cloud/server/ManagementServerImplTest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,4 +1034,49 @@ public void testGetExternalVmConsole() {
10341034
Assert.assertNotNull(spy.getExternalVmConsole(virtualMachine, host));
10351035
Mockito.verify(extensionManager).getInstanceConsole(virtualMachine, host);
10361036
}
1037+
1038+
@Test
1039+
public void getStatesForIpAddressSearchReturnsValidStates() {
1040+
ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class);
1041+
Mockito.when(cmd.getState()).thenReturn("Allocated,Free");
1042+
List<IpAddress.State> result = spy.getStatesForIpAddressSearch(cmd);
1043+
Assert.assertEquals(2, result.size());
1044+
Assert.assertTrue(result.contains(IpAddress.State.Allocated));
1045+
Assert.assertTrue(result.contains(IpAddress.State.Free));
1046+
}
1047+
1048+
@Test
1049+
public void getStatesForIpAddressSearchReturnsEmptyListForNullState() {
1050+
ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class);
1051+
Mockito.when(cmd.getState()).thenReturn(null);
1052+
List<IpAddress.State> result = spy.getStatesForIpAddressSearch(cmd);
1053+
Assert.assertTrue(result.isEmpty());
1054+
}
1055+
1056+
@Test
1057+
public void getStatesForIpAddressSearchReturnsEmptyListForBlankState() {
1058+
ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class);
1059+
Mockito.when(cmd.getState()).thenReturn(" ");
1060+
List<IpAddress.State> result = spy.getStatesForIpAddressSearch(cmd);
1061+
Assert.assertTrue(result.isEmpty());
1062+
}
1063+
1064+
@Test(expected = InvalidParameterValueException.class)
1065+
public void getStatesForIpAddressSearchThrowsExceptionForInvalidState() {
1066+
ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class);
1067+
Mockito.when(cmd.getState()).thenReturn("InvalidState");
1068+
spy.getStatesForIpAddressSearch(cmd);
1069+
}
1070+
1071+
@Test
1072+
public void getStatesForIpAddressSearchHandlesMixedValidAndInvalidStates() {
1073+
ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class);
1074+
Mockito.when(cmd.getState()).thenReturn("Allocated,InvalidState");
1075+
try {
1076+
spy.getStatesForIpAddressSearch(cmd);
1077+
Assert.fail("Expected InvalidParameterValueException to be thrown");
1078+
} catch (InvalidParameterValueException e) {
1079+
Assert.assertEquals("Invalid state: InvalidState", e.getMessage());
1080+
}
1081+
}
10371082
}

0 commit comments

Comments
 (0)