소스 검색

json util class

Trinh Tong 7 년 전
부모
커밋
833a1668f4

+ 1
- 2
src/main/java/io/zipcoder/tc_spring_poll_application/controller/ComputeResultController.java 파일 보기

38
         long voteCount = StreamSupport.stream(allVotes.spliterator(), false).count();
38
         long voteCount = StreamSupport.stream(allVotes.spliterator(), false).count();
39
         HashMap<Long, OptionCount> optionCountsMap = new HashMap<>();
39
         HashMap<Long, OptionCount> optionCountsMap = new HashMap<>();
40
 
40
 
41
-        for (Vote v: allVotes
42
-             ) {
41
+        for (Vote v: allVotes) {
43
             Long optionID = (v.getOption().getId());
42
             Long optionID = (v.getOption().getId());
44
             if (!optionCountsMap.keySet().contains(optionID)) {
43
             if (!optionCountsMap.keySet().contains(optionID)) {
45
                 optionCountsMap.put(optionID, new OptionCount());
44
                 optionCountsMap.put(optionID, new OptionCount());

+ 14
- 0
src/test/java/io/zipcoder/tc_spring_poll_application/JsonTestUtilities.java 파일 보기

1
+package io.zipcoder.tc_spring_poll_application;
2
+
3
+import com.fasterxml.jackson.databind.ObjectMapper;
4
+
5
+public class JsonTestUtilities {
6
+    public static String asJsonString(final Object obj) {
7
+        try {
8
+            final ObjectMapper mapper = new ObjectMapper();
9
+            return mapper.writeValueAsString(obj);
10
+        } catch (Exception e) {
11
+            throw new RuntimeException(e);
12
+        }
13
+    }
14
+}

+ 28
- 0
src/test/java/io/zipcoder/tc_spring_poll_application/controller/PollControllerTest.java 파일 보기

14
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
14
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
15
 import org.springframework.boot.test.context.SpringBootTest;
15
 import org.springframework.boot.test.context.SpringBootTest;
16
 import org.springframework.boot.test.json.JacksonTester;
16
 import org.springframework.boot.test.json.JacksonTester;
17
+import org.springframework.http.HttpHeaders;
17
 import org.springframework.http.HttpStatus;
18
 import org.springframework.http.HttpStatus;
18
 import org.springframework.http.MediaType;
19
 import org.springframework.http.MediaType;
19
 import org.springframework.mock.web.MockHttpServletResponse;
20
 import org.springframework.mock.web.MockHttpServletResponse;
21
 import org.springframework.test.web.servlet.MockMvc;
22
 import org.springframework.test.web.servlet.MockMvc;
22
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
23
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
23
 
24
 
25
+import java.net.URI;
24
 import java.util.Arrays;
26
 import java.util.Arrays;
25
 
27
 
28
+import static io.zipcoder.tc_spring_poll_application.JsonTestUtilities.asJsonString;
26
 import static org.mockito.BDDMockito.given;
29
 import static org.mockito.BDDMockito.given;
30
+import static org.mockito.Matchers.endsWith;
27
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
31
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
32
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
28
 
33
 
29
 @SpringBootTest
34
 @SpringBootTest
30
 @RunWith(SpringRunner.class)
35
 @RunWith(SpringRunner.class)
103
         Assert.assertEquals(response.getStatus(), HttpStatus.NOT_FOUND.value());
108
         Assert.assertEquals(response.getStatus(), HttpStatus.NOT_FOUND.value());
104
         Assert.assertTrue(response.getContentAsString().isEmpty());
109
         Assert.assertTrue(response.getContentAsString().isEmpty());
105
     }
110
     }
111
+
112
+    @Test /* This one is failing */
113
+    public void testCreatePollSuccess() throws Exception {
114
+        Poll testPoll2 = new Poll();
115
+        String expected = "http://localhost:8080/polls/2";
116
+
117
+        HttpHeaders responseHeader =  new HttpHeaders();
118
+        responseHeader.setLocation(URI.create(expected));
119
+
120
+        given(pollController.createPoll(testPoll2)).willReturn(null);
121
+
122
+        MockHttpServletResponse response = mvc.perform(post("/polls")
123
+                .content(asJsonString(testPoll2))
124
+                .contentType(MediaType.APPLICATION_JSON)
125
+                .accept(MediaType.APPLICATION_JSON))
126
+                .andReturn().getResponse();
127
+
128
+        String header = response.getHeader("Location");
129
+
130
+        Assert.assertEquals(HttpStatus.CREATED.value(),(response.getStatus()));
131
+        Assert.assertEquals(expected, header);
132
+    }
133
+
106
 }
134
 }