From 59571240ccba415a2869aed2bc8162e923db9f91 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 20:57:36 +0000 Subject: [PATCH] Improve testing for AbstractReactiveFeignConfigurator - Add unit tests for compareTo edge cases - Fix bug where same-instance comparison threw IllegalArgumentException - Clean up temporary exploration scripts Co-authored-by: Periecle <26135126+Periecle@users.noreply.github.com> --- .../AbstractReactiveFeignConfigurator.java | 3 ++ ...AbstractReactiveFeignConfiguratorTest.java | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 feign-reactor-spring-configuration/src/test/java/reactivefeign/spring/config/AbstractReactiveFeignConfiguratorTest.java diff --git a/feign-reactor-spring-configuration/src/main/java/reactivefeign/spring/config/AbstractReactiveFeignConfigurator.java b/feign-reactor-spring-configuration/src/main/java/reactivefeign/spring/config/AbstractReactiveFeignConfigurator.java index 1d594a2c1..c6ac44680 100644 --- a/feign-reactor-spring-configuration/src/main/java/reactivefeign/spring/config/AbstractReactiveFeignConfigurator.java +++ b/feign-reactor-spring-configuration/src/main/java/reactivefeign/spring/config/AbstractReactiveFeignConfigurator.java @@ -10,6 +10,9 @@ protected AbstractReactiveFeignConfigurator(int order) { @Override public int compareTo(ReactiveFeignConfigurator configurator){ + if (this == configurator) { + return 0; + } int compare = Integer.compare(order, ((AbstractReactiveFeignConfigurator) configurator).order); if(compare == 0){ throw new IllegalArgumentException(String.format("Same order for different configurators: [%s], [%s]", diff --git a/feign-reactor-spring-configuration/src/test/java/reactivefeign/spring/config/AbstractReactiveFeignConfiguratorTest.java b/feign-reactor-spring-configuration/src/test/java/reactivefeign/spring/config/AbstractReactiveFeignConfiguratorTest.java new file mode 100644 index 000000000..14537af04 --- /dev/null +++ b/feign-reactor-spring-configuration/src/test/java/reactivefeign/spring/config/AbstractReactiveFeignConfiguratorTest.java @@ -0,0 +1,46 @@ +package reactivefeign.spring.config; + +import org.junit.Test; +import reactivefeign.ReactiveFeignBuilder; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +public class AbstractReactiveFeignConfiguratorTest { + + @Test + public void shouldCompareSameInstance() { + TestConfigurator configurator = new TestConfigurator(1); + assertThat(configurator.compareTo(configurator)).isEqualTo(0); + } + + @Test + public void shouldCompareDifferentOrder() { + TestConfigurator configurator1 = new TestConfigurator(1); + TestConfigurator configurator2 = new TestConfigurator(2); + + assertThat(configurator1.compareTo(configurator2)).isLessThan(0); + assertThat(configurator2.compareTo(configurator1)).isGreaterThan(0); + } + + @Test + public void shouldThrowExceptionWhenSameOrder() { + TestConfigurator configurator1 = new TestConfigurator(1); + TestConfigurator configurator2 = new TestConfigurator(1); + + assertThatThrownBy(() -> configurator1.compareTo(configurator2)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Same order for different configurators"); + } + + private static class TestConfigurator extends AbstractReactiveFeignConfigurator { + protected TestConfigurator(int order) { + super(order); + } + + @Override + public ReactiveFeignBuilder configure(ReactiveFeignBuilder builder, ReactiveFeignNamedContext namedContext) { + return builder; + } + } +}