diff --git a/core/src/test/java/org/jsmart/zerocode/core/kafka/helper/KafkaConsumerHelperTest.java b/core/src/test/java/org/jsmart/zerocode/core/kafka/helper/KafkaConsumerHelperTest.java index cf243282..91066e91 100644 --- a/core/src/test/java/org/jsmart/zerocode/core/kafka/helper/KafkaConsumerHelperTest.java +++ b/core/src/test/java/org/jsmart/zerocode/core/kafka/helper/KafkaConsumerHelperTest.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.UUID; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; @@ -162,6 +163,30 @@ public void should_read_json_with_headers_in_record() throws IOException { Assert.assertEquals(Collections.singletonMap("headerKey", "headerValue"), consumerJsonRecord.getHeaders()); } + @Test + public void should_read_json_with_headers_in_record_with_key_of_object_type() throws IOException { + // given + Object key = UUID.randomUUID(); + ConsumerRecord consumerRecord = Mockito.mock(ConsumerRecord.class); + Mockito.when(consumerRecord.key()).thenReturn(key); + Mockito.when(consumerRecord.value()).thenReturn("\"value\""); + Mockito.when(consumerRecord.headers()) + .thenReturn(new RecordHeaders().add("headerKey", "headerValue".getBytes())); + + // when + List consumerJsonRecords = new ArrayList<>(); + KafkaConsumerHelper.readJson(consumerJsonRecords, Iterators.forArray(consumerRecord),null); + + // then + Assert.assertEquals(1, consumerJsonRecords.size()); + ConsumerJsonRecord consumerJsonRecord = consumerJsonRecords.get(0); + Assert.assertTrue(consumerJsonRecord.getKey() instanceof JsonNode); + Assert.assertTrue(consumerJsonRecord.getValue() instanceof JsonNode); + Assert.assertEquals("\"" +key+"\"", consumerJsonRecord.getKey().toString()); + Assert.assertEquals("\"value\"", consumerJsonRecord.getValue().toString()); + Assert.assertEquals(Collections.singletonMap("headerKey", "headerValue"), consumerJsonRecord.getHeaders()); + } + @Test public void test_firstPoll_exits_early_on_assignment() { diff --git a/core/src/test/java/org/jsmart/zerocode/core/kafka/receive/message/ConsumerJsonRecordTest.java b/core/src/test/java/org/jsmart/zerocode/core/kafka/receive/message/ConsumerJsonRecordTest.java index 61b823d2..d675a53a 100644 --- a/core/src/test/java/org/jsmart/zerocode/core/kafka/receive/message/ConsumerJsonRecordTest.java +++ b/core/src/test/java/org/jsmart/zerocode/core/kafka/receive/message/ConsumerJsonRecordTest.java @@ -11,6 +11,7 @@ import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; +import java.util.UUID; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; @@ -22,26 +23,33 @@ public class ConsumerJsonRecordTest { @Test public void testSer() throws IOException { // TODO: Use assert iso sysout - JsonNode key = objectMapper.readTree("\"key1\""); + JsonNode key1 = objectMapper.readTree("\"key1\""); JsonNode value = objectMapper.readTree("\"val1\""); - ConsumerJsonRecord record = new ConsumerJsonRecord(key, value, null); + ConsumerJsonRecord record = new ConsumerJsonRecord(key1, value, null); String json = objectMapper.writeValueAsString(record); System.out.println("1 json >> " + json); - JsonNode key1 = objectMapper.readTree("123"); + JsonNode key2 = objectMapper.readTree("123"); - record = new ConsumerJsonRecord(key1, value, null); + record = new ConsumerJsonRecord(key2, value, null); json = objectMapper.writeValueAsString(record); - System.out.println("1 json >> " + json); + System.out.println("2 json >> " + json); - JsonNode key2 = objectMapper.readTree("23.45"); + JsonNode key3 = objectMapper.readTree("23.45"); - record = new ConsumerJsonRecord(key2, value, null); + record = new ConsumerJsonRecord(key3, value, null); json = objectMapper.writeValueAsString(record); System.out.println("2 json >> " + json); + +// UUID/Object Key + JsonNode key4 = objectMapper.readTree(objectMapper.writeValueAsString(UUID.randomUUID().toString())); + + record = new ConsumerJsonRecord(key4, value, null); + json = objectMapper.writeValueAsString(record); + System.out.println("4 json >> " + json); } @Test