From 6087af7073744eff1adab2e80f8e229804573431 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(); }