Skip to content

Commit d9fb498

Browse files
committed
test - login test
1 parent 4c38316 commit d9fb498

File tree

3 files changed

+63
-4
lines changed

3 files changed

+63
-4
lines changed

src/main/java/pl/robocikd/restapi/controller/LoginController.java

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package pl.robocikd.restapi.controller;
22

3+
import org.springframework.web.bind.annotation.GetMapping;
34
import org.springframework.web.bind.annotation.PostMapping;
45
import org.springframework.web.bind.annotation.RequestBody;
56
import org.springframework.web.bind.annotation.RestController;
@@ -10,6 +11,10 @@ public class LoginController {
1011

1112
@PostMapping("/login")
1213
public void login(@RequestBody LoginCredentials credentials) {
14+
}
1315

16+
@GetMapping("/secured")
17+
public String secured() {
18+
return "secured";
1419
}
1520
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package pl.robocikd.restapi.controller;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
6+
import org.springframework.boot.test.context.SpringBootTest;
7+
import org.springframework.test.web.servlet.MockMvc;
8+
import org.springframework.test.web.servlet.MvcResult;
9+
10+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
11+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
12+
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
13+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
14+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
15+
16+
@SpringBootTest
17+
@AutoConfigureMockMvc
18+
class LoginControllerTest {
19+
20+
@Autowired
21+
private MockMvc mockMvc;
22+
23+
@Test
24+
void shouldLoginAndGetContent() throws Exception {
25+
MvcResult login = mockMvc.perform(post("/login")
26+
.content("{\"username\": \"test\", \"password\": \"test\"}"))
27+
.andDo(print())
28+
.andExpect(status().is(200))
29+
.andReturn();
30+
String token = login.getResponse().getHeader("Authorization");
31+
32+
mockMvc.perform(get("/secured")
33+
.header("Authorization", token))
34+
.andDo(print())
35+
.andExpect(status().is(200))
36+
.andExpect(content().string("secured"));
37+
38+
mockMvc.perform(get("/secured"))
39+
.andDo(print())
40+
.andExpect(status().is(401));
41+
}
42+
}

src/test/java/pl/robocikd/restapi/controller/PostControllerTest.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
import org.springframework.test.web.servlet.MockMvc;
1111
import org.springframework.test.web.servlet.MvcResult;
1212
import pl.robocikd.restapi.model.Post;
13+
import pl.robocikd.restapi.repository.PostRepository;
14+
15+
import javax.transaction.Transactional;
16+
import java.time.LocalDateTime;
1317

1418
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
1519
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@@ -26,20 +30,28 @@ class PostControllerTest {
2630
private MockMvc mockMvc;
2731
@Autowired
2832
private ObjectMapper objectMapper;
33+
@Autowired
34+
private PostRepository postRepository;
2935

3036
@Test
37+
@Transactional
3138
void shouldGetSinglePost() throws Exception {
3239
// given
40+
Post newPost = new Post();
41+
newPost.setTitle("Test");
42+
newPost.setContent("Test content");
43+
newPost.setCreated(LocalDateTime.now());
44+
postRepository.save(newPost);
3345
// when
34-
MvcResult mvcResult = mockMvc.perform(get("/posts/1"))
46+
MvcResult mvcResult = mockMvc.perform(get("/posts/" + newPost.getId()))
3547
.andDo(print())
3648
.andExpect(status().is(200))
3749
.andReturn();
3850
// then
3951
Post post = objectMapper.readValue(mvcResult.getResponse().getContentAsString(), Post.class);
4052
assertThat(post).isNotNull();
41-
assertThat(post.getId()).isEqualTo(1L);
42-
assertThat(post.getTitle()).isEqualTo("Test post 1");
43-
assertThat(post.getComment().size()).isEqualTo(9);
53+
assertThat(post.getId()).isEqualTo(newPost.getId());
54+
assertThat(post.getTitle()).isEqualTo("Test");
55+
assertThat(post.getContent()).isEqualTo("Test content");
4456
}
4557
}

0 commit comments

Comments
 (0)