Quellcode durchsuchen

Revert "Revert "More testing of testing methods""

This reverts commit 70a143389cc721df677a6458f326869ee95d416d.
Trinh Tong vor 7 Jahren
Ursprung
Commit
467a023e74

+ 1
- 9
src/main/java/io/zipcoder/tc_spring_poll_application/controller/PollController.java Datei anzeigen

52
     @RequestMapping(value="/polls/{pollId}", method=RequestMethod.PUT)
52
     @RequestMapping(value="/polls/{pollId}", method=RequestMethod.PUT)
53
     public ResponseEntity<?> updatePoll(@RequestBody Poll poll, @PathVariable Long pollId) {
53
     public ResponseEntity<?> updatePoll(@RequestBody Poll poll, @PathVariable Long pollId) {
54
         // Save the entity
54
         // Save the entity
55
-        verifyPoll(poll);
55
+        verifyPoll(poll.getId());
56
         Poll p = pollRepository.save(poll);
56
         Poll p = pollRepository.save(poll);
57
         return new ResponseEntity<>(p, HttpStatus.OK);
57
         return new ResponseEntity<>(p, HttpStatus.OK);
58
     }
58
     }
66
 
66
 
67
 
67
 
68
     @RequestMapping(method = RequestMethod.GET)
68
     @RequestMapping(method = RequestMethod.GET)
69
-    public void verifyPoll(Poll poll) throws ResourceNotFoundException {
70
-        if (pollRepository.findOne(poll.getId()) == null) {
71
-            throw new ResourceNotFoundException();
72
-        }
73
-    }
74
-
75
-    @RequestMapping(method = RequestMethod.GET)
76
     public void verifyPoll(Long pollId) throws ResourceNotFoundException {
69
     public void verifyPoll(Long pollId) throws ResourceNotFoundException {
77
         if (pollRepository.findOne(pollId) == null) {
70
         if (pollRepository.findOne(pollId) == null) {
78
             throw new ResourceNotFoundException();
71
             throw new ResourceNotFoundException();
79
         }
72
         }
80
     }
73
     }
81
-
82
 }
74
 }

+ 1
- 0
src/main/java/io/zipcoder/tc_spring_poll_application/controller/VoteController.java Datei anzeigen

11
 
11
 
12
 @RestController
12
 @RestController
13
 public class VoteController {
13
 public class VoteController {
14
+
14
     private VoteRepository voteRepository;
15
     private VoteRepository voteRepository;
15
 
16
 
16
     @Autowired
17
     @Autowired

+ 6
- 0
src/main/java/io/zipcoder/tc_spring_poll_application/domain/Vote.java Datei anzeigen

28
     public void setOption(Option option) {
28
     public void setOption(Option option) {
29
         this.option = option;
29
         this.option = option;
30
     }
30
     }
31
+
32
+    @Override
33
+    public String toString() {
34
+        return "{\"id\":" + id
35
+                + ",\"option\":" + option + "}";
36
+    }
31
 }
37
 }

+ 1
- 2
src/main/java/io/zipcoder/tc_spring_poll_application/repositories/VoteRepository.java Datei anzeigen

9
             "FROM Option o, Vote v " +
9
             "FROM Option o, Vote v " +
10
             "WHERE o.POLL_ID = ?1 " +
10
             "WHERE o.POLL_ID = ?1 " +
11
             "AND v.OPTION_ID = o.OPTION_ID", nativeQuery = true)
11
             "AND v.OPTION_ID = o.OPTION_ID", nativeQuery = true)
12
-
13
-    public Iterable<Vote> findVotesByPoll(Long pollId);
12
+    Iterable<Vote> findVotesByPoll(Long pollId);
14
 
13
 
15
 }
14
 }

+ 27
- 0
src/test/java/io/zipcoder/tc_spring_poll_application/controller/ComputeResultControllerTest.java Datei anzeigen

1
+package io.zipcoder.tc_spring_poll_application.controller;
2
+
3
+import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+import org.springframework.boot.test.mock.mockito.MockBean;
7
+
8
+import static org.junit.Assert.*;
9
+
10
+
11
+public class ComputeResultControllerTest {
12
+    private ComputeResultController computeResultController;
13
+
14
+    @MockBean
15
+    private VoteRepository voteRepository;
16
+
17
+    @Before
18
+    public void setUp(){
19
+        computeResultController = new ComputeResultController(voteRepository);
20
+    }
21
+
22
+    @Test
23
+    public void testComputeResults() {
24
+        voteRepository.findVotesByPoll(1L);
25
+        computeResultController.computeResult(1L);
26
+    }
27
+}

+ 63
- 37
src/test/java/io/zipcoder/tc_spring_poll_application/controller/VoteControllerTest.java Datei anzeigen

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;
8
+import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
7
 import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
9
 import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
8
 import org.junit.Assert;
10
 import org.junit.Assert;
9
 import org.junit.Before;
11
 import org.junit.Before;
11
 import org.junit.runner.RunWith;
13
 import org.junit.runner.RunWith;
12
 import org.mockito.InjectMocks;
14
 import org.mockito.InjectMocks;
13
 import org.mockito.Mock;
15
 import org.mockito.Mock;
16
+import org.mockito.MockitoAnnotations;
14
 import org.springframework.beans.factory.annotation.Autowired;
17
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
18
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
19
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
16
 import org.springframework.boot.test.context.SpringBootTest;
20
 import org.springframework.boot.test.context.SpringBootTest;
17
 import org.springframework.boot.test.json.JacksonTester;
21
 import org.springframework.boot.test.json.JacksonTester;
22
+import org.springframework.boot.test.mock.mockito.MockBean;
18
 import org.springframework.http.HttpStatus;
23
 import org.springframework.http.HttpStatus;
19
 import org.springframework.http.MediaType;
24
 import org.springframework.http.MediaType;
20
 import org.springframework.mock.web.MockHttpServletResponse;
25
 import org.springframework.mock.web.MockHttpServletResponse;
21
 import org.springframework.test.context.junit4.SpringRunner;
26
 import org.springframework.test.context.junit4.SpringRunner;
22
 import org.springframework.test.web.servlet.MockMvc;
27
 import org.springframework.test.web.servlet.MockMvc;
23
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
28
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
29
+import org.springframework.web.bind.annotation.RequestAttribute;
30
+import org.springframework.web.context.request.RequestAttributes;
31
+import org.springframework.web.context.request.RequestContextHolder;
24
 
32
 
25
 import java.util.Arrays;
33
 import java.util.Arrays;
26
 import java.util.Collections;
34
 import java.util.Collections;
35
+import java.util.List;
27
 
36
 
37
+import static io.zipcoder.tc_spring_poll_application.JsonTestUtilities.asJsonString;
28
 import static org.mockito.BDDMockito.given;
38
 import static org.mockito.BDDMockito.given;
29
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
39
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
30
 
40
 
31
-@SpringBootTest
41
+//@SpringBootTest
32
 @RunWith(SpringRunner.class)
42
 @RunWith(SpringRunner.class)
33
-@AutoConfigureMockMvc
43
+@WebMvcTest
34
 public class VoteControllerTest {
44
 public class VoteControllerTest {
35
-
36
     @Autowired
45
     @Autowired
37
     private MockMvc mvc;
46
     private MockMvc mvc;
47
+
38
     private Vote testVote;
48
     private Vote testVote;
39
     private Iterable<Vote> votes;
49
     private Iterable<Vote> votes;
40
-    private Long testId;
41
-
50
+    private final Long TEST_ID = 1L;
51
+    private final Long BAD_ID = 400L;
42
 
52
 
43
-    @Mock
53
+    @MockBean
44
     private VoteRepository voteRepository;
54
     private VoteRepository voteRepository;
45
 
55
 
56
+    @MockBean
57
+    private PollRepository pollRepository;
58
+
46
     @InjectMocks
59
     @InjectMocks
47
     private VoteController voteController;
60
     private VoteController voteController;
48
 
61
 
62
+    private Poll testPoll;
63
+
49
     @Before
64
     @Before
50
     public void setUp() {
65
     public void setUp() {
51
 
66
 
57
                 .build();
72
                 .build();
58
 
73
 
59
         testVote = new Vote();
74
         testVote = new Vote();
60
-        testId = 1L;
61
-        testVote.setId(1L);
75
+        testVote.setId(TEST_ID);
62
 
76
 
63
         Vote[] votearr = {testVote};
77
         Vote[] votearr = {testVote};
64
         votes = Arrays.asList(votearr);
78
         votes = Arrays.asList(votearr);
65
 
79
 
80
+        testPoll = new Poll();
81
+        testPoll.setId(TEST_ID);
66
     }
82
     }
67
 
83
 
68
     @Test
84
     @Test
69
     public void testGetVotePollIdSuccess() throws Exception {
85
     public void testGetVotePollIdSuccess() throws Exception {
70
 
86
 
71
-//        given(voteRepository.findVotesByPoll(testId))
72
-//                .willReturn(votes);
73
-//
74
-//        MockHttpServletResponse response = mvc.perform(get("polls/1/votes")
75
-//                .accept(MediaType.APPLICATION_JSON))
76
-//                .andReturn().getResponse();
77
-//
78
-//        Assert.assertEquals((response.getStatus()), HttpStatus.OK.value());
79
-//        Assert.assertEquals(response.getContentAsString(), testVote.toString());
87
+        given(voteRepository.findVotesByPoll(TEST_ID))
88
+                .willReturn(votes);
89
+
90
+        MockHttpServletResponse response = mvc.perform(get("/polls/1/votes")
91
+                .content(asJsonString(votes))
92
+                .contentType(MediaType.APPLICATION_JSON)
93
+                .accept(MediaType.APPLICATION_JSON))
94
+                .andReturn().getResponse();
95
+
96
+        Assert.assertEquals(HttpStatus.OK.value(), response.getStatus());
97
+        Assert.assertEquals(response.getContentAsString(), votes.toString());
80
     }
98
     }
81
 
99
 
100
+//    @Test(expected = ResourceNotFoundException.class)
82
     @Test
101
     @Test
83
     public void testGetVoteIdFail() throws Exception {
102
     public void testGetVoteIdFail() throws Exception {
103
+        given(voteRepository.findVotesByPoll(BAD_ID))
104
+                .willThrow(new ResourceNotFoundException());
84
 
105
 
85
-        given(voteRepository.findAll())
86
-                .willReturn(null);
106
+        MockHttpServletResponse response = mvc.perform(get("/polls/500/votes")
107
+                .accept(MediaType.APPLICATION_JSON))
108
+                .andReturn().getResponse();
109
+
110
+        System.out.println(response.getStatus());
111
+
112
+        Assert.assertEquals(HttpStatus.NOT_FOUND.value(), response.getStatus());
113
+    }
87
 
114
 
88
-        MockHttpServletResponse response = mvc.perform(get("polls/200/votes")
115
+    @Test
116
+    public void testGetAllVotes() throws Exception {
117
+        given(voteController.getAllVotes())
118
+                .willReturn(votes);
119
+
120
+        MockHttpServletResponse response = mvc.perform(get("/polls/votes")
89
                 .accept(MediaType.APPLICATION_JSON))
121
                 .accept(MediaType.APPLICATION_JSON))
90
                 .andReturn().getResponse();
122
                 .andReturn().getResponse();
91
 
123
 
92
-        Assert.assertEquals((response.getStatus()), HttpStatus.OK.value());
124
+        Assert.assertEquals(response.getStatus(), HttpStatus.OK.value());
93
         Assert.assertEquals(response.getContentAsString(), votes.toString());
125
         Assert.assertEquals(response.getContentAsString(), votes.toString());
94
     }
126
     }
95
 
127
 
96
-//    @Test
97
-//    public void testGetAllVotes() throws Exception {
98
-//
99
-//        given(voteRepository.findOne(200L))
100
-//                .willThrow(new ResourceNotFoundException());
101
-//
102
-//        MockHttpServletResponse response = mvc.perform(
103
-//                get("polls/votes")
104
-//                        .accept(MediaType.APPLICATION_JSON))
105
-//                .andReturn().getResponse();
106
-//
107
-//        Assert.assertEquals(response.getStatus(), HttpStatus.NOT_FOUND.value());
108
-//        Assert.assertTrue(response.getContentAsString().isEmpty());
109
-//    }
110
-
111
     @Test
128
     @Test
112
-    public void testGetAllVotesFail() {
129
+    public void testGetAllVotesFail() throws Exception {
130
+        given(voteController.getAllVotes())
131
+                .willThrow(new ResourceNotFoundException());
132
+
133
+        MockHttpServletResponse response = mvc.perform(
134
+                get("polls/votes")
135
+                        .accept(MediaType.APPLICATION_JSON))
136
+                .andReturn().getResponse();
113
 
137
 
138
+        Assert.assertEquals(response.getStatus(), HttpStatus.NOT_FOUND.value());
139
+        Assert.assertTrue(response.getContentAsString().isEmpty());
114
     }
140
     }
115
 
141
 
116
     @Test
142
     @Test