@Test
 @SuppressWarnings({"unchecked", "rawtypes"})
 public void testProducerListenerSet() throws Exception {
   KafkaProducerContext producerContext = new KafkaProducerContext();
   Serializer serializer = Mockito.mock(Serializer.class);
   ProducerMetadata<Object, Object> producerMetadata =
       new ProducerMetadata<>("default", Object.class, Object.class, serializer, serializer);
   Producer producer = Mockito.mock(Producer.class);
   ProducerConfiguration<Object, Object> producerConfiguration =
       new ProducerConfiguration<>(producerMetadata, producer);
   ProducerListener producerListener = mock(ProducerListener.class);
   producerConfiguration.setProducerListener(producerListener);
   Map<String, ProducerConfiguration<?, ?>> producerConfigurations =
       Collections.<String, ProducerConfiguration<?, ?>>singletonMap(
           "default", producerConfiguration);
   producerContext.setProducerConfigurations(producerConfigurations);
   KafkaProducerMessageHandler handler = new KafkaProducerMessageHandler(producerContext);
   handler.handleMessage(
       MessageBuilder.withPayload("somePayload")
           .setHeader(KafkaHeaders.PARTITION_ID, 2)
           .setHeader(KafkaHeaders.MESSAGE_KEY, "someKey")
           .build());
   final ArgumentCaptor<Callback> argument = ArgumentCaptor.forClass(Callback.class);
   verify(producer).send(any(ProducerRecord.class), argument.capture());
   Callback callback = argument.getValue();
   assertThat(callback, CoreMatchers.instanceOf(ProducerListenerInvokingCallback.class));
   DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(callback);
   assertEquals(fieldAccessor.getPropertyValue("topic"), "default");
   assertEquals(fieldAccessor.getPropertyValue("partition"), 2);
   assertEquals(fieldAccessor.getPropertyValue("key"), "someKey");
   assertEquals(fieldAccessor.getPropertyValue("payload"), "somePayload");
   assertSame(fieldAccessor.getPropertyValue("producerListener"), producerListener);
   verifyNoMoreInteractions(producer);
 }
 @Test
 public void idleMessage() {
   MessageFactory factory = new MessageFactory();
   PriorityMessageQueue pmq = new PriorityMessageQueue(timer, factory);
   SafeMessageQueue mq = new SafeMessageQueue(timer, factory, "test");
   setRunning(pmq);
   setRunning(mq);
   timer.setNow(2001);
   Consumer consumer = new Consumer(pmq, mq, factory, timer);
   consumer.queueConsumer.onIdle();
   Message message = pmq.next(dummyConsumer);
   assertThat(message, CoreMatchers.instanceOf(JobConsumerIdleMessage.class));
   assertThat(((JobConsumerIdleMessage) message).getLastJobCompleted(), CoreMatchers.is(2001L));
 }
  @Test
  public void runJobMessage() {
    MessageFactory factory = new MessageFactory();
    PriorityMessageQueue pmq = new PriorityMessageQueue(timer, factory);
    setRunning(pmq);
    SafeMessageQueue mq = new SafeMessageQueue(timer, factory, "test");
    setRunning(mq);
    timer.setNow(2001);
    Consumer consumer = new Consumer(pmq, mq, factory, timer);
    RunJobMessage rjm = factory.obtain(RunJobMessage.class);
    JobHolder mockHolder = mock(JobHolder.class);
    when(mockHolder.safeRun(0, timer)).thenReturn(JobHolder.RUN_RESULT_SUCCESS);
    rjm.setJobHolder(mockHolder);
    timer.setNow(3001);
    consumer.queueConsumer.handleMessage(rjm);

    Message message = pmq.next(dummyConsumer);
    assertThat(message, CoreMatchers.instanceOf(RunJobResultMessage.class));
    RunJobResultMessage result = (RunJobResultMessage) message;
    assertThat(result.getResult(), CoreMatchers.is(JobHolder.RUN_RESULT_SUCCESS));
    assertThat(result.getJobHolder(), CoreMatchers.is(mockHolder));
    assertThat(consumer.lastJobCompleted, CoreMatchers.is(3001L));
  }
示例#4
0
 /**
  * Is the value an instance of a particular type?.
  *
  * @param type the type
  */
 public void isA(java.lang.Class<?> type) {
   verifyUsingMatcher(CoreMatchers.instanceOf(type));
 }