Example usage for org.springframework.kafka.core ConsumerFactory createConsumer

List of usage examples for org.springframework.kafka.core ConsumerFactory createConsumer

Introduction

In this page you can find the example usage for org.springframework.kafka.core ConsumerFactory createConsumer.

Prototype

default Consumer<K, V> createConsumer() 

Source Link

Document

Create a consumer with the group id and client id as configured in the properties.

Usage

From source file:org.springframework.kafka.listener.ConcurrentMessageListenerContainerTests.java

@Test
@SuppressWarnings("unchecked")
public void testConcurrencyWithPartitions() {
    TopicPartitionInitialOffset[] topic1PartitionS = new TopicPartitionInitialOffset[] {
            new TopicPartitionInitialOffset(topic1, 0), new TopicPartitionInitialOffset(topic1, 1),
            new TopicPartitionInitialOffset(topic1, 2), new TopicPartitionInitialOffset(topic1, 3),
            new TopicPartitionInitialOffset(topic1, 4), new TopicPartitionInitialOffset(topic1, 5),
            new TopicPartitionInitialOffset(topic1, 6) };
    ConsumerFactory<Integer, String> cf = mock(ConsumerFactory.class);
    Consumer<Integer, String> consumer = mock(Consumer.class);
    given(cf.createConsumer()).willReturn(consumer);
    given(consumer.poll(anyLong())).willAnswer(new Answer<ConsumerRecords<Integer, String>>() {

        @Override//  w w  w .j  av  a2  s . com
        public ConsumerRecords<Integer, String> answer(InvocationOnMock invocation) throws Throwable {
            Thread.sleep(100);
            return null;
        }

    });
    ContainerProperties containerProps = new ContainerProperties(topic1PartitionS);
    containerProps.setMessageListener((MessageListener<Integer, String>) message -> {
    });

    ConcurrentMessageListenerContainer<Integer, String> container = new ConcurrentMessageListenerContainer<>(cf,
            containerProps);
    container.setConcurrency(3);
    container.start();
    List<KafkaMessageListenerContainer<Integer, String>> containers = KafkaTestUtils.getPropertyValue(container,
            "containers", List.class);
    assertThat(containers.size()).isEqualTo(3);
    for (int i = 0; i < 3; i++) {
        assertThat(KafkaTestUtils.getPropertyValue(containers.get(i), "topicPartitions",
                TopicPartitionInitialOffset[].class).length).isEqualTo(i < 2 ? 2 : 3);
    }
    container.stop();
}