From bce31e2df8185958cfa433367fdd83b827d14ba7 Mon Sep 17 00:00:00 2001 From: qkr10 Date: Mon, 7 Jul 2025 13:38:59 +0900 Subject: [PATCH] =?UTF-8?q?test:=20=EA=B0=95=EC=9D=98=EC=8B=A4=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20api=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...java => AdminClassroomControllerTest.java} | 28 ++++++++++++++++++- .../server/fixture/ClassroomFixture.java | 19 ++++++++++--- 2 files changed, 42 insertions(+), 5 deletions(-) rename src/test/java/com/backend/server/api/admin/classroom/controller/{AdminClassroomTest.java => AdminClassroomControllerTest.java} (74%) diff --git a/src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomTest.java b/src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomControllerTest.java similarity index 74% rename from src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomTest.java rename to src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomControllerTest.java index 287b9749..ed541655 100644 --- a/src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomTest.java +++ b/src/test/java/com/backend/server/api/admin/classroom/controller/AdminClassroomControllerTest.java @@ -2,11 +2,15 @@ import static com.backend.server.fixture.ClassroomFixture.강의실1; import static com.backend.server.fixture.ClassroomFixture.강의실2; +import static com.backend.server.util.MockMvcUtil.convertToJson; import static com.backend.server.util.MockMvcUtil.convertToParams; import static com.backend.server.util.MockMvcUtil.jsonPathEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import com.backend.server.api.admin.classroom.dto.AdminClassroomRequest; import com.backend.server.api.admin.classroom.dto.AdminClassroomResponse; import com.backend.server.api.admin.classroom.dto.AdminClassroomSearchRequest; import com.backend.server.api.admin.classroom.dto.AdminClassroomSearchRequest.SearchType; @@ -14,17 +18,19 @@ import com.backend.server.config.ControllerTest; import com.backend.server.model.entity.classroom.Classroom; import com.backend.server.model.repository.classroom.ClassroomRepository; +import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; @ControllerTest @DisplayName("강의실 관리") -public class AdminClassroomTest { +public class AdminClassroomControllerTest { @Autowired private MockMvc mockMvc; @Autowired private ClassroomRepository classroomRepository; @@ -72,4 +78,24 @@ class 강의실_목록_조회_API는 { .andExpect(jsonPathEquals("$.data", List.of(classroomResponse2, classroomResponse1))); } } + + @Test + public void 강의실_등록_API_테스트() throws Exception { + //given + AdminClassroomRequest request1 = 강의실1.등록_요청_생성(); + + //when + ResultActions result1 = mockMvc.perform(post("/api/admin/classroom") + .contentType(MediaType.APPLICATION_JSON) + .content(convertToJson(request1))); + + //then + result1.andExpect(status().isOk()) + .andExpect(jsonPath("$.data").value(1L)); + + Classroom classroom1 = classroomRepository.findById(1L).orElseThrow(() -> + new AssertionError("Classroom not found")); + + 강의실1.엔티티와_비교(classroom1); + } } diff --git a/src/test/java/com/backend/server/fixture/ClassroomFixture.java b/src/test/java/com/backend/server/fixture/ClassroomFixture.java index 69579da6..cc28f958 100644 --- a/src/test/java/com/backend/server/fixture/ClassroomFixture.java +++ b/src/test/java/com/backend/server/fixture/ClassroomFixture.java @@ -1,5 +1,7 @@ package com.backend.server.fixture; +import static org.junit.jupiter.api.Assertions.assertEquals; + import com.backend.server.api.admin.classroom.dto.AdminClassroomRequest; import com.backend.server.model.entity.User; import com.backend.server.model.entity.classroom.Classroom; @@ -23,16 +25,16 @@ public enum ClassroomFixture { 강의실1( "강의실1", "설명1", - DefaultTime.START.getValue(), - DefaultTime.END.getValue(), + LocalTime.of(8, 0), + LocalTime.of(20, 0), null, 1L, Status.AVAILABLE), 강의실2( "강의실2", "설명2", - DefaultTime.START.getValue(), - DefaultTime.END.getValue(), + LocalTime.of(6, 0), + LocalTime.of(18, 0), null, 1L, Status.AVAILABLE); @@ -67,4 +69,13 @@ public enum ClassroomFixture { .managerId(managerId) .build(); } + + public void 엔티티와_비교(Classroom classroom) { + assertEquals(name, classroom.getName()); + assertEquals(description, classroom.getDescription()); + assertEquals(startTime, classroom.getStartTime()); + assertEquals(endTime, classroom.getEndTime()); + assertEquals(imageUrl, classroom.getImageUrl()); + assertEquals(status, classroom.getStatus()); + } }