BulkWriterResponse response = bulkMessageWriter.write(sensorType, configurations, tupleList, messageList);
bolt.execute(t); verify(outputCollector, times(0)).ack(t); verify(batchWriter, times(0)).write(eq(sensorType), any(), any(), any()); when(batchWriter.write(any(), any(), any(), any())).thenReturn(writerResponse); verify(outputCollector, times(1)).ack(t); verify(batchWriter, times(1)).write(eq(sensorType), any(), any(), any()); verify(outputCollector, times(0)).reportError(any()); verify(outputCollector, times(0)).fail(any());
doThrow(new Exception()).when(batchWriter).write(any(), any(), any(), any()); verify(batchWriter, times(1)).init(any(), any(), any()); for(int i = 0;i < 4;++i) { bolt.execute(t); verify(outputCollector, times(0)).ack(t); verify(batchWriter, times(0)).write(eq(sensorType), any(), any(), any()); verify(outputCollector, times(1)).ack(t); verify(batchWriter, times(1)).write(eq(sensorType), any(), any(), any()); verify(outputCollector, times(1)).ack(goodTuple); verify(outputCollector, times(1)).reportError(any());
bolt.execute(t); verify(outputCollector, times(0)).ack(t); verify(batchWriter, times(0)).write(eq(sensorType), any(), any(), any()); writerResponse.addAllSuccesses(tuples); writerResponse.addSuccess(goodTuple); when(batchWriter.write(any(), any(), any(), any())).thenReturn(writerResponse); verify(batchWriter, times(1)).write(eq(sensorType), any(), any(), any()); verify(outputCollector, times(1)).reportError(any()); verify(outputCollector, times(0)).fail(any());
bolt.execute(t); verify(outputCollector, times(0)).ack(t); verify(batchWriter, times(0)).write(eq(sensorType), any(), any(), any()); writerResponse.addSuccess(goodTuple); writerResponse.addError(new IllegalStateException(), errorTuple); when(batchWriter.write(any(), any(), any(), any())).thenReturn(writerResponse); bolt.execute(errorTuple); for(Tuple t : tuples) { verify(batchWriter, times(1)).write(eq(sensorType), any(), any(), any()); verify(outputCollector, times(1)).reportError(any()); verify(outputCollector, times(0)).fail(any());
messageList.add(fullMessageList.get(i)); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(0)).write(eq(sensorType) , any(WriterConfiguration.class), eq(tupleList), eq(messageList)); BulkWriterResponse response = new BulkWriterResponse(); response.addAllSuccesses(tupleList); when(bulkMessageWriter.write(eq(sensorType), any(WriterConfiguration.class), eq(tupleList) , argThat(new MessageListMatcher(messageList)))).thenReturn(response); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(1)).write(eq(sensorType) , any(WriterConfiguration.class), eq(tupleList) , argThat(new MessageListMatcher(messageList))); verify(outputCollector, times(5)).ack(tuple); reset(outputCollector); doThrow(new Exception()).when(bulkMessageWriter).write(eq(sensorType), any(WriterConfiguration.class) , Matchers.anyListOf(Tuple.class), Matchers.anyListOf(JSONObject.class)); when(tuple.getValueByField("message")).thenReturn(fullMessageList.get(0));
messageList.add(fullMessageList.get(i)); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(0)).write(eq(sensorType) , any(WriterConfiguration.class), eq(tupleList), eq(messageList)); BulkWriterResponse response = new BulkWriterResponse(); response.addAllSuccesses(tupleList); when(bulkMessageWriter.write(eq(sensorType), any(WriterConfiguration.class), eq(tupleList) , argThat(new MessageListMatcher(messageList)))).thenReturn(response); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(1)).write(eq(sensorType) , any(WriterConfiguration.class) , eq(tupleList), argThat(new MessageListMatcher(messageList)));
messageList.add(fullMessageList.get(i)); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(0)).write(eq(sensorType) , any(WriterConfiguration.class), eq(tupleList), eq(messageList)); BulkWriterResponse response = new BulkWriterResponse(); response.addAllSuccesses(tupleList); when(bulkMessageWriter.write(eq(sensorType), any(WriterConfiguration.class), eq(tupleList) , argThat(new MessageListMatcher(messageList)))).thenReturn(response); clock.advanceToSeconds(2); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(0)).write(eq(sensorType) , any(WriterConfiguration.class) , eq(tupleList), argThat(new MessageListMatcher(messageList))); clock.advanceToSeconds(9); bulkMessageWriterBolt.execute(tuple); verify(bulkMessageWriter, times(1)).write(eq(sensorType) , any(WriterConfiguration.class) , eq(tupleList), argThat(new MessageListMatcher(messageList)));