// Tests a report is correctly generated after moving blocks @Test public void generateReportMoveTest() { Long block1 = 1L; Long block2 = 2L; Long block3 = 3L; moveBlock(block1, MEM_LOC); moveBlock(block2, SSD_LOC); moveBlock(block3, HDD_LOC); BlockHeartbeatReport report = mReporter.generateReport(); Map<Long, List<Long>> addedBlocks = report.getAddedBlocks(); // Block1 moved to memory List<Long> addedBlocksMem = addedBlocks.get(MEM_LOC.getStorageDirId()); Assert.assertEquals(1, addedBlocksMem.size()); Assert.assertEquals(block1, addedBlocksMem.get(0)); // Block2 moved to ssd List<Long> addedBlocksSsd = addedBlocks.get(SSD_LOC.getStorageDirId()); Assert.assertEquals(1, addedBlocksSsd.size()); Assert.assertEquals(block2, addedBlocksSsd.get(0)); // Block3 moved to hdd List<Long> addedBlocksHdd = addedBlocks.get(HDD_LOC.getStorageDirId()); Assert.assertEquals(1, addedBlocksHdd.size()); Assert.assertEquals(block3, addedBlocksHdd.get(0)); }
// Tests a report is correctly generated after moving and then removing a block @Test public void generateReportMoveThenRemoveTest() { Long block1 = 1L; moveBlock(block1, MEM_LOC); removeBlock(block1); // The block should not be in the added blocks list BlockHeartbeatReport report = mReporter.generateReport(); Assert.assertEquals(null, report.getAddedBlocks().get(MEM_LOC.getStorageDirId())); // The block should be in the removed blocks list List<Long> removedBlocks = report.getRemovedBlocks(); Assert.assertEquals(1, removedBlocks.size()); Assert.assertTrue(removedBlocks.contains(block1)); }