### Question:
WatchItemList { public boolean processItem(WatchItem item) { if (item.getStatus() == ItemStatus.FILE_CAPTURED) { runAsync(item); return true; } if (item.isExpired()) { LOGGER.warn("Watch time has expired for UUID {} in folder {}", item.getFileHandlerCallback().getUUID(), directoryFullName); } return false; } WatchItemList(String directoryName, CallbackHandlerDao handlerDao); String getDirectoryName(); String getDirectoryFullName(); WatchItem append(FileHandlerCallback fileHandlerCallback, long timeoutMillis, long fileLengthCheckDelay); WatchItem append(FileHandlerCallback fileHandlerCallback, long timeoutMillis, long fileLengthCheckDelay,
							String fileName); void remove(int index); int size(); WatchItem get(int index); int getIndex(String uuid); WatchItem getItem(String fileName); boolean processItem(WatchItem item); int processItemAll();  }### Answer:
@Test public void processItem() throws InterruptedException, ExecutionException { WatchItemList items = new WatchItemList(getDirectory(), null); items.append(fHandler, timeoutMillis, fileLengthCheckDelay); WatchItem item = items.get(0); assertEquals(false, items.processItem(item)); item.setFileName(getFileName()); assertEquals(true, items.processItem(item)); assertEquals(ItemStatus.INPROGRESS, item.getStatus()); item.getFutureResultSync(); }