Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 05f47ae

Browse files
Security_part_11_3: add CardsControllerIT.java
1 parent d355a72 commit 05f47ae

File tree

1 file changed

+69
-0
lines changed
  • Security_part_11_3/src/test/java/me/oldboy/integration/controllers/api_user_details_scenario

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package me.oldboy.integration.controllers.api_user_details_scenario;
2+
3+
import com.fasterxml.jackson.core.type.TypeReference;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
6+
import lombok.SneakyThrows;
7+
import me.oldboy.config.test_data_source.TestContainerInit;
8+
import me.oldboy.controllers.api.CardsController;
9+
import me.oldboy.dto.card_dto.CardReadDto;
10+
import me.oldboy.integration.annotation.IT;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Test;
13+
import org.springframework.beans.factory.annotation.Autowired;
14+
import org.springframework.security.test.context.support.WithUserDetails;
15+
import org.springframework.test.web.servlet.MockMvc;
16+
import org.springframework.test.web.servlet.MvcResult;
17+
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
18+
import org.springframework.web.context.WebApplicationContext;
19+
20+
import java.util.List;
21+
22+
import static me.oldboy.test_constant.TestConstantFields.EXIST_EMAIL;
23+
import static org.assertj.core.api.Assertions.assertThat;
24+
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
25+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
26+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
27+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
28+
29+
@IT
30+
class CardsControllerIT extends TestContainerInit {
31+
32+
@Autowired
33+
private CardsController cardsController;
34+
@Autowired
35+
private WebApplicationContext webApplicationContext;
36+
private MockMvc mockMvc;
37+
38+
@BeforeEach
39+
void setUp(){
40+
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
41+
.apply(springSecurity())
42+
.build();
43+
}
44+
45+
@Test
46+
@SneakyThrows
47+
@WithUserDetails(value = EXIST_EMAIL, userDetailsServiceBeanName = "clientDetailsService")
48+
void getCardDetails_ShouldReturnDtoList_AndOkAdminAuth_Test() {
49+
MvcResult result = mockMvc.perform(get("/api/myCards"))
50+
.andExpect(status().isOk())
51+
.andReturn();
52+
53+
String strResult = result.getResponse().getContentAsString();
54+
List<CardReadDto> listFromResponse = new ObjectMapper()
55+
.registerModule(new JavaTimeModule())
56+
.readValue(strResult, new TypeReference<List<CardReadDto>>() {});
57+
58+
assertThat(listFromResponse.size()).isGreaterThan(1);
59+
}
60+
61+
@Test
62+
@SneakyThrows
63+
@WithUserDetails(value = "user3@test.com", userDetailsServiceBeanName = "clientDetailsService")
64+
void getCardDetails_ShouldReturnForbidden_NotReadOrAdminAuth_Test() {
65+
mockMvc.perform(get("/api/myCards"))
66+
.andExpect(status().isForbidden())
67+
.andExpect(content().string(""));
68+
}
69+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /