|
1 | 1 | /*
|
2 |
| - * Copyright 2013-2024 the original author or authors. |
| 2 | + * Copyright 2013-2025 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
34 | 34 | import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
35 | 35 | import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
36 | 36 | import org.springframework.boot.http.client.SimpleClientHttpRequestFactoryBuilder;
|
| 37 | +import org.springframework.boot.test.context.FilteredClassLoader; |
37 | 38 | import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
38 | 39 | import org.springframework.cloud.gateway.server.mvc.filter.FilterAutoConfiguration;
|
39 | 40 | import org.springframework.cloud.gateway.server.mvc.filter.FormFilter;
|
|
47 | 48 | import org.springframework.cloud.gateway.server.mvc.filter.XForwardedRequestHeadersFilter;
|
48 | 49 | import org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctionAutoConfiguration;
|
49 | 50 | import org.springframework.cloud.gateway.server.mvc.predicate.PredicateAutoConfiguration;
|
| 51 | +import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient; |
50 | 52 | import org.springframework.context.ConfigurableApplicationContext;
|
51 | 53 |
|
52 | 54 | import static org.assertj.core.api.Assertions.assertThat;
|
@@ -204,6 +206,27 @@ void settingHttpClientFactoryWorks() {
|
204 | 206 | assertThat(builder).isInstanceOf(SimpleClientHttpRequestFactoryBuilder.class);
|
205 | 207 | }
|
206 | 208 |
|
| 209 | + @Test |
| 210 | + void loadBalancerFunctionHandlerAdded() { |
| 211 | + new ApplicationContextRunner() |
| 212 | + .withConfiguration(AutoConfigurations.of(FilterAutoConfiguration.class, PredicateAutoConfiguration.class, |
| 213 | + HandlerFunctionAutoConfiguration.class, GatewayServerMvcAutoConfiguration.class, |
| 214 | + HttpClientAutoConfiguration.class, RestTemplateAutoConfiguration.class, |
| 215 | + RestClientAutoConfiguration.class)) |
| 216 | + .run(context -> assertThat(context).hasBean("lbHandlerFunctionDefinition")); |
| 217 | + } |
| 218 | + |
| 219 | + @Test |
| 220 | + void loadBalancerFunctionHandlerNotAddedWhenNoLoadBalancerClientOnClasspath() { |
| 221 | + new ApplicationContextRunner() |
| 222 | + .withConfiguration(AutoConfigurations.of(FilterAutoConfiguration.class, PredicateAutoConfiguration.class, |
| 223 | + HandlerFunctionAutoConfiguration.class, GatewayServerMvcAutoConfiguration.class, |
| 224 | + HttpClientAutoConfiguration.class, RestTemplateAutoConfiguration.class, |
| 225 | + RestClientAutoConfiguration.class)) |
| 226 | + .withClassLoader(new FilteredClassLoader(LoadBalancerClient.class)) |
| 227 | + .run(context -> assertThat(context).doesNotHaveBean("lbHandlerFunctionDefinition")); |
| 228 | + } |
| 229 | + |
207 | 230 | @SpringBootConfiguration
|
208 | 231 | @EnableAutoConfiguration
|
209 | 232 | static class TestConfig {
|
|
0 commit comments