diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java index 0b1e015e..7dbe5512 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java @@ -36,6 +36,7 @@ import org.springframework.cloud.client.loadbalancer.Response; * * @author Spencer Gibb * @author Olga Maciaszek-Sharma + * @author Zhuozhi JI */ public class RoundRobinLoadBalancer implements ReactorServiceInstanceLoadBalancer { diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancerTest.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancerTest.java index 755d6684..20a1bb89 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancerTest.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancerTest.java @@ -26,7 +26,6 @@ import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.loadbalancer.support.SimpleObjectProvider; import static java.lang.Integer.MAX_VALUE; -import static java.lang.Integer.MIN_VALUE; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; @@ -38,22 +37,7 @@ import static org.mockito.Mockito.when; class RoundRobinLoadBalancerTest { @Test - void shouldOrderEnforcedWhenPositive() { - assertOrderEnforced(0); - } - - @Test - void shouldOrderEnforcedWhenNegative() { - assertOrderEnforced(MIN_VALUE); - } - - @Test - void shouldOrderEnforcedWhenPositiveOverflow() { - assertOrderEnforced(MAX_VALUE); - } - - @SuppressWarnings("all") - void assertOrderEnforced(int seed) { + void shouldEnforceOrderWhenPositiveOverflow() { List instances = new ArrayList<>(); for (int i = 0; i < 10; i++) { ServiceInstance instance = mock(ServiceInstance.class); @@ -65,13 +49,11 @@ class RoundRobinLoadBalancerTest { when(supplier.get(any())).thenReturn(Flux.just(instances)); RoundRobinLoadBalancer loadBalancer = new RoundRobinLoadBalancer(new SimpleObjectProvider<>(supplier), - "shouldStartFromZeroWhenPositiveOverflow", seed); + "shouldStartFromZeroWhenPositiveOverflow", MAX_VALUE); for (int i = 0; i < 10; i++) { - int instanceId = ((seed + 1 + i) & MAX_VALUE) % instances.size(); ServiceInstance chosen = loadBalancer.choose().block().getServer(); - assertThat(chosen.getInstanceId()).isEqualTo(instanceId + ""); + assertThat(chosen.getInstanceId()).isEqualTo(i + ""); } } - }