Remove DMaaP dependency from AAI-Common
[aai/aai-common.git] / aai-core / src / test / java / org / onap / aai / kafka / AAIKafkaEventJMSConsumerTest.java
1 package org.onap.aai.kafka;
2
3 import static org.mockito.ArgumentMatchers.anyString;
4 import static org.mockito.ArgumentMatchers.eq;
5 import static org.mockito.Mockito.mock;
6 import static org.mockito.Mockito.times;
7 import static org.mockito.Mockito.verify;
8 import static org.mockito.Mockito.when;
9
10 import javax.jms.TextMessage;
11
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Mock;
16 import org.mockito.junit.MockitoJUnitRunner;
17 import org.onap.aai.PayloadUtil;
18 import org.springframework.core.env.Environment;
19 import org.springframework.kafka.core.KafkaTemplate;
20 import org.springframework.kafka.test.context.EmbeddedKafka;
21 import org.springframework.test.util.ReflectionTestUtils;
22
23 @RunWith(MockitoJUnitRunner.class)
24 @EmbeddedKafka(partitions = 1, brokerProperties = { "listeners=PLAINTEXT://localhost:9092", "port=9092" })
25 public class AAIKafkaEventJMSConsumerTest {
26
27     @Mock
28     private Environment environment;
29
30     @Mock
31     private KafkaTemplate<String,String> kafkaTemplate;
32
33     private AAIKafkaEventJMSConsumer aaiKafkaEventJMSConsumer;
34
35     @Before
36     public void setUp(){
37         aaiKafkaEventJMSConsumer = new AAIKafkaEventJMSConsumer(environment,kafkaTemplate);
38     }
39
40     @Test
41     public void onMessage_shouldSendMessageToKafkaTopic_whenAAIEventReceived()
42     throws Exception
43     {
44         TextMessage mockTextMessage = mock(TextMessage.class);
45         String payload = PayloadUtil.getResourcePayload("aai-event.json");
46
47         when(mockTextMessage.getText()).thenReturn(payload);
48         aaiKafkaEventJMSConsumer.onMessage(mockTextMessage);
49         verify(kafkaTemplate, times(1)).send(eq("AAI-EVENT"), anyString());
50     }
51
52     @Test
53     public void onMessage_shouldNotSendMessageToKafkaTopic_whenInvalidEventReceived() throws Exception{
54         TextMessage mockTextMessage = mock(TextMessage.class);
55         String payload = PayloadUtil.getResourcePayload("aai-invalid-event.json");
56         when(mockTextMessage.getText()).thenReturn(payload);
57         aaiKafkaEventJMSConsumer.onMessage(mockTextMessage);
58     }
59
60
61     @Test
62     public void onMessage_shouldHandleJSONException() throws Exception {
63         // Arrange
64         AAIKafkaEventJMSConsumer consumer = new AAIKafkaEventJMSConsumer(null, kafkaTemplate);
65         TextMessage mockTextMessage = mock(TextMessage.class);
66         ReflectionTestUtils.setField(consumer, "kafkaTemplate", null); // Simulate null kafkaTemplate
67
68         // Act
69         consumer.onMessage(mockTextMessage);
70
71         // Assert
72         // Verify that exception is logged
73     }
74
75     @Test
76     public void onMessage_shouldHandleGenericException() throws Exception {
77         // Arrange
78         AAIKafkaEventJMSConsumer consumer = new AAIKafkaEventJMSConsumer(null, kafkaTemplate);
79         TextMessage mockTextMessage = mock(TextMessage.class);
80         when(mockTextMessage.getText()).thenReturn("{\"event-topic\":\"AAI-EVENT\",\"aaiEventPayload\":{}}"); // Valid JSON but missing required fields
81
82         // Act
83         consumer.onMessage(mockTextMessage);
84
85         // Assert
86         // Verify that exception is logged
87     }
88
89 }