@Test public void testUploadBatch() throws DataSinkException, IOException { TestUtils.pause(50); for(int i = 0; i < 25; i++) { sink.receive(message); } TestUtils.pause(1000); assertTrue(FakeHttp.httpRequestWasMade()); Type listType = new TypeToken<List<SimpleVehicleMessage>>() {}.getType(); ArrayList<SimpleVehicleMessage> messages = new ArrayList<>(); HttpPost request; while((request = (HttpPost) FakeHttp.getNextSentHttpRequest()) != null) { InputStream payload = request.getEntity().getContent(); int length = payload.available(); byte[] buffer = new byte[length]; payload.read(buffer); messages.addAll((List<SimpleVehicleMessage>)gson.fromJson(new String(buffer), listType)); } assertThat(messages, hasSize(25)); for(SimpleVehicleMessage deserializedMessage : messages) { assertThat(message, equalTo((VehicleMessage) deserializedMessage)); } } }