BlockManipulationServiceImpl implements IBlockManipulationService { @Override public String getNextBlockUuid(Metafile metafile) throws MetafileIsFolderException, BlockDoesNotExistException { if (metafile.getProperties().containsValue(FileType.DIR.toString())) { StringBuilder sb = new StringBuilder(); sb.append(getMetafileInfoForLog(metafile, "getNextBlockUuid")); sb.append(", is folder."); throw new MetafileIsFolderException(sb.toString()); } else { if (blockUuidList == null) { blockUuidList = new ArrayList<>(metafile.getBlockUuidList()); } if (blockUuidList.isEmpty()) { StringBuilder sb = new StringBuilder(); sb.append(getMetafileInfoForLog(metafile, "getNextBlockUuid")); sb.append(" does not have a block."); throw new BlockDoesNotExistException(sb.toString()); } } return blockUuidList.remove(0); }  @Override String getNextBlockUuid(Metafile metafile); @Override String getBlockUuidByNumber(Metafile metafile, int blockNumber);  }
@Test(expected = BlockDoesNotExistException.class) public void getNextBlockUuid() throws BlockDoesNotExistException, MetafileIsFolderException { Map<String, String> properties = new HashMap<>(); properties.put("typeOnFs", FileType.FILE_BIN.toString()); metafile.setProperties(properties); String blockUuid1 = UUID.randomUUID().toString(); String blockUuid2 = UUID.randomUUID().toString(); String blockUuid3 = UUID.randomUUID().toString(); String blockUuid4 = UUID.randomUUID().toString(); String blockUuid5 = UUID.randomUUID().toString(); metafile.addBlockUuid(blockUuid1); metafile.addBlockUuid(blockUuid2); metafile.addBlockUuid(blockUuid3); metafile.addBlockUuid(blockUuid4); metafile.addBlockUuid(blockUuid5); String blockUuid = blockManipulationService.getNextBlockUuid(metafile); assertEquals(blockUuid1, blockUuid); blockUuid = blockManipulationService.getNextBlockUuid(metafile); assertEquals(blockUuid2, blockUuid); blockUuid = blockManipulationService.getNextBlockUuid(metafile); assertEquals(blockUuid3, blockUuid); blockUuid = blockManipulationService.getNextBlockUuid(metafile); assertEquals(blockUuid4, blockUuid); blockUuid = blockManipulationService.getNextBlockUuid(metafile); assertEquals(blockUuid5, blockUuid); blockManipulationService.getNextBlockUuid(metafile); }
@Test(expected = MetafileIsFolderException.class) public void getNextBlockUuidByFolder() throws BlockDoesNotExistException, MetafileIsFolderException { Map<String, String> properties = new HashMap<>(); properties.put("typeOnFs", FileType.DIR.toString()); metafile.setProperties(properties); blockManipulationService.getNextBlockUuid(metafile); }