11package io .github .Hattinger04 ;
22
3+ import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .delete ;
34import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .get ;
5+ import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .post ;
6+ import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .put ;
47import static org .springframework .test .web .servlet .result .MockMvcResultMatchers .status ;
58
69import org .junit .Before ;
10+ import org .junit .jupiter .api .Disabled ;
711import org .junit .jupiter .api .Test ;
812import org .junit .runner .RunWith ;
913import org .springframework .beans .factory .annotation .Autowired ;
1620import org .springframework .context .annotation .ComponentScan ;
1721import org .springframework .data .jpa .repository .config .EnableJpaRepositories ;
1822import org .springframework .http .HttpStatus ;
23+ import org .springframework .http .MediaType ;
1924import org .springframework .security .test .context .support .WithMockUser ;
2025import org .springframework .test .context .junit4 .SpringRunner ;
2126import org .springframework .test .web .servlet .MockMvc ;
2227import org .springframework .test .web .servlet .MvcResult ;
2328import org .springframework .test .web .servlet .setup .MockMvcBuilders ;
2429
30+ import com .fasterxml .jackson .databind .JsonNode ;
31+ import com .fasterxml .jackson .databind .ObjectMapper ;
32+ import com .fasterxml .jackson .databind .node .ObjectNode ;
33+
2534import io .github .Hattinger04 .user .UserController ;
35+ import io .github .Hattinger04 .user .model .User ;
2636
2737@ RunWith (SpringRunner .class )
2838@ EntityScan ("io.github.Hattinger04.*" )
@@ -39,6 +49,9 @@ class UserControllerTest {
3949
4050 @ Autowired
4151 private MockMvc mockMvc ;
52+
53+ @ Autowired
54+ private ObjectMapper objectMapper ;
4255
4356 @ Before
4457 public void setup () {
@@ -77,4 +90,67 @@ public void testGetAdminUserByUsername() throws Exception {
7790 .andExpect (status ().is (HttpStatus .OK .value ())).andReturn ();
7891 output (result .getResponse ().getStatus ());
7992 }
93+
94+ @ Disabled // Activate when you want to try it out - currently deactivated!
95+ @ Test
96+ @ WithMockUser (authorities = "ADMIN" )
97+ public void testCreateUser () throws Exception {
98+ User user = new User ();
99+ user .setUsername ("new_user" );
100+ user .setPassword ("new_password" );
101+
102+ JsonNode node = objectMapper .valueToTree (user );
103+ ObjectNode objectNode = objectMapper .createObjectNode ();
104+ objectNode .set ("user" , node );
105+
106+ String json = objectMapper .writeValueAsString (objectNode );
107+
108+ MvcResult result = mockMvc .perform (post ("https://localhost:" + port + "/user/users" , 1 )
109+ .content (json )
110+ .contentType (MediaType .APPLICATION_JSON ))
111+ .andExpect (status ().is (HttpStatus .OK .value ()))
112+ .andReturn ();
113+ output (result .getResponse ().getStatus ());
114+ }
115+ // Set correct id for user you want to change!
116+ @ Test
117+ @ WithMockUser (authorities = "ADMIN" )
118+ public void testUpdateUser () throws Exception {
119+ User user = new User ();
120+ user .setId (3 );
121+ user .setUsername ("new_user_updated" );
122+ user .setPassword ("new_password_updated" );
123+
124+ JsonNode node = objectMapper .valueToTree (user );
125+ ObjectNode objectNode = objectMapper .createObjectNode ();
126+ objectNode .set ("user" , node );
127+
128+ String json = objectMapper .writeValueAsString (objectNode );
129+ MvcResult result = mockMvc .perform (put ("https://localhost:" + port + "/user/users" , 1 )
130+ .content (json )
131+ .contentType (MediaType .APPLICATION_JSON ))
132+ .andExpect (status ().is (HttpStatus .OK .value ()))
133+ .andReturn ();
134+ output (result .getResponse ().getStatus ());
135+ }
136+
137+ // @Disabled // Activate when you want to try it out - currently deactivated!
138+ @ Test
139+ @ WithMockUser (authorities = "ADMIN" )
140+ public void testDeleteUserByID () throws Exception {
141+ User user = new User ();
142+ user .setId (3 );
143+
144+ JsonNode node = objectMapper .valueToTree (user );
145+ ObjectNode objectNode = objectMapper .createObjectNode ();
146+ objectNode .set ("user" , node );
147+
148+ String json = objectMapper .writeValueAsString (objectNode );
149+ MvcResult result = mockMvc .perform (delete ("https://localhost:" + port + "/user/users" , 1 )
150+ .content (json )
151+ .contentType (MediaType .APPLICATION_JSON ))
152+ .andExpect (status ().is (HttpStatus .OK .value ()))
153+ .andReturn ();
154+ output (result .getResponse ().getStatus ());
155+ }
80156}
0 commit comments