Skip to content

Commit b92add0

Browse files
author
Jang Jun Young
committed
feat: 어드민 수정, 삭제취소 테스트 구현
1 parent eb4758c commit b92add0

File tree

1 file changed

+110
-5
lines changed

1 file changed

+110
-5
lines changed

src/test/java/in/koreatech/koin/admin/acceptance/AdminLandApiTest.java

Lines changed: 110 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
package in.koreatech.koin.admin.acceptance;
22

3-
import static in.koreatech.koin.support.JsonAssertions.assertThat;
43
import static org.assertj.core.api.SoftAssertions.assertSoftly;
54
import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
65
import static org.junit.Assert.assertEquals;
76
import static org.junit.jupiter.api.Assertions.assertAll;
87

9-
import java.util.List;
10-
import java.util.Optional;
11-
128
import org.assertj.core.api.SoftAssertions;
139
import org.junit.jupiter.api.DisplayName;
1410
import org.junit.jupiter.api.Test;
1511
import org.springframework.beans.factory.annotation.Autowired;
1612
import org.springframework.http.HttpStatus;
1713

1814
import in.koreatech.koin.AcceptanceTest;
19-
import in.koreatech.koin.admin.land.dto.AdminLandsRequest;
2015
import in.koreatech.koin.admin.land.repository.AdminLandRepository;
2116
import in.koreatech.koin.domain.land.model.Land;
2217
import in.koreatech.koin.domain.user.model.User;
18+
import in.koreatech.koin.fixture.LandFixture;
2319
import in.koreatech.koin.fixture.UserFixture;
2420
import in.koreatech.koin.support.JsonAssertions;
2521
import io.restassured.RestAssured;
@@ -30,6 +26,9 @@ class AdminLandApiTest extends AcceptanceTest {
3026
@Autowired
3127
private AdminLandRepository adminLandRepository;
3228

29+
@Autowired
30+
private LandFixture landFixture;
31+
3332
@Autowired
3433
private UserFixture userFixture;
3534

@@ -232,4 +231,110 @@ void getLand() {
232231
""", landId));
233232
}
234233

234+
@Test
235+
@DisplayName("관리자 권한으로 복덕방 정보를 수정한다.")
236+
void updateLand() {
237+
Land land = landFixture.신안빌();
238+
Integer landId = land.getId();
239+
240+
User adminUser = userFixture.코인_운영자();
241+
String token = userFixture.getToken(adminUser);
242+
243+
String jsonBody = """
244+
{
245+
"name": "신안빌 수정",
246+
"internal_name": "신안빌",
247+
"size": "110.0",
248+
"room_type": "투룸",
249+
"latitude": "37.556",
250+
"longitude": "126.556",
251+
"phone": "010-1234-5679",
252+
"image_urls": ["http://newimage1.com", "http://newimage2.com"],
253+
"address": "서울시 강남구 신사동",
254+
"description": "신안빌 수정 설명",
255+
"floor": 5,
256+
"deposit": "50",
257+
"monthly_fee": "150만원",
258+
"charter_fee": "5000",
259+
"management_fee": "150",
260+
"opt_closet": true,
261+
"opt_tv": false,
262+
"opt_microwave": true,
263+
"opt_gas_range": false,
264+
"opt_induction": true,
265+
"opt_water_purifier": false,
266+
"opt_air_conditioner": true,
267+
"opt_washer": true
268+
}
269+
""";
270+
271+
RestAssured
272+
.given()
273+
.header("Authorization", "Bearer " + token)
274+
.contentType("application/json")
275+
.body(jsonBody)
276+
.when()
277+
.put("/admin/lands/{id}", landId)
278+
.then()
279+
.statusCode(HttpStatus.OK.value())
280+
.extract();
281+
282+
Land updatedLand = adminLandRepository.getById(landId);
283+
284+
assertSoftly(softly -> {
285+
softly.assertThat(updatedLand.getName()).isEqualTo("신안빌 수정");
286+
softly.assertThat(updatedLand.getInternalName()).isEqualTo("신안빌");
287+
softly.assertThat(updatedLand.getSize()).isEqualTo("110.0");
288+
softly.assertThat(updatedLand.getRoomType()).isEqualTo("투룸");
289+
softly.assertThat(updatedLand.getLatitude()).isEqualTo(37.556);
290+
softly.assertThat(updatedLand.getLongitude()).isEqualTo(126.556);
291+
softly.assertThat(updatedLand.getPhone()).isEqualTo("010-1234-5679");
292+
softly.assertThat(updatedLand.getImageUrls()).containsAnyOf("http://newimage1.com", "http://newimage2.com");
293+
softly.assertThat(updatedLand.getAddress()).isEqualTo("서울시 강남구 신사동");
294+
softly.assertThat(updatedLand.getDescription()).isEqualTo("신안빌 수정 설명");
295+
softly.assertThat(updatedLand.getFloor()).isEqualTo(5);
296+
softly.assertThat(updatedLand.getDeposit()).isEqualTo("50");
297+
softly.assertThat(updatedLand.getMonthlyFee()).isEqualTo("150만원");
298+
softly.assertThat(updatedLand.getCharterFee()).isEqualTo("5000");
299+
softly.assertThat(updatedLand.getManagementFee()).isEqualTo("150");
300+
softly.assertThat(updatedLand.isOptCloset()).isTrue();
301+
softly.assertThat(updatedLand.isOptTv()).isFalse();
302+
softly.assertThat(updatedLand.isOptMicrowave()).isTrue();
303+
softly.assertThat(updatedLand.isOptGasRange()).isFalse();
304+
softly.assertThat(updatedLand.isOptInduction()).isTrue();
305+
softly.assertThat(updatedLand.isOptWaterPurifier()).isFalse();
306+
softly.assertThat(updatedLand.isOptAirConditioner()).isTrue();
307+
softly.assertThat(updatedLand.isOptWasher()).isTrue();
308+
softly.assertThat(updatedLand.isDeleted()).isEqualTo(false);
309+
});
310+
}
311+
312+
@Test
313+
@DisplayName("관리자 권한으로 복덕방 삭제를 취소한다.")
314+
void undeleteLand() {
315+
Land deletedLand = landFixture.삭제된_복덕방();
316+
Integer landId = deletedLand.getId();
317+
318+
User adminUser = userFixture.코인_운영자();
319+
String token = userFixture.getToken(adminUser);
320+
321+
RestAssured
322+
.given()
323+
.header("Authorization", "Bearer " + token)
324+
.when()
325+
.post("/admin/lands/{id}/undelete", landId)
326+
.then()
327+
.statusCode(HttpStatus.OK.value())
328+
.extract();
329+
330+
Land undeletedLand = adminLandRepository.getById(landId);
331+
332+
SoftAssertions.assertSoftly(softly -> {
333+
softly.assertThat(undeletedLand).isNotNull();
334+
softly.assertThat(undeletedLand.getName()).isEqualTo("삭제된 복덕방");
335+
softly.assertThat(undeletedLand.isDeleted()).isFalse();
336+
});
337+
}
338+
339+
235340
}

0 commit comments

Comments
 (0)