Skip to content

Commit c82440e

Browse files
committed
Polish CompositeHeaderWriterTests
Changed test to favor mocks in order to provide a stronger guarantee that the composite delegates to its components. Issue: gh-6453
1 parent bb1b9d9 commit c82440e

File tree

1 file changed

+24
-35
lines changed

1 file changed

+24
-35
lines changed

web/src/test/java/org/springframework/security/web/header/writers/CompositeHeaderWriterTests.java

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,17 @@
1515
*/
1616
package org.springframework.security.web.header.writers;
1717

18-
import java.util.Arrays;
19-
20-
import org.junit.Before;
2118
import org.junit.Test;
22-
23-
import org.springframework.mock.web.MockHttpServletRequest;
24-
import org.springframework.mock.web.MockHttpServletResponse;
2519
import org.springframework.security.web.header.HeaderWriter;
2620

27-
import static org.assertj.core.api.Assertions.assertThat;
21+
import javax.servlet.http.HttpServletRequest;
22+
import javax.servlet.http.HttpServletResponse;
23+
import java.util.Arrays;
24+
import java.util.Collections;
25+
26+
import static org.assertj.core.api.Assertions.assertThatCode;
27+
import static org.mockito.Mockito.mock;
28+
import static org.mockito.Mockito.verify;
2829

2930
/**
3031
* Tests for class {@link CompositeHeaderWriter}/.
@@ -33,37 +34,25 @@
3334
* @since 5.2
3435
*/
3536
public class CompositeHeaderWriterTests {
36-
private MockHttpServletRequest request;
3737

38-
private MockHttpServletResponse response;
39-
40-
private CompositeHeaderWriter writer;
41-
42-
@Before
43-
public void setup() {
44-
this.request = new MockHttpServletRequest();
45-
this.response = new MockHttpServletResponse();
46-
HeaderWriter writerA = (request, response) -> {
47-
if (!response.containsHeader("A")) {
48-
response.setHeader("A", "a");
49-
}
50-
};
51-
52-
HeaderWriter writerB = (request, response) -> {
53-
if (!response.containsHeader("B")) {
54-
response.setHeader("B", "b");
55-
}
56-
};
57-
this.writer = new CompositeHeaderWriter(Arrays.asList(writerA, writerB));
38+
@Test
39+
public void writeHeadersWhenConfiguredWithDelegatesThenInvokesEach() {
40+
HttpServletRequest request = mock(HttpServletRequest.class);
41+
HttpServletResponse response = mock(HttpServletResponse.class);
42+
HeaderWriter one = mock(HeaderWriter.class);
43+
HeaderWriter two = mock(HeaderWriter.class);
44+
45+
CompositeHeaderWriter headerWriter = new CompositeHeaderWriter(
46+
Arrays.asList(one, two));
47+
48+
headerWriter.writeHeaders(request, response);
49+
verify(one).writeHeaders(request, response);
50+
verify(two).writeHeaders(request, response);
5851
}
5952

60-
6153
@Test
62-
public void doCompositeHeaderWrite(){
63-
this.writer.writeHeaders(request, response);
64-
assertThat(this.response.containsHeader("A")).isTrue();
65-
assertThat(this.response.containsHeader("B")).isTrue();
66-
assertThat(this.response.getHeader("A")).isEqualTo("a");
67-
assertThat(this.response.getHeader("B")).isEqualTo("b");
54+
public void constructorWhenPassingEmptyListThenThrowsException() {
55+
assertThatCode(() -> new CompositeHeaderWriter(Collections.emptyList()))
56+
.isInstanceOf(IllegalArgumentException.class);
6857
}
6958
}

0 commit comments

Comments
 (0)