Trinh Tong 7 年前
父节点
当前提交
9f3fc5017d

+ 0
- 7
src/test/java/io/zipcoder/tc_spring_poll_application/controller/PollControllerTest.java 查看文件

5
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
5
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
6
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
6
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
7
 import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
7
 import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
8
-import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
9
 import org.junit.Assert;
8
 import org.junit.Assert;
10
 import org.junit.Before;
9
 import org.junit.Before;
11
 import org.junit.Test;
10
 import org.junit.Test;
12
 import org.junit.runner.RunWith;
11
 import org.junit.runner.RunWith;
13
 import org.mockito.InjectMocks;
12
 import org.mockito.InjectMocks;
14
-import org.mockito.Mock;
15
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.beans.factory.annotation.Autowired;
16
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
17
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
14
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
18
-import org.springframework.boot.test.context.SpringBootTest;
19
 import org.springframework.boot.test.json.JacksonTester;
15
 import org.springframework.boot.test.json.JacksonTester;
20
 import org.springframework.boot.test.mock.mockito.MockBean;
16
 import org.springframework.boot.test.mock.mockito.MockBean;
21
-import org.springframework.http.HttpHeaders;
22
 import org.springframework.http.HttpStatus;
17
 import org.springframework.http.HttpStatus;
23
 import org.springframework.http.MediaType;
18
 import org.springframework.http.MediaType;
24
-import org.springframework.http.ResponseEntity;
25
 import org.springframework.mock.web.MockHttpServletResponse;
19
 import org.springframework.mock.web.MockHttpServletResponse;
26
 import org.springframework.test.context.junit4.SpringRunner;
20
 import org.springframework.test.context.junit4.SpringRunner;
27
 import org.springframework.test.web.servlet.MockMvc;
21
 import org.springframework.test.web.servlet.MockMvc;
28
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
29
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
22
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
30
 
23
 
31
 import java.util.Arrays;
24
 import java.util.Arrays;

+ 25
- 10
src/test/java/io/zipcoder/tc_spring_poll_application/controller/VoteControllerTest.java 查看文件

1
 package io.zipcoder.tc_spring_poll_application.controller;
1
 package io.zipcoder.tc_spring_poll_application.controller;
2
 
2
 
3
 import com.fasterxml.jackson.databind.ObjectMapper;
3
 import com.fasterxml.jackson.databind.ObjectMapper;
4
+import io.zipcoder.tc_spring_poll_application.domain.Option;
4
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
5
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
5
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
6
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
6
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
7
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
15
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
16
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
16
 import org.springframework.boot.test.json.JacksonTester;
17
 import org.springframework.boot.test.json.JacksonTester;
17
 import org.springframework.boot.test.mock.mockito.MockBean;
18
 import org.springframework.boot.test.mock.mockito.MockBean;
18
-import org.springframework.http.HttpHeaders;
19
 import org.springframework.http.HttpStatus;
19
 import org.springframework.http.HttpStatus;
20
 import org.springframework.http.MediaType;
20
 import org.springframework.http.MediaType;
21
 import org.springframework.mock.web.MockHttpServletResponse;
21
 import org.springframework.mock.web.MockHttpServletResponse;
22
 import org.springframework.test.context.junit4.SpringRunner;
22
 import org.springframework.test.context.junit4.SpringRunner;
23
 import org.springframework.test.web.servlet.MockMvc;
23
 import org.springframework.test.web.servlet.MockMvc;
24
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
24
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
25
-import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
26
 
25
 
27
 import java.util.Arrays;
26
 import java.util.Arrays;
27
+import java.util.HashSet;
28
 
28
 
29
 import static io.zipcoder.tc_spring_poll_application.JsonTestUtilities.asJsonString;
29
 import static io.zipcoder.tc_spring_poll_application.JsonTestUtilities.asJsonString;
30
 import static org.mockito.BDDMockito.given;
30
 import static org.mockito.BDDMockito.given;
31
 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;
32
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
33
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
33
 
34
 
34
 @RunWith(SpringRunner.class)
35
 @RunWith(SpringRunner.class)
35
 @WebMvcTest(VoteController.class)
36
 @WebMvcTest(VoteController.class)
41
     private Vote testVote;
42
     private Vote testVote;
42
     private Iterable<Vote> votes;
43
     private Iterable<Vote> votes;
43
     private final Long TEST_ID = 1L;
44
     private final Long TEST_ID = 1L;
44
-    private final Long BAD_ID = 400L;
45
+    private Option option1, option2;
46
+    private HashSet<Option> options1;
45
 
47
 
46
     @MockBean
48
     @MockBean
47
     private VoteRepository voteRepository;
49
     private VoteRepository voteRepository;
73
 
75
 
74
         testPoll = new Poll();
76
         testPoll = new Poll();
75
         testPoll.setId(TEST_ID);
77
         testPoll.setId(TEST_ID);
78
+        options1 = new HashSet<>();
79
+
80
+        option1 = new Option();
81
+        option1.setValue("Yes");
82
+        option1.setId(1L);
83
+
84
+        option2 = new Option();
85
+        option2.setValue("No");
86
+        option2.setId(2L);
87
+
88
+        options1.add(option1);
89
+        options1.add(option2);
90
+
91
+        testPoll.setOptions(options1);
76
     }
92
     }
77
 
93
 
78
     @Test
94
     @Test
121
     @Test
137
     @Test
122
     public void testCreateVoteSuccess() throws Exception {
138
     public void testCreateVoteSuccess() throws Exception {
123
         Vote testVote2 = new Vote();
139
         Vote testVote2 = new Vote();
140
+        testVote2.setId(TEST_ID);
124
 
141
 
125
-        given(voteRepository.save(testVote2))
126
-                .willReturn(testVote2);
142
+        given(pollRepository.findOne(TEST_ID)).willReturn(testPoll);
143
+        given(voteRepository.save(testVote2)).willReturn(testVote2);
127
 
144
 
128
-        MockHttpServletResponse response = mvc.perform(post("/polls/2/votes")
145
+        mvc.perform(post("/polls/1/votes/1")
146
+                .content(asJsonString(testVote2))
129
                 .contentType(MediaType.APPLICATION_JSON)
147
                 .contentType(MediaType.APPLICATION_JSON)
130
                 .accept(MediaType.APPLICATION_JSON))
148
                 .accept(MediaType.APPLICATION_JSON))
131
-                .andReturn().getResponse();
132
-
133
-
134
-        Assert.assertEquals(response.getStatus(), HttpStatus.CREATED.value());
149
+                .andExpect(status().isCreated());
135
     }
150
     }
136
 }
151
 }