|
|
|
@ -17,7 +17,6 @@ |
|
|
|
package org.springframework.security.web.server.header; |
|
|
|
package org.springframework.security.web.server.header; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
@ -49,9 +48,6 @@ public class ServerWebExchangeDelegatingServerHttpHeadersWriterTests { |
|
|
|
@Mock |
|
|
|
@Mock |
|
|
|
private ServerHttpHeadersWriter delegate; |
|
|
|
private ServerHttpHeadersWriter delegate; |
|
|
|
|
|
|
|
|
|
|
|
@Mock |
|
|
|
|
|
|
|
private ServerWebExchangeMatcherEntry<ServerHttpHeadersWriter> matcherEntry; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ServerWebExchange exchange; |
|
|
|
private ServerWebExchange exchange; |
|
|
|
|
|
|
|
|
|
|
|
private ServerWebExchangeDelegatingServerHttpHeadersWriter headerWriter; |
|
|
|
private ServerWebExchangeDelegatingServerHttpHeadersWriter headerWriter; |
|
|
|
@ -63,49 +59,57 @@ public class ServerWebExchangeDelegatingServerHttpHeadersWriterTests { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void constructorNullWebExchangeMatcher() { |
|
|
|
public void constructorWhenNullWebExchangeMatcherThenException() { |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null, this.delegate)); |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null, this.delegate)) |
|
|
|
|
|
|
|
.withMessage("webExchangeMatcher cannot be null"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void constructorNullWebExchangeMatcherEntry() { |
|
|
|
public void constructorWhenNullWebExchangeMatcherEntryThenException() { |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null)); |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null)) |
|
|
|
|
|
|
|
.withMessage("headersWriter cannot be null"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void constructorNullDelegate() { |
|
|
|
public void constructorWhenNullDelegateHeadersWriterThenException() { |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcher, null)); |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcher, null)) |
|
|
|
|
|
|
|
.withMessage("delegateHeadersWriter cannot be null"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void writeHeadersOnMatch() { |
|
|
|
public void constructorWhenEntryWithNullMatcherThenException() { |
|
|
|
Map<String, Object> params = Collections.singletonMap("foo", "bar"); |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.match(params)); |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter( |
|
|
|
given(this.delegate.writeHttpHeaders(this.exchange)).willReturn(Mono.empty()); |
|
|
|
new ServerWebExchangeMatcherEntry<>(null, this.delegate))) |
|
|
|
this.headerWriter.writeHttpHeaders(this.exchange).block(); |
|
|
|
.withMessage("webExchangeMatcher cannot be null"); |
|
|
|
verify(this.delegate).writeHttpHeaders(this.exchange); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void writeHeadersOnNoMatch() { |
|
|
|
public void constructorWhenEntryWithNullEntryThenException() { |
|
|
|
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.notMatch()); |
|
|
|
assertThatIllegalArgumentException() |
|
|
|
this.headerWriter.writeHttpHeaders(this.exchange).block(); |
|
|
|
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter( |
|
|
|
verify(this.delegate, times(0)).writeHttpHeaders(this.exchange); |
|
|
|
new ServerWebExchangeMatcherEntry<>(this.matcher, null))) |
|
|
|
|
|
|
|
.withMessage("delegateHeadersWriter cannot be null"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void writeHeadersOnMatchWithServerWebExchangeMatcherEntry() { |
|
|
|
public void writeHeadersWhenMatchThenDelegateWriteHttpHeaders() { |
|
|
|
this.headerWriter = new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcherEntry); |
|
|
|
given(this.matcher.matches(this.exchange)) |
|
|
|
given(this.matcherEntry.getMatcher()).willReturn(this.matcher); |
|
|
|
.willReturn(ServerWebExchangeMatcher.MatchResult.match(Collections.emptyMap())); |
|
|
|
given(this.matcherEntry.getEntry()).willReturn(this.delegate); |
|
|
|
|
|
|
|
Map<String, Object> params = Collections.singletonMap("foo", "bar"); |
|
|
|
|
|
|
|
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.match(params)); |
|
|
|
|
|
|
|
given(this.delegate.writeHttpHeaders(this.exchange)).willReturn(Mono.empty()); |
|
|
|
given(this.delegate.writeHttpHeaders(this.exchange)).willReturn(Mono.empty()); |
|
|
|
this.headerWriter.writeHttpHeaders(this.exchange).block(); |
|
|
|
this.headerWriter.writeHttpHeaders(this.exchange).block(); |
|
|
|
verify(this.delegate).writeHttpHeaders(this.exchange); |
|
|
|
verify(this.delegate).writeHttpHeaders(this.exchange); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void writeHeadersWhenNoMatchThenDelegateNotCalled() { |
|
|
|
|
|
|
|
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.notMatch()); |
|
|
|
|
|
|
|
this.headerWriter.writeHttpHeaders(this.exchange).block(); |
|
|
|
|
|
|
|
verify(this.matcher).matches(this.exchange); |
|
|
|
|
|
|
|
verify(this.delegate, times(0)).writeHttpHeaders(this.exchange); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|