Skip to content

Commit db315be

Browse files
committed
add unit test
Signed-off-by: joecqupt <[email protected]>
1 parent 8b223ad commit db315be

File tree

4 files changed

+40
-11
lines changed

4 files changed

+40
-11
lines changed

spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/config/GatewayMetricsAutoConfiguration.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3232
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3333
import org.springframework.boot.context.properties.EnableConfigurationProperties;
34-
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
35-
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
36-
import org.springframework.boot.observation.autoconfigure.ObservationAutoConfiguration;
37-
import org.springframework.boot.tracing.autoconfigure.MicrometerTracingAutoConfiguration;
38-
import org.springframework.boot.tracing.autoconfigure.TracingProperties;
34+
import org.springframework.boot.micrometer.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
35+
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration;
36+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
37+
import org.springframework.boot.micrometer.tracing.autoconfigure.MicrometerTracingAutoConfiguration;
38+
import org.springframework.boot.micrometer.tracing.autoconfigure.TracingProperties;
3939
import org.springframework.boot.webflux.autoconfigure.HttpHandlerAutoConfiguration;
4040
import org.springframework.cloud.gateway.filter.GatewayMetricsFilter;
4141
import org.springframework.cloud.gateway.filter.headers.observation.GatewayObservationConvention;

spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/route/CachingRouteLocator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ public void onApplicationEvent(RefreshRoutesEvent event) {
9191
.onErrorResume(s -> Mono.just(List.of()));
9292

9393
Map<String, Long> routeIdToIdxMap = getRoutes().index()
94-
.collectMap(t -> t.getT2().getId(), Tuple2::getT1)
95-
.block();
94+
.collectMap(t -> t.getT2().getId(), Tuple2::getT1)
95+
.block();
9696

9797
scopedRoutes.subscribe(scopedRoutesList -> {
9898
updateCache(Flux.concat(Flux.fromIterable(scopedRoutesList), getNonScopedRoutes(event))
99-
.sort(Comparator.comparing(r -> routeIdToIdxMap.getOrDefault(r.getId(), Long.MIN_VALUE)))
100-
.sort(AnnotationAwareOrderComparator.INSTANCE));
99+
.sort(Comparator.comparing(r -> routeIdToIdxMap.getOrDefault(r.getId(), Long.MIN_VALUE)))
100+
.sort(AnnotationAwareOrderComparator.INSTANCE));
101101
}, this::handleRefreshError);
102102
}
103103
else {

spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/config/GatewayAutoConfigurationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4545
import org.springframework.boot.autoconfigure.ssl.SslBundleRegistrar;
4646
import org.springframework.boot.context.properties.EnableConfigurationProperties;
47-
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
48-
import org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration;
47+
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration;
48+
import org.springframework.boot.micrometer.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration;
4949
import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration;
5050
import org.springframework.boot.security.oauth2.client.autoconfigure.reactive.ReactiveOAuth2ClientAutoConfiguration;
5151
import org.springframework.boot.ssl.DefaultSslBundleRegistry;

spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/route/CachingRouteLocatorTests.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.cloud.gateway.route;
1818

1919
import java.util.ArrayList;
20+
import java.util.Collections;
2021
import java.util.List;
22+
import java.util.Map;
2123
import java.util.concurrent.CountDownLatch;
2224
import java.util.concurrent.TimeUnit;
2325

@@ -117,6 +119,23 @@ else if (i == 2) {
117119

118120
}
119121

122+
@Test
123+
public void updateScopedRoutes() {
124+
Map<String, Object> metadata = Map.of("metadata-key1", "metadata-value1");
125+
int order = 0;
126+
Route route1 = route(1, order, Collections.EMPTY_MAP);
127+
Route route2 = route(2, order, metadata);
128+
CachingRouteLocator locator = new CachingRouteLocator(() -> Flux.just(route1, route2));
129+
130+
List<Route> routes = locator.getRoutes().collectList().block();
131+
assertThat(routes).containsExactly(route1, route2);
132+
133+
RefreshRoutesEvent event = new RefreshRoutesEvent(this, metadata);
134+
locator.onApplicationEvent(event);
135+
routes = locator.getRoutes().collectList().block();
136+
assertThat(routes).containsExactly(route1, route2);
137+
}
138+
120139
private void waitUntilRefreshFinished(CachingRouteLocator locator, List<RefreshRoutesResultEvent> resultEvents)
121140
throws InterruptedException {
122141
CountDownLatch cdl = new CountDownLatch(1);
@@ -129,6 +148,16 @@ private void waitUntilRefreshFinished(CachingRouteLocator locator, List<RefreshR
129148
assertThat(cdl.await(5, TimeUnit.SECONDS)).isTrue();
130149
}
131150

151+
Route route(int id, int order, Map<String, Object> metadata) {
152+
return Route.async()
153+
.id(String.valueOf(id))
154+
.uri("http://localhost/" + id)
155+
.order(order)
156+
.predicate(exchange -> true)
157+
.metadata(metadata)
158+
.build();
159+
}
160+
132161
Route route(int id) {
133162
return Route.async()
134163
.id(String.valueOf(id))

0 commit comments

Comments
 (0)