From 3e89177d9b8d30c44623221050e5770af31b4f2a Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Sun, 30 Aug 2020 15:46:52 +0430 Subject: [PATCH] Fix the integrations tests in ribbon-client-service --- .../src/main/resources/application.yml | 1 - .../RibbonRetryFailureIntegrationTest.java | 7 +++++-- .../RibbonRetrySuccessIntegrationTest.java | 7 +++++-- .../spring/cloud/ribbon/retry/TestUtils.java | 18 ++++++++++++++++++ 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/TestUtils.java diff --git a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/main/resources/application.yml b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/main/resources/application.yml index 29d2360793..a6f67772f2 100644 --- a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/main/resources/application.yml +++ b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/main/resources/application.yml @@ -9,7 +9,6 @@ weather-service: ribbon: eureka: enabled: false - listOfServers: http://localhost:8021, http://localhost:8022 ServerListRefreshInterval: 5000 MaxAutoRetries: 3 MaxAutoRetriesNextServer: 1 diff --git a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetryFailureIntegrationTest.java b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetryFailureIntegrationTest.java index 0f0a1c4255..6a4fe4bd00 100644 --- a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetryFailureIntegrationTest.java +++ b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetryFailureIntegrationTest.java @@ -10,6 +10,7 @@ import org.springframework.boot.web.server.LocalServerPort; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.http.ResponseEntity; +import static com.baeldung.spring.cloud.ribbon.retry.TestUtils.setUpServices; import static org.junit.jupiter.api.Assertions.assertTrue; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RibbonClientApp.class) @@ -24,8 +25,10 @@ public class RibbonRetryFailureIntegrationTest { @BeforeAll public static void setup() { - weatherServiceInstance1 = startApp(8021); - weatherServiceInstance2 = startApp(8022); + weatherServiceInstance1 = startApp(0); + weatherServiceInstance2 = startApp(0); + + setUpServices(weatherServiceInstance1, weatherServiceInstance2); } @AfterAll diff --git a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetrySuccessIntegrationTest.java b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetrySuccessIntegrationTest.java index 6fdad0f2a9..281f69d0bc 100644 --- a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetrySuccessIntegrationTest.java +++ b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/RibbonRetrySuccessIntegrationTest.java @@ -10,6 +10,7 @@ import org.springframework.boot.web.server.LocalServerPort; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.http.ResponseEntity; +import static com.baeldung.spring.cloud.ribbon.retry.TestUtils.setUpServices; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -25,8 +26,10 @@ public class RibbonRetrySuccessIntegrationTest { @BeforeAll public static void setup() { - weatherServiceInstance1 = startApp(8021); - weatherServiceInstance2 = startApp(8022); + weatherServiceInstance1 = startApp(0); + weatherServiceInstance2 = startApp(0); + + setUpServices(weatherServiceInstance1, weatherServiceInstance2); } private static ConfigurableApplicationContext startApp(int port) { diff --git a/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/TestUtils.java b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/TestUtils.java new file mode 100644 index 0000000000..67c7847cda --- /dev/null +++ b/spring-cloud/spring-cloud-ribbon-retry/ribbon-client-service/src/test/java/com/baeldung/spring/cloud/ribbon/retry/TestUtils.java @@ -0,0 +1,18 @@ +package com.baeldung.spring.cloud.ribbon.retry; + +import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext; +import org.springframework.context.ConfigurableApplicationContext; + +class TestUtils { + + static int getWebAppPort(ConfigurableApplicationContext ctx) { + return ((AnnotationConfigServletWebServerApplicationContext) ctx).getWebServer().getPort(); + } + + static void setUpServices(ConfigurableApplicationContext service1, ConfigurableApplicationContext service2) { + int port1 = getWebAppPort(service1); + int port2 = getWebAppPort(service2); + String serversList = String.format("http://localhost:%d, http://localhost:%d", port1, port2); + System.setProperty("weather-service.ribbon.listOfServers", serversList); + } +}