Github user srdo commented on a diff in the pull request: https://github.com/apache/storm/pull/2790#discussion_r207526335 --- Diff: external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java --- @@ -37,38 +39,48 @@ import org.apache.storm.tuple.Tuple; import org.junit.Test; import org.mockito.ArgumentMatcher; +import org.mockito.internal.util.MockUtil; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class KafkaBoltTest { private static final Logger LOG = LoggerFactory.getLogger(KafkaBoltTest.class); - + @SuppressWarnings({ "unchecked", "serial" }) - @Test - public void testSimple() { - final KafkaProducer<String, String> producer = mock(KafkaProducer.class); - when(producer.send(any(), any())).thenAnswer(new Answer<Object>() { + private <K, V> KafkaBolt<K, V> makeBolt(KafkaProducer<K, V> mockProducer) { + Validate.isTrue(MockUtil.isMock(mockProducer), "KafkaProducer should be a mock object."); + when(mockProducer.send(any(), any())).thenAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Callback c = (Callback)invocation.getArguments()[1]; c.onCompletion(null, null); return null; } }); - KafkaBolt<String, String> bolt = new KafkaBolt<String, String>() { + KafkaBolt<K, V> bolt = new KafkaBolt<K, V>() { @Override - protected KafkaProducer<String, String> mkProducer(Properties props) { - return producer; + protected KafkaProducer<K, V> mkProducer(Properties props) { + return mockProducer; } }; bolt.withTopicSelector("MY_TOPIC"); - + + return bolt; + } + + @SuppressWarnings({ "unchecked", "serial" }) + @Test + public void testSimple() { + final KafkaProducer<String, String> producer = mock(KafkaProducer.class); --- End diff -- That would be fine.
---