Skip to content

Commit 195d767

Browse files
Polish ServerWebExchangeDelegatingServerHttpHeadersWriter
Issue gh-11073
1 parent 0e2fc51 commit 195d767

File tree

2 files changed

+33
-29
lines changed

2 files changed

+33
-29
lines changed

web/src/main/java/org/springframework/security/web/server/header/ServerWebExchangeDelegatingServerHttpHeadersWriter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public final class ServerWebExchangeDelegatingServerHttpHeadersWriter implements
4343
public ServerWebExchangeDelegatingServerHttpHeadersWriter(
4444
ServerWebExchangeMatcherEntry<ServerHttpHeadersWriter> headersWriter) {
4545
Assert.notNull(headersWriter, "headersWriter cannot be null");
46+
Assert.notNull(headersWriter.getMatcher(), "webExchangeMatcher cannot be null");
47+
Assert.notNull(headersWriter.getEntry(), "delegateHeadersWriter cannot be null");
4648
this.headersWriter = headersWriter;
4749
}
4850

@@ -55,9 +57,7 @@ public ServerWebExchangeDelegatingServerHttpHeadersWriter(
5557
*/
5658
public ServerWebExchangeDelegatingServerHttpHeadersWriter(ServerWebExchangeMatcher webExchangeMatcher,
5759
ServerHttpHeadersWriter delegateHeadersWriter) {
58-
Assert.notNull(webExchangeMatcher, "webExchangeMatcher cannot be null");
59-
Assert.notNull(delegateHeadersWriter, "delegateHeadersWriter cannot be null");
60-
this.headersWriter = new ServerWebExchangeMatcherEntry<>(webExchangeMatcher, delegateHeadersWriter);
60+
this(new ServerWebExchangeMatcherEntry<>(webExchangeMatcher, delegateHeadersWriter));
6161
}
6262

6363
@Override

web/src/test/java/org/springframework/security/web/server/header/ServerWebExchangeDelegatingServerHttpHeadersWriterTests.java

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.security.web.server.header;
1818

1919
import java.util.Collections;
20-
import java.util.Map;
2120

2221
import org.junit.jupiter.api.BeforeEach;
2322
import org.junit.jupiter.api.Test;
@@ -49,9 +48,6 @@ public class ServerWebExchangeDelegatingServerHttpHeadersWriterTests {
4948
@Mock
5049
private ServerHttpHeadersWriter delegate;
5150

52-
@Mock
53-
private ServerWebExchangeMatcherEntry<ServerHttpHeadersWriter> matcherEntry;
54-
5551
private ServerWebExchange exchange;
5652

5753
private ServerWebExchangeDelegatingServerHttpHeadersWriter headerWriter;
@@ -63,49 +59,57 @@ public void setup() {
6359
}
6460

6561
@Test
66-
public void constructorNullWebExchangeMatcher() {
62+
public void constructorWhenNullWebExchangeMatcherThenException() {
6763
assertThatIllegalArgumentException()
68-
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null, this.delegate));
64+
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null, this.delegate))
65+
.withMessage("webExchangeMatcher cannot be null");
6966
}
7067

7168
@Test
72-
public void constructorNullWebExchangeMatcherEntry() {
69+
public void constructorWhenNullWebExchangeMatcherEntryThenException() {
7370
assertThatIllegalArgumentException()
74-
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null));
71+
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(null))
72+
.withMessage("headersWriter cannot be null");
7573
}
7674

7775
@Test
78-
public void constructorNullDelegate() {
76+
public void constructorWhenNullDelegateHeadersWriterThenException() {
7977
assertThatIllegalArgumentException()
80-
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcher, null));
78+
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcher, null))
79+
.withMessage("delegateHeadersWriter cannot be null");
8180
}
8281

8382
@Test
84-
public void writeHeadersOnMatch() {
85-
Map<String, Object> params = Collections.singletonMap("foo", "bar");
86-
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.match(params));
87-
given(this.delegate.writeHttpHeaders(this.exchange)).willReturn(Mono.empty());
88-
this.headerWriter.writeHttpHeaders(this.exchange).block();
89-
verify(this.delegate).writeHttpHeaders(this.exchange);
83+
public void constructorWhenEntryWithNullMatcherThenException() {
84+
assertThatIllegalArgumentException()
85+
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(
86+
new ServerWebExchangeMatcherEntry<>(null, this.delegate)))
87+
.withMessage("webExchangeMatcher cannot be null");
9088
}
9189

9290
@Test
93-
public void writeHeadersOnNoMatch() {
94-
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.notMatch());
95-
this.headerWriter.writeHttpHeaders(this.exchange).block();
96-
verify(this.delegate, times(0)).writeHttpHeaders(this.exchange);
91+
public void constructorWhenEntryWithNullEntryThenException() {
92+
assertThatIllegalArgumentException()
93+
.isThrownBy(() -> new ServerWebExchangeDelegatingServerHttpHeadersWriter(
94+
new ServerWebExchangeMatcherEntry<>(this.matcher, null)))
95+
.withMessage("delegateHeadersWriter cannot be null");
9796
}
9897

9998
@Test
100-
public void writeHeadersOnMatchWithServerWebExchangeMatcherEntry() {
101-
this.headerWriter = new ServerWebExchangeDelegatingServerHttpHeadersWriter(this.matcherEntry);
102-
given(this.matcherEntry.getMatcher()).willReturn(this.matcher);
103-
given(this.matcherEntry.getEntry()).willReturn(this.delegate);
104-
Map<String, Object> params = Collections.singletonMap("foo", "bar");
105-
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.match(params));
99+
public void writeHeadersWhenMatchThenDelegateWriteHttpHeaders() {
100+
given(this.matcher.matches(this.exchange))
101+
.willReturn(ServerWebExchangeMatcher.MatchResult.match(Collections.emptyMap()));
106102
given(this.delegate.writeHttpHeaders(this.exchange)).willReturn(Mono.empty());
107103
this.headerWriter.writeHttpHeaders(this.exchange).block();
108104
verify(this.delegate).writeHttpHeaders(this.exchange);
109105
}
110106

107+
@Test
108+
public void writeHeadersWhenNoMatchThenDelegateNotCalled() {
109+
given(this.matcher.matches(this.exchange)).willReturn(ServerWebExchangeMatcher.MatchResult.notMatch());
110+
this.headerWriter.writeHttpHeaders(this.exchange).block();
111+
verify(this.matcher).matches(this.exchange);
112+
verify(this.delegate, times(0)).writeHttpHeaders(this.exchange);
113+
}
114+
111115
}

0 commit comments

Comments
 (0)