From dad741f42ea2963d30dd4c9896ffc225fc61e2e6 Mon Sep 17 00:00:00 2001 From: seanyu Date: Wed, 22 Mar 2023 20:32:50 +0800 Subject: [PATCH] fix ut --- ...codeTransferMedataWebClientFilterTest.java | 2 ++ ...LimitRuleArgumentReactiveResolverTest.java | 30 +++++++++++++++++-- ...eLimitRuleArgumentServletResolverTest.java | 30 +++++++++++++++++-- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java index 28fcbca68..cb5effc6a 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java @@ -52,6 +52,8 @@ public class EncodeTransferMedataWebClientFilterTest { @Test public void testTransitiveMetadataFromApplicationConfig() { + MetadataContext metadataContext = MetadataContextHolder.get(); + metadataContext.setTransHeadersKV("xxx", "xxx"); String metadata = webClientBuilder.baseUrl("http://localhost:" + localServerPort).build() .get() .uri("/test") diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentReactiveResolverTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentReactiveResolverTest.java index e256e749b..1648a9618 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentReactiveResolverTest.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentReactiveResolverTest.java @@ -66,7 +66,15 @@ public class RateLimitRuleArgumentReactiveResolverTest { private final PolarisRateLimiterLabelReactiveResolver labelResolver = exchange -> Collections.singletonMap("xxx", "xxx"); - private RateLimitRuleArgumentReactiveResolver rateLimitRuleArgumentReactiveResolver; + private final PolarisRateLimiterLabelReactiveResolver labelResolverEx = + exchange -> { + throw new RuntimeException(); + }; + + private RateLimitRuleArgumentReactiveResolver rateLimitRuleArgumentReactiveResolver1; + private RateLimitRuleArgumentReactiveResolver rateLimitRuleArgumentReactiveResolver2; + private RateLimitRuleArgumentReactiveResolver rateLimitRuleArgumentReactiveResolver3; + private RateLimitRuleArgumentReactiveResolver rateLimitRuleArgumentReactiveResolver4; @BeforeEach void setUp() throws InvalidProtocolBufferException { @@ -82,7 +90,19 @@ public class RateLimitRuleArgumentReactiveResolverTest { RateLimitProto.RateLimit rateLimit = RateLimitProto.RateLimit.newBuilder().addRules(rateLimitRule).build(); when(serviceRuleManager.getServiceRateLimitRule(anyString(), anyString())).thenReturn(rateLimit); - this.rateLimitRuleArgumentReactiveResolver = new RateLimitRuleArgumentReactiveResolver(serviceRuleManager, labelResolver); + // normal + this.rateLimitRuleArgumentReactiveResolver1 = new RateLimitRuleArgumentReactiveResolver(serviceRuleManager, labelResolver); + // ex + this.rateLimitRuleArgumentReactiveResolver2 = new RateLimitRuleArgumentReactiveResolver(serviceRuleManager, labelResolverEx); + // null + ServiceRuleManager serviceRuleManager1 = mock(ServiceRuleManager.class); + when(serviceRuleManager1.getServiceRateLimitRule(anyString(), anyString())).thenReturn(null); + this.rateLimitRuleArgumentReactiveResolver3 = new RateLimitRuleArgumentReactiveResolver(serviceRuleManager1, labelResolver); + // null 2 + ServiceRuleManager serviceRuleManager2 = mock(ServiceRuleManager.class); + RateLimitProto.RateLimit rateLimit2 = RateLimitProto.RateLimit.newBuilder().build(); + when(serviceRuleManager2.getServiceRateLimitRule(anyString(), anyString())).thenReturn(rateLimit2); + this.rateLimitRuleArgumentReactiveResolver4 = new RateLimitRuleArgumentReactiveResolver(serviceRuleManager2, labelResolver); } @Test @@ -102,7 +122,7 @@ public class RateLimitRuleArgumentReactiveResolverTest { put(DEFAULT_METADATA_SOURCE_SERVICE_NAME, MetadataContext.LOCAL_SERVICE); }}); MetadataContextHolder.set(metadataContext); - Set arguments = rateLimitRuleArgumentReactiveResolver.getArguments(exchange, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + Set arguments = rateLimitRuleArgumentReactiveResolver1.getArguments(exchange, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); Set exceptRes = new HashSet<>(); exceptRes.add(Argument.buildMethod("GET")); exceptRes.add(Argument.buildHeader("xxx", "xxx")); @@ -111,6 +131,10 @@ public class RateLimitRuleArgumentReactiveResolverTest { exceptRes.add(Argument.buildCustom("xxx", "xxx")); exceptRes.add(Argument.buildCallerService(MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE)); assertThat(arguments).isEqualTo(exceptRes); + + rateLimitRuleArgumentReactiveResolver2.getArguments(exchange, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + rateLimitRuleArgumentReactiveResolver3.getArguments(exchange, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + rateLimitRuleArgumentReactiveResolver4.getArguments(exchange, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); } @SpringBootApplication diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentServletResolverTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentServletResolverTest.java index 39d8f131d..1a8b49ed7 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentServletResolverTest.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/resolver/RateLimitRuleArgumentServletResolverTest.java @@ -62,7 +62,15 @@ public class RateLimitRuleArgumentServletResolverTest { private final PolarisRateLimiterLabelServletResolver labelResolver = exchange -> Collections.singletonMap("xxx", "xxx"); - private RateLimitRuleArgumentServletResolver rateLimitRuleArgumentServletResolver; + private final PolarisRateLimiterLabelServletResolver labelResolverEx = + exchange -> { + throw new RuntimeException(); + }; + + private RateLimitRuleArgumentServletResolver rateLimitRuleArgumentServletResolver1; + private RateLimitRuleArgumentServletResolver rateLimitRuleArgumentServletResolver2; + private RateLimitRuleArgumentServletResolver rateLimitRuleArgumentServletResolver3; + private RateLimitRuleArgumentServletResolver rateLimitRuleArgumentServletResolver4; @BeforeEach void setUp() throws InvalidProtocolBufferException { @@ -78,7 +86,19 @@ public class RateLimitRuleArgumentServletResolverTest { RateLimitProto.RateLimit rateLimit = RateLimitProto.RateLimit.newBuilder().addRules(rateLimitRule).build(); when(serviceRuleManager.getServiceRateLimitRule(anyString(), anyString())).thenReturn(rateLimit); - this.rateLimitRuleArgumentServletResolver = new RateLimitRuleArgumentServletResolver(serviceRuleManager, labelResolver); + // normal + this.rateLimitRuleArgumentServletResolver1 = new RateLimitRuleArgumentServletResolver(serviceRuleManager, labelResolver); + // ex + this.rateLimitRuleArgumentServletResolver2 = new RateLimitRuleArgumentServletResolver(serviceRuleManager, labelResolverEx); + // null + ServiceRuleManager serviceRuleManager1 = mock(ServiceRuleManager.class); + when(serviceRuleManager1.getServiceRateLimitRule(anyString(), anyString())).thenReturn(null); + this.rateLimitRuleArgumentServletResolver3 = new RateLimitRuleArgumentServletResolver(serviceRuleManager1, labelResolver); + // null 2 + ServiceRuleManager serviceRuleManager2 = mock(ServiceRuleManager.class); + RateLimitProto.RateLimit rateLimit2 = RateLimitProto.RateLimit.newBuilder().build(); + when(serviceRuleManager2.getServiceRateLimitRule(anyString(), anyString())).thenReturn(rateLimit2); + this.rateLimitRuleArgumentServletResolver4 = new RateLimitRuleArgumentServletResolver(serviceRuleManager2, labelResolver); } @Test @@ -94,7 +114,7 @@ public class RateLimitRuleArgumentServletResolverTest { put(DEFAULT_METADATA_SOURCE_SERVICE_NAME, MetadataContext.LOCAL_SERVICE); }}); MetadataContextHolder.set(metadataContext); - Set arguments = rateLimitRuleArgumentServletResolver.getArguments(request, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + Set arguments = rateLimitRuleArgumentServletResolver1.getArguments(request, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); Set exceptRes = new HashSet<>(); exceptRes.add(Argument.buildMethod("GET")); exceptRes.add(Argument.buildHeader("xxx", "xxx")); @@ -103,6 +123,10 @@ public class RateLimitRuleArgumentServletResolverTest { exceptRes.add(Argument.buildCustom("xxx", "xxx")); exceptRes.add(Argument.buildCallerService(MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE)); assertThat(arguments).isEqualTo(exceptRes); + + rateLimitRuleArgumentServletResolver2.getArguments(request, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + rateLimitRuleArgumentServletResolver3.getArguments(request, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); + rateLimitRuleArgumentServletResolver4.getArguments(request, MetadataContext.LOCAL_NAMESPACE, MetadataContext.LOCAL_SERVICE); } @SpringBootApplication