forked from jaiswaladi246/Boardgame
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTestController.java
More file actions
104 lines (81 loc) · 3.55 KB
/
Copy pathTestController.java
File metadata and controls
104 lines (81 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.javaproject;
import static org.junit.jupiter.api.Assertions.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.util.LinkedMultiValueMap;
import com.javaproject.beans.BoardGame;
import com.javaproject.beans.Review;
import com.javaproject.database.DatabaseAccess;
@SpringBootTest
@AutoConfigureMockMvc
class TestController {
private DatabaseAccess da;
private MockMvc mockMvc;
@Autowired
public void setDatabase(DatabaseAccess da) {
this.da = da;
}
@Autowired
public void setMockMvc(MockMvc mockMvc) {
this.mockMvc = mockMvc;
}
@Test
public void testRoot() throws Exception {
mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(view().name("index"));
}
@Test
public void testAddBoardGame() throws Exception {
LinkedMultiValueMap<String, String> requestParams = new LinkedMultiValueMap<>();
requestParams.add("name", "onecard");
requestParams.add("level", "1");
requestParams.add("minPlayers", "2");
requestParams.add("maxPlayers", "+");
requestParams.add("gameType", "Party Game");
int origSize = da.getBoardGames().size();
mockMvc.perform(post("/boardgameAdded").params(requestParams))
.andExpect(status().isFound())
.andExpect(redirectedUrl("/"))
.andDo(print());
int newSize = da.getBoardGames().size();
assertEquals(newSize, origSize + 1);
}
@Test
public void testEditReview() throws Exception {
List<BoardGame> boardGames = da.getBoardGames();
Long boardgameId = boardGames.get(0).getId();
List<Review> reviews = da.getReviews(boardgameId);
Review review = reviews.get(0);
Long reviewId = review.getId();
review.setText("Edited text");
mockMvc.perform(post("/reviewAdded").flashAttr("review", review))
.andExpect(status().isFound())
.andExpect(redirectedUrl("/" + review.getGameId() + "/reviews"));
review = da.getReview(reviewId);
assertEquals(review.getText(), "Edited text");
}
@Test
public void testDeleteReview() throws Exception {
List<BoardGame> boardGames = da.getBoardGames();
Long boardgameId = boardGames.get(0).getId();
List<Review> reviews = da.getReviews(boardgameId);
Long reviewId = reviews.get(0).getId();
int origSize = reviews.size();
mockMvc.perform(get("/deleteReview/{id}", reviewId))
.andExpect(status().isFound())
.andExpect(redirectedUrl("/" + boardgameId + "/reviews"));
int newSize = da.getReviews(boardgameId).size();
assertEquals(newSize, origSize - 1);
}
}