From a01f54446048b6c2386c0b686cbc6b575343da15 Mon Sep 17 00:00:00 2001 From: seanyu Date: Sat, 4 Mar 2023 23:15:41 +0800 Subject: [PATCH] add more ut --- ...sCircuitBreakerGatewayIntegrationTest.java | 23 +++++++++++++++++++ .../PolarisCircuitBreakerTest.java | 6 +++++ .../ReactivePolarisCircuitBreakerTest.java | 6 +++++ 3 files changed, 35 insertions(+) diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java index f68df08f4..cf0823417 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java @@ -89,6 +89,22 @@ public class PolarisCircuitBreakerGatewayIntegrationTest { response -> assertThat(response.getResponseBody()).isEqualTo("fallback".getBytes())); } + @Test + public void noFallback() throws Exception { + + stubFor(get(urlEqualTo("/err-no-fallback")) + .willReturn(aResponse() + .withStatus(500) + .withBody("err") + .withFixedDelay(3000))); + + webClient + .get().uri("/err-no-fallback") + .header("Host", "www.circuitbreaker-no-fallback.com") + .exchange() + .expectStatus().isEqualTo(500); + } + @Configuration @EnableAutoConfiguration @@ -109,6 +125,13 @@ public class PolarisCircuitBreakerGatewayIntegrationTest { .setFallbackUri("forward:/fallback") )) .uri(httpUri)) + .route(p -> p + .host("*.circuitbreaker-no-fallback.com") + .filters(f -> f + .circuitBreaker(config -> config + .setStatusCodes(codeSets) + )) + .uri(httpUri)) .build(); } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerTest.java index f2b46641b..bf35fa8f9 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerTest.java @@ -19,6 +19,7 @@ package com.tencent.cloud.polaris.circuitbreaker; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; +import com.tencent.cloud.polaris.circuitbreaker.common.PolarisCircuitBreakerConfigBuilder; import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerAutoConfiguration; import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerFeignClientAutoConfiguration; import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration; @@ -80,6 +81,11 @@ public class PolarisCircuitBreakerTest { PolarisCircuitBreakerFactory polarisCircuitBreakerFactory = context.getBean(PolarisCircuitBreakerFactory.class); CircuitBreaker cb = polarisCircuitBreakerFactory.create(SERVICE_CIRCUIT_BREAKER); + PolarisCircuitBreakerConfigBuilder.PolarisCircuitBreakerConfiguration configuration = + polarisCircuitBreakerFactory.configBuilder(SERVICE_CIRCUIT_BREAKER).build(); + + polarisCircuitBreakerFactory.configureDefault(id -> configuration); + assertThat(cb.run(() -> "foobar")).isEqualTo("foobar"); assertThat((String) cb.run(() -> { diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/ReactivePolarisCircuitBreakerTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/ReactivePolarisCircuitBreakerTest.java index 48deaa67f..f06502c87 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/ReactivePolarisCircuitBreakerTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/ReactivePolarisCircuitBreakerTest.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.Collections; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; +import com.tencent.cloud.polaris.circuitbreaker.common.PolarisCircuitBreakerConfigBuilder; import com.tencent.cloud.polaris.circuitbreaker.config.ReactivePolarisCircuitBreakerAutoConfiguration; import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration; import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementAutoConfiguration; @@ -81,6 +82,11 @@ public class ReactivePolarisCircuitBreakerTest { ReactivePolarisCircuitBreakerFactory polarisCircuitBreakerFactory = context.getBean(ReactivePolarisCircuitBreakerFactory.class); ReactiveCircuitBreaker cb = polarisCircuitBreakerFactory.create(SERVICE_CIRCUIT_BREAKER); + PolarisCircuitBreakerConfigBuilder.PolarisCircuitBreakerConfiguration configuration = + polarisCircuitBreakerFactory.configBuilder(SERVICE_CIRCUIT_BREAKER).build(); + + polarisCircuitBreakerFactory.configureDefault(id -> configuration); + assertThat(Mono.just("foobar").transform(cb::run).block()).isEqualTo("foobar"); assertThat(Mono.error(new RuntimeException("boom")).transform(it -> cb.run(it, t -> Mono.just("fallback")))