private static Transmission createMockTransmission() { byte[] mockContent = new byte[2]; Transmission tested = new Transmission(mockContent, MOCK_WEB_CONTENT_TYPE, MOCK_WEB_ENCODING_TYPE); return tested; } }
@Test(expected = IllegalArgumentException.class) public void testNullContentEncodingType() throws Exception { byte[] mockContent = new byte[2]; new Transmission(mockContent, MOCK_WEB_CONTENT_TYPE, null); }
@Test(expected = IllegalArgumentException.class) public void testEmptyContentType() throws Exception { byte[] mockContent = new byte[2]; new Transmission(mockContent, "", MOCK_WEB_ENCODING_TYPE); }
@Test(expected = IllegalArgumentException.class) public void testEmptyContentEncodingType() throws Exception { byte[] mockContent = new byte[2]; new Transmission(mockContent, MOCK_WEB_CONTENT_TYPE, ""); }
@Test(expected = IllegalArgumentException.class) public void testNullContentType() throws Exception { byte[] mockContent = new byte[2]; new Transmission(mockContent, null, MOCK_WEB_ENCODING_TYPE); }
@Test(expected = NullPointerException.class) public void testNullContent() throws Exception { new Transmission(null, MOCK_WEB_CONTENT_TYPE, MOCK_WEB_ENCODING_TYPE); }
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 testDispatchSuccessOfFirst() { TransmissionOutput mockOutput1 = Mockito.mock(TransmissionOutput.class); Mockito.doReturn(true).when(mockOutput1).send((Transmission) anyObject()); TransmissionOutput mockOutput2 = Mockito.mock(TransmissionOutput.class); NonBlockingDispatcher tested = new NonBlockingDispatcher(new TransmissionOutput[] {mockOutput1, mockOutput2}); Transmission transmission = new Transmission(new byte[2], "mockType", "mockEncoding"); tested.dispatch(transmission); Mockito.verify(mockOutput1, Mockito.times(1)).send((Transmission) anyObject()); Mockito.verify(mockOutput2, Mockito.never()).send((Transmission) anyObject()); }
@Test public void testDispatchFailureOfFirst() { TransmissionOutput mockOutput1 = Mockito.mock(TransmissionOutput.class); Mockito.doReturn(false).when(mockOutput1).send((Transmission) anyObject()); TransmissionOutput mockOutput2 = Mockito.mock(TransmissionOutput.class); Mockito.doReturn(true).when(mockOutput2).send((Transmission) anyObject()); NonBlockingDispatcher tested = new NonBlockingDispatcher(new TransmissionOutput[] {mockOutput1, mockOutput2}); Transmission transmission = new Transmission(new byte[2], "mockType", "mockEncoding"); tested.dispatch(transmission); Mockito.verify(mockOutput1, Mockito.times(1)).send((Transmission) anyObject()); Mockito.verify(mockOutput2, Mockito.times(1)).send((Transmission) anyObject()); }
@Test public void testGetContent() throws Exception { byte[] mockContent = new byte[2]; Transmission tested = new Transmission(mockContent, MOCK_WEB_CONTENT_TYPE, MOCK_WEB_ENCODING_TYPE); assertSame(mockContent, tested.getContent()); }
@Test public void passGenerateOriginalItemsNonGZIP() { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(206); args.setTransmission(new Transmission(fourItemsNonGZIP.getBytes(), "application/json", "utf8")); args.setTransmissionDispatcher(mockedDispatcher); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); List<String> originalItems = eh.generateOriginalItems(args); Assert.assertEquals(4, originalItems.size()); }
private boolean generateTransmissionWithStatusCodeAndHeader(int code, String retryHeader) { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(code); args.setTransmission(new Transmission(new byte[] { 0 }, "testcontent", "testencoding")); args.setTransmissionDispatcher(mockedDispatcher); args.setRetryHeader(new BasicHeader(RESPONSE_THROTTLING_HEADER, retryHeader)); ThrottlingHandler eh = new ThrottlingHandler(tpm); boolean result = eh.validateTransmissionAndSend(args); return result; }
@Test public void passSingleItemArrayList() { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(206); args.setTransmission(new Transmission(fourItems, "application/x-json-stream", "gzip")); args.setTransmissionDispatcher(mockedDispatcher); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); List<String> singleItem = new ArrayList<String>(); singleItem.add("{\"ver\":1,\"name\":\"Microsoft.ApplicationInsights.b69a3a06e25a425ba1a44e9ff6f13582.Event\",\"time\":\"2018-02-11T16:02:36.120-0500\",\"sampleRate\":100.0,\"iKey\":\"b69a3a06-e25a-425b-a1a4-4e9ff6f13582\",\"tags\":{\"ai.internal.sdkVersion\":\"java:2.0.0-beta-snapshot\",\"ai.device.id\":\"test.machine.name\",\"ai.device.locale\":\"en-US\",\"ai.internal.nodename\":\"test.machine.name\",\"ai.device.os\":\"Windows 10\",\"ai.device.roleInstance\":\"test.machine.name\",\"ai.device.osVersion\":\"Windows 10\",\"ai.session.id\":\"20180211160233\"},\"data\":{\"baseType\":\"EventData\",\"baseData\":{\"ver\":2,\"name\":\"TestEvent0\",\"properties\":null}}}\r\n"); boolean result = eh.sendNewTransmission(args, singleItem); Assert.assertTrue(result); }
private boolean generateTransmissionWithStatusCode(int code) { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(code); args.setTransmission(new Transmission(new byte[] { 0 }, "testcontent", "testencoding")); args.setTransmissionDispatcher(mockedDispatcher); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); boolean result = eh.validateTransmissionAndSend(args); return result; }
@Test public void failEmptyArrayList() { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(206); args.setTransmission(new Transmission(fourItems, "application/x-json-stream", "gzip")); args.setTransmissionDispatcher(mockedDispatcher); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); boolean result = eh.sendNewTransmission(args, new ArrayList<String>()); Assert.assertFalse(result); }
@Test public void passGenerateOriginalItemsGZIP() { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(206); args.setTransmission(new Transmission(fourItems, "application/x-json-stream", "gzip")); args.setTransmissionDispatcher(mockedDispatcher); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); List<String> originalItems = eh.generateOriginalItems(args); Assert.assertEquals(4, originalItems.size()); }
private boolean generateTransmissionWithStatusCode(int code) { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(code); args.setTransmission(new Transmission(new byte[] { 0 }, "testcontent", "testencoding")); args.setTransmissionDispatcher(mockedDispatcher); ThrottlingHandler eh = new ThrottlingHandler(tpm); boolean result = eh.validateTransmissionAndSend(args); return result; }
private boolean generateTransmissionWithStatusCode(int code) { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(code); args.setTransmission(new Transmission(new byte[] { 0 }, "testcontent", "testencoding")); args.setTransmissionDispatcher(mockedDispatcher); ErrorHandler eh = new ErrorHandler(tpm); boolean result = eh.validateTransmissionAndSend(args); return result; }
@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); } } }
private boolean generateTransmissionWithPartialResult(String responseBody) { TransmissionPolicyManager tpm = new TransmissionPolicyManager(true); TransmissionDispatcher mockedDispatcher = Mockito.mock(TransmissionDispatcher.class); TransmissionHandlerArgs args = new TransmissionHandlerArgs(); args.setResponseCode(206); args.setTransmission(new Transmission(fourItems, "application/x-json-stream", "gzip")); args.setTransmissionDispatcher(mockedDispatcher); args.setResponseBody(responseBody); PartialSuccessHandler eh = new PartialSuccessHandler(tpm); boolean result = eh.validateTransmissionAndSend(args); return result; }