Skip to content

Commit 8dbff5a

Browse files
committed
삭제한 test 새로 생성
1 parent 063ead0 commit 8dbff5a

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
2+
package com.back.domain.title;
3+
4+
import com.back.domain.title.dto.CreateTitleDto;
5+
import com.back.domain.title.dto.TitleDto;
6+
import com.back.domain.title.entity.Title;
7+
import com.back.domain.title.repository.TitleRepository;
8+
import com.back.domain.title.service.TitleService;
9+
import jakarta.persistence.EntityManager;
10+
import org.junit.jupiter.api.BeforeEach;
11+
import org.junit.jupiter.api.DisplayName;
12+
import org.junit.jupiter.api.Test;
13+
import org.springframework.beans.factory.annotation.Autowired;
14+
import org.springframework.boot.test.context.SpringBootTest;
15+
import org.springframework.boot.test.web.client.TestRestTemplate;
16+
import org.springframework.boot.test.web.server.LocalServerPort;
17+
import org.springframework.http.*;
18+
import org.springframework.test.context.ActiveProfiles;
19+
import org.springframework.transaction.annotation.Transactional;
20+
21+
import static org.assertj.core.api.Assertions.assertThat;
22+
23+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
24+
@ActiveProfiles("test")
25+
@Transactional
26+
@DisplayName("칭호 API CRUD 통합 테스트")
27+
public class ApiV1TitleControllerTest {
28+
29+
@LocalServerPort
30+
private int port;
31+
32+
@Autowired
33+
private TestRestTemplate restTemplate;
34+
35+
@Autowired
36+
private EntityManager em;
37+
38+
@Autowired
39+
TitleService titleService;
40+
41+
@Autowired
42+
TitleRepository titleRepository;
43+
private String baseUrl;
44+
private HttpHeaders headers;
45+
46+
@BeforeEach
47+
void setUp() {
48+
49+
baseUrl = "http://localhost:" + port + "/api/v1/title";
50+
headers = new HttpHeaders();
51+
headers.setContentType(MediaType.APPLICATION_JSON);
52+
}
53+
54+
55+
@Test
56+
@DisplayName("READ - 전체 칭호 조회 성공")
57+
void findAllItems_Success() {
58+
59+
CreateTitleDto createTitleDto1 = new CreateTitleDto("칭호 테스트 1");
60+
CreateTitleDto createTitleDto2 = new CreateTitleDto("칭호 테스트 2");
61+
CreateTitleDto createTitleDto3 = new CreateTitleDto("칭호 테스트 3");
62+
63+
HttpEntity<CreateTitleDto> request1 = new HttpEntity<>(createTitleDto1, headers);
64+
restTemplate.exchange(baseUrl, HttpMethod.POST, request1, String.class);
65+
HttpEntity<CreateTitleDto> request2 = new HttpEntity<>(createTitleDto2, headers);
66+
restTemplate.exchange(baseUrl, HttpMethod.POST, request2, String.class);
67+
HttpEntity<CreateTitleDto> request3 = new HttpEntity<>(createTitleDto3, headers);
68+
restTemplate.exchange(baseUrl, HttpMethod.POST, request3, String.class);
69+
70+
ResponseEntity<String> response = restTemplate.getForEntity(baseUrl, String.class);
71+
72+
// then
73+
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
74+
assertThat(response.getBody()).contains("칭호 테스트 1");
75+
assertThat(response.getBody()).contains("칭호 테스트 2");
76+
assertThat(response.getBody()).contains("칭호 테스트 3");
77+
}
78+
79+
80+
@Test
81+
@DisplayName("READ - 칭호 단건 조회 성공")
82+
void findAllTitle_Success() {
83+
84+
Title title = titleRepository.findAll().getLast();
85+
86+
CreateTitleDto createTitleDto1 = new CreateTitleDto("칭호 테스트 1");
87+
HttpEntity<CreateTitleDto> request1 = new HttpEntity<>(createTitleDto1, headers);
88+
restTemplate.exchange(baseUrl, HttpMethod.POST, request1, String.class);
89+
ResponseEntity<String> response = restTemplate.getForEntity(baseUrl + "/" + (title.getId() + 1), String.class);
90+
91+
// then
92+
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
93+
assertThat(response.getBody()).contains("칭호 테스트 1");
94+
}
95+
96+
@Test
97+
@DisplayName("UPDATE - 칭호 수정 성공")
98+
void createTitle_Success() {
99+
100+
int titleId = titleRepository.findAll().getLast().getId() + 1;
101+
CreateTitleDto createTitleDto = new CreateTitleDto("칭호 테스트 1");
102+
HttpEntity<CreateTitleDto> request = new HttpEntity<>(createTitleDto, headers);
103+
ResponseEntity<String> response = restTemplate.postForEntity(baseUrl, request, String.class);
104+
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
105+
assertThat(response.getBody()).contains("칭호 테스트 1");
106+
107+
TitleDto titleDto = new TitleDto(titleId, "칭호 수정 테스트 1");
108+
HttpEntity<TitleDto> request1 = new HttpEntity<>(titleDto, headers);
109+
ResponseEntity<String> response1 = restTemplate.exchange(baseUrl + "/" + titleId, HttpMethod.PUT, request1, String.class);
110+
111+
assertThat(response1.getStatusCode()).isEqualTo(HttpStatus.OK);
112+
assertThat(response1.getBody()).contains("칭호 수정 테스트 1");
113+
}
114+
115+
@Test
116+
@DisplayName("DELETE - 칭호 삭제 성공")
117+
void UpdateTitle_Success() {
118+
119+
CreateTitleDto createTitleDto = new CreateTitleDto("칭호 테스트 1");
120+
HttpEntity<CreateTitleDto> request = new HttpEntity<>(createTitleDto, headers);
121+
122+
ResponseEntity<String> response = restTemplate.postForEntity(baseUrl, request, String.class);
123+
124+
// then
125+
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
126+
assertThat(response.getBody()).contains("칭호 테스트 1");
127+
}
128+
129+
}

0 commit comments

Comments
 (0)