Skip to content

Commit 062e343

Browse files
committed
Add more UT to BackupManagerTest
1 parent a298c33 commit 062e343

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
import com.cloud.exception.ResourceUnavailableException;
3232
import com.cloud.host.HostVO;
3333
import com.cloud.host.dao.HostDao;
34+
import com.cloud.network.Network;
35+
import com.cloud.network.NetworkService;
36+
import com.cloud.network.dao.NetworkDao;
37+
import com.cloud.network.dao.NetworkVO;
3438
import com.cloud.offering.DiskOffering;
3539
import com.cloud.offering.DiskOfferingInfo;
3640
import com.cloud.service.ServiceOfferingVO;
@@ -169,6 +173,12 @@ public class BackupManagerTest {
169173
@Mock
170174
HostDao hostDao;
171175

176+
@Mock
177+
private NetworkDao networkDao;
178+
179+
@Mock
180+
private NetworkService networkService;
181+
172182
private AccountVO account;
173183
private UserVO user;
174184

@@ -1235,4 +1245,85 @@ public void testCheckAndRemoveBackupOfferingBeforeExpunge() {
12351245
+ "Backup Offering [id: 3, external id: backup-external-id] with 1 backups. Please, remove the backup offering "
12361246
+ "before proceeding to VM exclusion!", exception.getMessage());
12371247
}
1248+
1249+
@Test
1250+
public void testGetIpToNetworkMapFromBackup() {
1251+
Long networkId1 = 1L;
1252+
Long networkId2 = 2L;
1253+
String networkUuid1 = "network-uuid-1";
1254+
String networkUuid2 = "network-uuid-2";
1255+
String ip1 = "10.1.1.1";
1256+
String ip2 = "10.1.1.2";
1257+
String ipv61 = "2001:db8::1";
1258+
String ipv62 = "2001:db8::2";
1259+
String mac1 = "00:11:22:33:44:55";
1260+
String mac2 = "00:11:22:33:44:56";
1261+
1262+
// Test case 1: Missing network information
1263+
Backup backup1 = mock(Backup.class);
1264+
when(backup1.getDetail(ApiConstants.NETWORK_IDS)).thenReturn(null);
1265+
List<Long> networkIds1 = new ArrayList<>();
1266+
try {
1267+
backupManager.getIpToNetworkMapFromBackup(backup1, true, networkIds1);
1268+
fail("Expected CloudRuntimeException for missing network information");
1269+
} catch (CloudRuntimeException e) {
1270+
assertEquals("Backup doesn't contain network information. Please specify atleast one valid network while creating instance", e.getMessage());
1271+
}
1272+
1273+
// Test case 2: IP preservation enabled with IP information
1274+
Backup backup2 = mock(Backup.class);
1275+
when(backup2.getDetail(ApiConstants.NETWORK_IDS)).thenReturn(networkUuid1 + "," + networkUuid2);
1276+
when(backup2.getDetail(ApiConstants.IP_ADDRESSES)).thenReturn(ip1 + "," + ip2);
1277+
when(backup2.getDetail(ApiConstants.IP6_ADDRESSES)).thenReturn(ipv61 + "," + ipv62);
1278+
when(backup2.getDetail(ApiConstants.MAC_ADDRESSES)).thenReturn(mac1 + "," + mac2);
1279+
1280+
NetworkVO network1 = mock(NetworkVO.class);
1281+
NetworkVO network2 = mock(NetworkVO.class);
1282+
when(networkDao.findByUuid(networkUuid1)).thenReturn(network1);
1283+
when(networkDao.findByUuid(networkUuid2)).thenReturn(network2);
1284+
when(network1.getId()).thenReturn(networkId1);
1285+
when(network2.getId()).thenReturn(networkId2);
1286+
1287+
Network.IpAddresses ipAddresses1 = mock(Network.IpAddresses.class);
1288+
Network.IpAddresses ipAddresses2 = mock(Network.IpAddresses.class);
1289+
when(networkService.getIpAddressesFromIps(ip1, ipv61, mac1)).thenReturn(ipAddresses1);
1290+
when(networkService.getIpAddressesFromIps(ip2, ipv62, mac2)).thenReturn(ipAddresses2);
1291+
1292+
List<Long> networkIds2 = new ArrayList<>();
1293+
Map<Long, Network.IpAddresses> result2 = backupManager.getIpToNetworkMapFromBackup(backup2, true, networkIds2);
1294+
1295+
assertEquals(2, result2.size());
1296+
assertEquals(ipAddresses1, result2.get(networkId1));
1297+
assertEquals(ipAddresses2, result2.get(networkId2));
1298+
assertEquals(2, networkIds2.size());
1299+
assertTrue(networkIds2.contains(networkId1));
1300+
assertTrue(networkIds2.contains(networkId2));
1301+
1302+
// Test case 3: IP preservation enabled but missing IP information
1303+
Backup backup3 = mock(Backup.class);
1304+
when(backup3.getDetail(ApiConstants.NETWORK_IDS)).thenReturn(networkUuid1);
1305+
when(backup3.getDetail(ApiConstants.IP_ADDRESSES)).thenReturn(null);
1306+
when(backup3.getDetail(ApiConstants.IP6_ADDRESSES)).thenReturn(null);
1307+
when(backup3.getDetail(ApiConstants.MAC_ADDRESSES)).thenReturn(null);
1308+
1309+
List<Long> networkIds3 = new ArrayList<>();
1310+
Map<Long, Network.IpAddresses> result3 = backupManager.getIpToNetworkMapFromBackup(backup3, true, networkIds3);
1311+
1312+
assertEquals(1, result3.size());
1313+
assertNull(result3.get(networkId1));
1314+
assertEquals(1, networkIds3.size());
1315+
assertTrue(networkIds3.contains(networkId1));
1316+
1317+
// Test case 4: IP preservation disabled
1318+
Backup backup4 = mock(Backup.class);
1319+
when(backup4.getDetail(ApiConstants.NETWORK_IDS)).thenReturn(networkUuid1);
1320+
1321+
List<Long> networkIds4 = new ArrayList<>();
1322+
Map<Long, Network.IpAddresses> result4 = backupManager.getIpToNetworkMapFromBackup(backup4, false, networkIds4);
1323+
1324+
assertEquals(1, result4.size());
1325+
assertNull(result4.get(networkId1));
1326+
assertEquals(1, networkIds4.size());
1327+
assertTrue(networkIds4.contains(networkId1));
1328+
}
12381329
}

0 commit comments

Comments
 (0)