private TransmissionFileSystemOutput createAndSend(String absoulutePath, int amount, Integer capacity) { TransmissionFileSystemOutput tested = null; if (capacity != null) { tested = new TransmissionFileSystemOutput(absoulutePath, String.valueOf(capacity));; } else { tested = new TransmissionFileSystemOutput(absoulutePath); } for (int i = 0; i < amount; ++i) { tested.send(new Transmission(new byte[SIZE_OF_TRANSMISSION_CONTENT], "MockContentType", "MockEncodingType")); } return tested; } }
@Test public void testFetchOldestFiles() throws Exception { File folder = tmpFolder.newFolder(TEMP_TEST_FOLDER+"2"); try { TransmissionFileSystemOutput tested = new TransmissionFileSystemOutput(folder.getAbsolutePath()); for (int i = 1; i <= 10; ++i) { String iAsString = String.valueOf(i); String content = MOCK_CONTENT + iAsString; tested.send(new Transmission(content.getBytes(), MOCK_CONTENT_TYPE_BASE + iAsString, MOCK_ENCODING_TYPE_BASE + iAsString)); TimeUnit.MILLISECONDS.sleep(150); // sleep a bit so 2 files can never have the same timestamp. } for (int i = 1; i <= 10; ++i) { Transmission transmission = tested.fetchOldestFile(); assertNotNull(transmission); String iAsString = String.valueOf(i); assertEquals(String.format("Wrong WebContentType %s", transmission.getWebContentType()), MOCK_CONTENT_TYPE_BASE + iAsString, transmission.getWebContentType()); assertEquals(String.format("Wrong WebContentEncodingType %s", transmission.getWebContentEncodingType()), MOCK_ENCODING_TYPE_BASE + iAsString, transmission.getWebContentEncodingType()); String fetchedContent = new String(transmission.getContent()); assertEquals(String.format("Wrong content %s", fetchedContent), MOCK_CONTENT + iAsString, fetchedContent); } Transmission transmission = tested.fetchOldestFile(); assertNull(transmission); } finally { if (folder.exists()) { FileUtils.deleteDirectory(folder); } } }
fileSystem.send(new Transmission(new byte[2], "MockContentType", "MockEncodingType"));