Skip to content

Commit 2657514

Browse files
committed
Polish test class
1 parent 700ab2f commit 2657514

File tree

1 file changed

+38
-52
lines changed

1 file changed

+38
-52
lines changed

spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java

Lines changed: 38 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,20 @@
1818

1919
import java.util.Collections;
2020

21+
import javax.servlet.http.HttpServletRequest;
22+
2123
import org.junit.Test;
2224

2325
import org.springframework.mock.web.test.MockHttpServletRequest;
26+
import org.springframework.web.bind.annotation.RequestMethod;
2427

2528
import static org.junit.Assert.assertEquals;
2629
import static org.junit.Assert.assertNotNull;
2730
import static org.junit.Assert.assertNull;
2831
import static org.junit.Assert.assertTrue;
2932
import static org.springframework.web.bind.annotation.RequestMethod.GET;
3033
import static org.springframework.web.bind.annotation.RequestMethod.HEAD;
34+
import static org.springframework.web.bind.annotation.RequestMethod.OPTIONS;
3135
import static org.springframework.web.bind.annotation.RequestMethod.POST;
3236

3337
/**
@@ -37,67 +41,36 @@
3741
public class RequestMethodsRequestConditionTests {
3842

3943
@Test
40-
public void methodMatch() {
41-
RequestCondition condition = new RequestMethodsRequestCondition(GET);
42-
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo");
43-
44-
assertNotNull(condition.getMatchingCondition(request));
45-
}
46-
47-
@Test
48-
public void methodNoMatch() {
49-
RequestCondition condition = new RequestMethodsRequestCondition(GET);
50-
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/foo");
51-
52-
assertNull(condition.getMatchingCondition(request));
44+
public void getMatchingCondition() {
45+
testMatch(new RequestMethodsRequestCondition(GET), GET);
46+
testMatch(new RequestMethodsRequestCondition(GET, POST), GET);
47+
testNoMatch(new RequestMethodsRequestCondition(GET), POST);
5348
}
5449

5550
@Test
56-
public void multipleMethodsMatch() {
57-
RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(GET, POST);
58-
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo");
59-
RequestMethodsRequestCondition actual = condition.getMatchingCondition(request);
60-
61-
assertNotNull(actual);
62-
assertEquals(Collections.singleton(GET), actual.getContent());
51+
public void getMatchingConditionWithHttpHead() {
52+
testMatch(new RequestMethodsRequestCondition(HEAD), HEAD);
53+
testMatch(new RequestMethodsRequestCondition(GET), HEAD);
54+
testNoMatch(new RequestMethodsRequestCondition(POST), HEAD);
6355
}
6456

6557
@Test
66-
public void methodHeadMatch() throws Exception {
67-
RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(GET, POST);
68-
MockHttpServletRequest request = new MockHttpServletRequest("HEAD", "/foo");
69-
RequestMethodsRequestCondition actual = condition.getMatchingCondition(request);
70-
71-
assertNotNull(actual);
72-
assertEquals("GET should also match HEAD", Collections.singleton(HEAD), actual.getContent());
58+
public void getMatchingConditionWithEmptyConditions() {
59+
RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition();
60+
for (RequestMethod method : RequestMethod.values()) {
61+
if (!OPTIONS.equals(method)) {
62+
HttpServletRequest request = new MockHttpServletRequest(method.name(), "");
63+
assertNotNull(condition.getMatchingCondition(request));
64+
}
65+
}
66+
testNoMatch(condition, OPTIONS);
7367
}
7468

7569
@Test
76-
public void methodHeadNoMatch() throws Exception {
77-
RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition(POST);
78-
MockHttpServletRequest request = new MockHttpServletRequest("HEAD", "/foo");
79-
RequestMethodsRequestCondition actual = condition.getMatchingCondition(request);
80-
81-
assertNull("HEAD should match only if GET is declared", actual);
82-
}
83-
84-
@Test
85-
public void emptyMatchesAnythingExceptHttpOptions() {
86-
RequestCondition condition = new RequestMethodsRequestCondition();
87-
88-
assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("GET", "")));
89-
assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("POST", "")));
90-
assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("HEAD", "")));
91-
assertNotNull(condition.getMatchingCondition(new MockHttpServletRequest("CUSTOM", "")));
92-
assertNull(condition.getMatchingCondition(new MockHttpServletRequest("OPTIONS", "")));
93-
}
94-
95-
@Test
96-
public void unknownMethodType() throws Exception {
97-
RequestCondition condition = new RequestMethodsRequestCondition(GET, POST);
98-
MockHttpServletRequest request = new MockHttpServletRequest("PROPFIND", "/foo");
99-
100-
assertNull(condition.getMatchingCondition(request));
70+
public void getMatchingConditionWithCustomMethod() {
71+
HttpServletRequest request = new MockHttpServletRequest("PROPFIND", "");
72+
assertNotNull(new RequestMethodsRequestCondition().getMatchingCondition(request));
73+
assertNull(new RequestMethodsRequestCondition(GET, POST).getMatchingCondition(request));
10174
}
10275

10376
@Test
@@ -130,4 +103,17 @@ public void combine() {
130103
assertEquals(2, result.getContent().size());
131104
}
132105

106+
107+
private void testMatch(RequestMethodsRequestCondition condition, RequestMethod method) {
108+
MockHttpServletRequest request = new MockHttpServletRequest(method.name(), "");
109+
RequestMethodsRequestCondition actual = condition.getMatchingCondition(request);
110+
assertNotNull(actual);
111+
assertEquals(Collections.singleton(method), actual.getContent());
112+
}
113+
114+
private void testNoMatch(RequestMethodsRequestCondition condition, RequestMethod method) {
115+
MockHttpServletRequest request = new MockHttpServletRequest(method.name(), "");
116+
assertNull(condition.getMatchingCondition(request));
117+
}
118+
133119
}

0 commit comments

Comments
 (0)