From 7ee3125bc712f21800a7bd3ea7ee1d70cf77a0db Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Mon, 1 May 2023 18:21:56 -0400 Subject: [PATCH] Fixing a Kafka binder unit test failure Latest version of Mockito (5.3.0) used in Spring Boot 3.1.0, apparently needs the specific Collection type when capturing values via the ArgumentCaptor. Earlier versisons didn't mandate this. --- .../binder/kafka/KafkaBinderUnitTests.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/binders/kafka-binder/spring-cloud-stream-binder-kafka/src/test/java/org/springframework/cloud/stream/binder/kafka/KafkaBinderUnitTests.java b/binders/kafka-binder/spring-cloud-stream-binder-kafka/src/test/java/org/springframework/cloud/stream/binder/kafka/KafkaBinderUnitTests.java index a5bbf5683..6c9e0a4c9 100644 --- a/binders/kafka-binder/spring-cloud-stream-binder-kafka/src/test/java/org/springframework/cloud/stream/binder/kafka/KafkaBinderUnitTests.java +++ b/binders/kafka-binder/spring-cloud-stream-binder-kafka/src/test/java/org/springframework/cloud/stream/binder/kafka/KafkaBinderUnitTests.java @@ -305,15 +305,29 @@ public class KafkaBinderUnitTests { Binding messageChannelBinding = binder.bindConsumer(topic, group, channel, consumerProperties); assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue(); - @SuppressWarnings("unchecked") - ArgumentCaptor> captor = ArgumentCaptor.forClass(Set.class); - if (earliest) { - verify(consumer).seekToBeginning(captor.capture()); + + if (!groupManage) { + @SuppressWarnings("unchecked") + ArgumentCaptor> captor = ArgumentCaptor.forClass(Set.class); + if (earliest) { + verify(consumer).seekToBeginning(captor.capture()); + } + else { + verify(consumer).seekToEnd(captor.capture()); + } + assertThat(captor.getValue()).containsExactlyInAnyOrderElementsOf(partitions); } else { - verify(consumer).seekToEnd(captor.capture()); + @SuppressWarnings("unchecked") + ArgumentCaptor> captor = ArgumentCaptor.forClass(List.class); + if (earliest) { + verify(consumer).seekToBeginning(captor.capture()); + } + else { + verify(consumer).seekToEnd(captor.capture()); + } + assertThat(captor.getValue()).containsExactlyInAnyOrderElementsOf(partitions); } - assertThat(captor.getValue()).containsExactlyInAnyOrderElementsOf(partitions); messageChannelBinding.unbind(); }