fcb72666a179d2263b23cd1b31c7f388161b7650
[integration.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * Simulator
4  * ================================================================================
5  * Copyright (C) 2019 Nokia. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.netconfsimulator.kafka.listener;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.mockito.ArgumentMatchers.any;
25 import static org.mockito.ArgumentMatchers.eq;
26 import static org.mockito.Mockito.doReturn;
27 import static org.mockito.Mockito.mock;
28 import static org.mockito.Mockito.spy;
29 import static org.mockito.MockitoAnnotations.initMocks;
30
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Test;
33 import org.mockito.Mock;
34 import org.springframework.kafka.core.ConsumerFactory;
35 import org.springframework.kafka.listener.ContainerProperties;
36 import org.springframework.kafka.listener.KafkaMessageListenerContainer;
37 import org.springframework.kafka.listener.MessageListener;
38
39 class KafkaListenerHandlerTest {
40
41     private static final String CLIENT_ID_REGEX = "[0-9]{10,}";
42     private static final String SAMPLE_TOPIC = "sampleTopic";
43
44     @Mock
45     private ConsumerFactory<String, String> consumerFactory;
46
47     @Mock
48     private KafkaMessageListenerContainer<String, String> kafkaMessageListenerContainer;
49
50     @Mock
51     private MessageListener messageListener;
52
53     @BeforeEach
54     void setUp() {
55         initMocks(this);
56     }
57
58
59     @Test
60     void shouldProperlyCreateKafkaListener() {
61         KafkaListenerHandler kafkaListenerHandler = spy(new KafkaListenerHandler(consumerFactory));
62         doReturn(kafkaMessageListenerContainer).when(kafkaListenerHandler)
63             .createListenerContainer(any(ContainerProperties.class), eq(SAMPLE_TOPIC));
64
65         KafkaListenerEntry kafkaListenerEntry = kafkaListenerHandler
66             .createKafkaListener(messageListener, SAMPLE_TOPIC);
67
68         assertThat(kafkaListenerEntry.getListenerContainer()).isEqualTo(kafkaMessageListenerContainer);
69         assertThat(kafkaListenerEntry.getClientId()).matches(CLIENT_ID_REGEX);
70     }
71
72     @Test
73     void shouldProperlyCreateContainer() {
74         KafkaListenerHandler kafkaListenerHandler = spy(new KafkaListenerHandler(consumerFactory));
75         ContainerProperties containerProperties = new ContainerProperties(SAMPLE_TOPIC);
76         containerProperties.setMessageListener(mock(MessageListener.class));
77
78         KafkaMessageListenerContainer<String, String> listenerContainer = kafkaListenerHandler
79             .createListenerContainer(containerProperties, SAMPLE_TOPIC);
80
81         ContainerProperties actualProperties = listenerContainer.getContainerProperties();
82         assertThat(actualProperties.getTopics()).isEqualTo(containerProperties.getTopics());
83         assertThat(actualProperties.getMessageListener()).isEqualTo(containerProperties.getMessageListener());
84     }
85
86
87 }