|
1 | 1 | package io.f1.backend.domain.stat; |
2 | 2 |
|
3 | 3 | import static io.f1.backend.global.exception.errorcode.CommonErrorCode.INVALID_PAGINATION; |
4 | | - |
5 | 4 | import static io.f1.backend.global.exception.errorcode.RoomErrorCode.PLAYER_NOT_FOUND; |
| 5 | + |
6 | 6 | import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; |
7 | 7 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; |
8 | 8 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
9 | 9 |
|
10 | 10 | import com.github.database.rider.core.api.dataset.DataSet; |
11 | 11 |
|
12 | | -import io.f1.backend.global.exception.errorcode.ErrorCode; |
13 | | -import io.f1.backend.global.exception.errorcode.RoomErrorCode; |
14 | 12 | import io.f1.backend.global.template.BrowserTestTemplate; |
15 | 13 |
|
16 | 14 | import org.junit.jupiter.api.DisplayName; |
@@ -90,60 +88,60 @@ void totalRankingForThreeUserWithPageSize2() throws Exception { |
90 | 88 | jsonPath("$.ranks.length()").value(1)); |
91 | 89 | } |
92 | 90 |
|
93 | | - @Test |
94 | | - @DataSet("datasets/stat/three-user-stat.yml") |
95 | | - @DisplayName("랭킹 페이지에서 존재하지 않는 닉네임을 검색하면 예외를 발생시킨다.") |
96 | | - void totalRankingWithUnregisteredNickname() throws Exception { |
97 | | - // given |
98 | | - String nickname = "UNREGISTERED"; |
99 | | - |
100 | | - // when |
101 | | - ResultActions result = mockMvc.perform(get("/stats/rankings/" + nickname)); |
102 | | - |
103 | | - // then |
104 | | - result.andExpectAll( |
105 | | - status().isNotFound(), jsonPath("$.code").value(PLAYER_NOT_FOUND.getCode())); |
106 | | - } |
107 | | - |
108 | | - @Test |
109 | | - @DataSet("datasets/stat/three-user-stat.yml") |
110 | | - @DisplayName("총 유저 수가 3명이고 페이지 크기가 2일 때 1위 유저의 닉네임을 검색하면 첫 번째 페이지에 2개의 결과를 반환한다") |
111 | | - void totalRankingForThreeUserWithFirstRankedNickname() throws Exception { |
112 | | - // given |
113 | | - String nickname = "USER3"; |
114 | | - |
115 | | - // when |
116 | | - ResultActions result = mockMvc.perform( |
117 | | - get("/stats/rankings/" + nickname).param("size", "2")); |
118 | | - |
119 | | - // then |
120 | | - result.andExpectAll( |
121 | | - status().isOk(), |
122 | | - jsonPath("$.totalPages").value(2), |
123 | | - jsonPath("$.currentPage").value(1), |
124 | | - jsonPath("$.totalElements").value(2), |
125 | | - jsonPath("$.ranks.length()").value(2), |
126 | | - jsonPath("$.ranks[0].nickname").value(nickname)); |
127 | | - } |
128 | | - |
129 | | - @Test |
130 | | - @DataSet("datasets/stat/three-user-stat.yml") |
131 | | - @DisplayName("총 유저 수가 3명이고 페이지 크기가 2일 때 3위 유저의 닉네임을 검색하면 두 번째 페이지에 1개의 결과를 반환한다") |
132 | | - void totalRankingForThreeUserWithLastRankedNickname() throws Exception { |
133 | | - // given |
134 | | - String nickname = "USER1"; |
135 | | - |
136 | | - // when |
137 | | - ResultActions result = mockMvc.perform( |
138 | | - get("/stats/rankings/" + nickname).param("size", "2")); |
139 | | - |
140 | | - // then |
141 | | - result.andExpectAll( |
142 | | - status().isOk(), |
143 | | - jsonPath("$.totalPages").value(2), |
144 | | - jsonPath("$.currentPage").value(2), |
145 | | - jsonPath("$.totalElements").value(1), |
146 | | - jsonPath("$.ranks.length()").value(1), |
147 | | - jsonPath("$.ranks[0].nickname").value(nickname)); |
148 | | - } |
| 91 | + @Test |
| 92 | + @DataSet("datasets/stat/three-user-stat.yml") |
| 93 | + @DisplayName("랭킹 페이지에서 존재하지 않는 닉네임을 검색하면 예외를 발생시킨다.") |
| 94 | + void totalRankingWithUnregisteredNickname() throws Exception { |
| 95 | + // given |
| 96 | + String nickname = "UNREGISTERED"; |
| 97 | + |
| 98 | + // when |
| 99 | + ResultActions result = mockMvc.perform(get("/stats/rankings/" + nickname)); |
| 100 | + |
| 101 | + // then |
| 102 | + result.andExpectAll( |
| 103 | + status().isNotFound(), jsonPath("$.code").value(PLAYER_NOT_FOUND.getCode())); |
| 104 | + } |
| 105 | + |
| 106 | + @Test |
| 107 | + @DataSet("datasets/stat/three-user-stat.yml") |
| 108 | + @DisplayName("총 유저 수가 3명이고 페이지 크기가 2일 때 1위 유저의 닉네임을 검색하면 첫 번째 페이지에 2개의 결과를 반환한다") |
| 109 | + void totalRankingForThreeUserWithFirstRankedNickname() throws Exception { |
| 110 | + // given |
| 111 | + String nickname = "USER3"; |
| 112 | + |
| 113 | + // when |
| 114 | + ResultActions result = |
| 115 | + mockMvc.perform(get("/stats/rankings/" + nickname).param("size", "2")); |
| 116 | + |
| 117 | + // then |
| 118 | + result.andExpectAll( |
| 119 | + status().isOk(), |
| 120 | + jsonPath("$.totalPages").value(2), |
| 121 | + jsonPath("$.currentPage").value(1), |
| 122 | + jsonPath("$.totalElements").value(2), |
| 123 | + jsonPath("$.ranks.length()").value(2), |
| 124 | + jsonPath("$.ranks[0].nickname").value(nickname)); |
| 125 | + } |
| 126 | + |
| 127 | + @Test |
| 128 | + @DataSet("datasets/stat/three-user-stat.yml") |
| 129 | + @DisplayName("총 유저 수가 3명이고 페이지 크기가 2일 때 3위 유저의 닉네임을 검색하면 두 번째 페이지에 1개의 결과를 반환한다") |
| 130 | + void totalRankingForThreeUserWithLastRankedNickname() throws Exception { |
| 131 | + // given |
| 132 | + String nickname = "USER1"; |
| 133 | + |
| 134 | + // when |
| 135 | + ResultActions result = |
| 136 | + mockMvc.perform(get("/stats/rankings/" + nickname).param("size", "2")); |
| 137 | + |
| 138 | + // then |
| 139 | + result.andExpectAll( |
| 140 | + status().isOk(), |
| 141 | + jsonPath("$.totalPages").value(2), |
| 142 | + jsonPath("$.currentPage").value(2), |
| 143 | + jsonPath("$.totalElements").value(1), |
| 144 | + jsonPath("$.ranks.length()").value(1), |
| 145 | + jsonPath("$.ranks[0].nickname").value(nickname)); |
| 146 | + } |
149 | 147 | } |
0 commit comments