Skip to content

Commit ed5c74b

Browse files
committed
Create the ObjectProvider instance to align with version 4.1.x.
Signed-off-by: raccoonback <kosb15@naver.com>
1 parent 9476825 commit ed5c74b

File tree

1 file changed

+104
-58
lines changed

1 file changed

+104
-58
lines changed

spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/handler/ProxyExchangeHandlerFunctionTest.java

Lines changed: 104 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,8 @@
1616

1717
package org.springframework.cloud.gateway.server.mvc.handler;
1818

19-
import java.net.URI;
20-
import java.util.Collections;
21-
import java.util.stream.Stream;
22-
2319
import org.junit.jupiter.api.Test;
24-
20+
import org.springframework.beans.BeansException;
2521
import org.springframework.beans.factory.ObjectProvider;
2622
import org.springframework.cloud.gateway.server.mvc.common.AbstractProxyExchange;
2723
import org.springframework.cloud.gateway.server.mvc.common.MvcUtils;
@@ -34,65 +30,115 @@
3430
import org.springframework.web.servlet.function.ServerRequest;
3531
import org.springframework.web.servlet.function.ServerResponse;
3632

33+
import java.net.URI;
34+
import java.util.Collections;
35+
import java.util.stream.Stream;
36+
3737
import static org.assertj.core.api.Assertions.assertThat;
3838

3939
/**
4040
* @author raccoonback
4141
*/
4242
class ProxyExchangeHandlerFunctionTest {
4343

44-
@Test
45-
void keepOriginalEncodingOfQueryParameter() {
46-
TestProxyExchange proxyExchange = new TestProxyExchange();
47-
ProxyExchangeHandlerFunction function = new ProxyExchangeHandlerFunction(proxyExchange, new ObjectProvider<>() {
48-
@Override
49-
public Stream<RequestHttpHeadersFilter> stream() {
50-
return Stream.of((httpHeaders, serverRequest) -> new HttpHeaders());
51-
}
52-
}, new ObjectProvider<>() {
53-
@Override
54-
public Stream<ResponseHttpHeadersFilter> stream() {
55-
return Stream.of((httpHeaders, serverRequest) -> new HttpHeaders());
56-
}
57-
});
58-
59-
function.onApplicationEvent(null);
60-
61-
MockHttpServletRequest servletRequest = MockMvcRequestBuilders
62-
.get("http://localhost/é?foo=value1 value2&bar=value3=")
63-
.buildRequest(null);
64-
servletRequest.setAttribute(MvcUtils.GATEWAY_REQUEST_URL_ATTR, URI.create("http://localhost:8080"));
65-
ServerRequest request = ServerRequest.create(servletRequest, Collections.emptyList());
66-
67-
function.handle(request);
68-
69-
URI uri = proxyExchange.getRequest().getUri();
70-
71-
assertThat(uri).hasToString("http://localhost:8080/%C3%A9?foo=value1%20value2&bar=value3%3D")
72-
.hasPath("/é")
73-
.hasParameter("foo", "value1 value2")
74-
.hasParameter("bar", "value3=");
75-
}
76-
77-
private class TestProxyExchange extends AbstractProxyExchange {
78-
79-
private Request request;
80-
81-
protected TestProxyExchange() {
82-
super(new GatewayMvcProperties());
83-
}
84-
85-
@Override
86-
public ServerResponse exchange(Request request) {
87-
this.request = request;
88-
89-
return ServerResponse.ok().build();
90-
}
91-
92-
public Request getRequest() {
93-
return request;
94-
}
95-
96-
}
44+
@Test
45+
void keepOriginalEncodingOfQueryParameter() {
46+
TestProxyExchange proxyExchange = new TestProxyExchange();
47+
ProxyExchangeHandlerFunction function = new ProxyExchangeHandlerFunction(
48+
proxyExchange,
49+
new ObjectProvider<>() {
50+
@Override
51+
public RequestHttpHeadersFilter getObject() throws BeansException {
52+
return null;
53+
}
54+
55+
@Override
56+
public RequestHttpHeadersFilter getObject(Object... args) throws BeansException {
57+
return null;
58+
}
59+
60+
@Override
61+
public RequestHttpHeadersFilter getIfAvailable() throws BeansException {
62+
return null;
63+
}
64+
65+
@Override
66+
public RequestHttpHeadersFilter getIfUnique() throws BeansException {
67+
return null;
68+
}
69+
70+
@Override
71+
public Stream<RequestHttpHeadersFilter> orderedStream() {
72+
return Stream.of((httpHeaders, serverRequest) -> new HttpHeaders());
73+
}
74+
75+
},
76+
new ObjectProvider<>() {
77+
78+
@Override
79+
public ResponseHttpHeadersFilter getObject() throws BeansException {
80+
return null;
81+
}
82+
83+
@Override
84+
public ResponseHttpHeadersFilter getObject(Object... args) throws BeansException {
85+
return null;
86+
}
87+
88+
@Override
89+
public ResponseHttpHeadersFilter getIfAvailable() throws BeansException {
90+
return null;
91+
}
92+
93+
@Override
94+
public ResponseHttpHeadersFilter getIfUnique() throws BeansException {
95+
return null;
96+
}
97+
98+
@Override
99+
public Stream<ResponseHttpHeadersFilter> orderedStream() {
100+
return Stream.of((httpHeaders, serverRequest) -> new HttpHeaders());
101+
102+
}
103+
});
104+
105+
function.onApplicationEvent(null);
106+
107+
MockHttpServletRequest servletRequest = MockMvcRequestBuilders
108+
.get("http://localhost/é?foo=value1 value2&bar=value3=")
109+
.buildRequest(null);
110+
servletRequest.setAttribute(MvcUtils.GATEWAY_REQUEST_URL_ATTR, URI.create("http://localhost:8080"));
111+
ServerRequest request = ServerRequest.create(servletRequest, Collections.emptyList());
112+
113+
function.handle(request);
114+
115+
URI uri = proxyExchange.getRequest().getUri();
116+
117+
assertThat(uri).hasToString("http://localhost:8080/%C3%A9?foo=value1%20value2&bar=value3%3D")
118+
.hasPath("/é")
119+
.hasParameter("foo", "value1 value2")
120+
.hasParameter("bar", "value3=");
121+
}
122+
123+
private class TestProxyExchange extends AbstractProxyExchange {
124+
125+
private Request request;
126+
127+
protected TestProxyExchange() {
128+
super(new GatewayMvcProperties());
129+
}
130+
131+
@Override
132+
public ServerResponse exchange(Request request) {
133+
this.request = request;
134+
135+
return ServerResponse.ok().build();
136+
}
137+
138+
public Request getRequest() {
139+
return request;
140+
}
141+
142+
}
97143

98144
}

0 commit comments

Comments
 (0)