5
5
import static com .github .throyer .common .springboot .utils .Random .password ;
6
6
import static com .github .throyer .common .springboot .utils .Random .randomUser ;
7
7
import static com .github .throyer .common .springboot .utils .TokenUtils .token ;
8
- import static org .hamcrest .Matchers .greaterThan ;
9
- import static org .hamcrest .Matchers .hasSize ;
10
8
import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .delete ;
11
9
import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .get ;
12
10
import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .post ;
13
11
import static org .springframework .test .web .servlet .result .MockMvcResultHandlers .print ;
14
12
import static org .springframework .test .web .servlet .result .MockMvcResultMatchers .jsonPath ;
15
13
import static org .springframework .test .web .servlet .result .MockMvcResultMatchers .status ;
16
14
15
+ import static org .springframework .http .HttpHeaders .AUTHORIZATION ;
16
+ import static org .springframework .http .HttpHeaders .CONTENT_TYPE ;
17
+ import static org .springframework .http .MediaType .APPLICATION_JSON ;
18
+
19
+ import static java .lang .String .format ;
20
+ import static org .hamcrest .Matchers .*;
21
+
17
22
import java .util .List ;
18
23
import java .util .Map ;
19
24
29
34
import org .springframework .boot .test .autoconfigure .web .servlet .AutoConfigureMockMvc ;
30
35
import org .springframework .boot .test .context .SpringBootTest ;
31
36
import org .springframework .boot .test .context .SpringBootTest .WebEnvironment ;
32
- import org .springframework .http .HttpHeaders ;
33
- import org .springframework .http .MediaType ;
37
+
34
38
import org .springframework .test .annotation .DirtiesContext ;
35
39
import org .springframework .test .annotation .DirtiesContext .ClassMode ;
36
40
import org .springframework .test .web .servlet .MockMvc ;
@@ -75,7 +79,7 @@ public void should_save_a_new_user() throws Exception {
75
79
76
80
var request = post ("/api/users" )
77
81
.content (json )
78
- .header (HttpHeaders . CONTENT_TYPE , MediaType . APPLICATION_JSON );
82
+ .header (CONTENT_TYPE , APPLICATION_JSON );
79
83
80
84
api .perform (request )
81
85
.andDo (print ())
@@ -95,7 +99,7 @@ public void should_return_400_saving_user_without_required_fields() throws Excep
95
99
96
100
var request = post ("/api/users" )
97
101
.content (payload )
98
- .header (HttpHeaders . CONTENT_TYPE , MediaType . APPLICATION_JSON );
102
+ .header (CONTENT_TYPE , APPLICATION_JSON );
99
103
100
104
api .perform (request )
101
105
.andDo (print ())
@@ -111,7 +115,7 @@ public void should_list_users() throws Exception {
111
115
repository .saveAll (List .of (randomUser (), randomUser (), randomUser (), randomUser ()));
112
116
113
117
var request = get ("/api/users" )
114
- .header (HttpHeaders . AUTHORIZATION , header )
118
+ .header (AUTHORIZATION , header )
115
119
.queryParam ("page" , "0" )
116
120
.queryParam ("size" , "10" );
117
121
@@ -120,6 +124,39 @@ public void should_list_users() throws Exception {
120
124
.andExpect (jsonPath ("$.content" ).isArray ())
121
125
.andExpect (jsonPath ("$.content" , hasSize (greaterThan (3 ))));
122
126
}
127
+
128
+ @ Test
129
+ @ DisplayName ("Must not list deleted users." )
130
+ public void must_not_list_deleted_users () throws Exception {
131
+
132
+ var user = repository .save (randomUser ());
133
+ var id = user .getId ();
134
+ var expression = format ("$.content[?(@.id == %s)].id" , id );
135
+
136
+ var first = get ("/api/users" )
137
+ .header (AUTHORIZATION , header )
138
+ .queryParam ("page" , "0" )
139
+ .queryParam ("size" , "10" );
140
+
141
+ api .perform (first ).andDo (print ())
142
+ .andExpect (status ().isOk ())
143
+ .andExpect (jsonPath (expression , hasItem (id .intValue ())));
144
+
145
+ var second = delete (String .format ("/api/users/%s" , id ))
146
+ .header (AUTHORIZATION , header );
147
+
148
+ api .perform (second ).andDo (print ())
149
+ .andExpect (status ().isNoContent ());
150
+
151
+ var third = get ("/api/users" )
152
+ .header (AUTHORIZATION , header )
153
+ .queryParam ("page" , "0" )
154
+ .queryParam ("size" , "10" );
155
+
156
+ api .perform (third ).andDo (print ())
157
+ .andExpect (status ().isOk ())
158
+ .andExpect (jsonPath (format ("$.content[?(@.id == %s)].id" , id .intValue ())).isEmpty ());
159
+ }
123
160
124
161
@ Test
125
162
@ DisplayName ("Deve deletar usuário." )
@@ -128,7 +165,7 @@ public void should_delete_user() throws Exception {
128
165
var user = repository .save (randomUser ());
129
166
130
167
var request = delete (String .format ("/api/users/%s" , user .getId ()))
131
- .header (HttpHeaders . AUTHORIZATION , header );
168
+ .header (AUTHORIZATION , header );
132
169
133
170
api .perform (request ).andDo (print ())
134
171
.andExpect (status ().isNoContent ());
@@ -140,13 +177,13 @@ public void should_return_404_after_delete_user() throws Exception {
140
177
var user = repository .save (randomUser ());
141
178
142
179
var fist = delete (String .format ("/api/users/%s" , user .getId ()))
143
- .header (HttpHeaders . AUTHORIZATION , header );
180
+ .header (AUTHORIZATION , header );
144
181
145
182
api .perform (fist ).andDo (print ())
146
183
.andExpect (status ().isNoContent ());
147
184
148
185
var second = delete (String .format ("/api/users/%s" , user .getId ()))
149
- .header (HttpHeaders . AUTHORIZATION , header );
186
+ .header (AUTHORIZATION , header );
150
187
151
188
api .perform (second ).andDo (print ())
152
189
.andExpect (status ().isNotFound ());
@@ -164,7 +201,7 @@ public void should_return_400_after_save_same_email() throws Exception {
164
201
165
202
var first = post ("/api/users" )
166
203
.content (json )
167
- .header (HttpHeaders . CONTENT_TYPE , MediaType . APPLICATION_JSON );
204
+ .header (CONTENT_TYPE , APPLICATION_JSON );
168
205
169
206
api .perform (first )
170
207
.andDo (print ())
@@ -174,7 +211,7 @@ public void should_return_400_after_save_same_email() throws Exception {
174
211
175
212
var second = post ("/api/users" )
176
213
.content (json )
177
- .header (HttpHeaders . CONTENT_TYPE , MediaType . APPLICATION_JSON );
214
+ .header (CONTENT_TYPE , APPLICATION_JSON );
178
215
179
216
api .perform (second )
180
217
.andDo (print ())
0 commit comments