From a827edfb6b4812d57dfd5d3f0d2eef05b4880085 Mon Sep 17 00:00:00 2001 From: in seong Park <123macanic@naver.com> Date: Mon, 25 Nov 2024 16:37:31 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20ObjectInfo=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20CRUD=20API=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20TestC?= =?UTF-8?q?ode=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/ObjectInfoRegistDTO.java | 20 +++ .../response/ObjectInfoListResponseDTO.java | 15 ++ .../response/ObjectInfoSingleResponseDTO.java | 13 ++ .../channel/entity/ObjectInfo.java | 39 +++++ .../repository/ObjectInfoRepository.java | 9 ++ .../repository/ObjectInfoViewRepository.java | 11 ++ .../channel/service/ObjectInfoService.java | 53 +++++++ .../service/ObjectInfoViewService.java | 24 +++ .../crud/ObjectInfoCRUDTest.java | 143 ++++++++++++++++++ 9 files changed, 327 insertions(+) create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ObjectInfoRegistDTO.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoListResponseDTO.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoSingleResponseDTO.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/entity/ObjectInfo.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoRepository.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoViewRepository.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoViewService.java create mode 100644 src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ObjectInfoRegistDTO.java b/src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ObjectInfoRegistDTO.java new file mode 100644 index 0000000..55506dc --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ObjectInfoRegistDTO.java @@ -0,0 +1,20 @@ +package com.mtvs.devlinkbackend.channel.dto.request; + +import com.mtvs.devlinkbackend.channel.entity.Position; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.stereotype.Service; + +@Getter +@Service +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class ObjectInfoRegistDTO { + private String objectName; + private String objectClassName; + private Position position; + private Position rotator; +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoListResponseDTO.java b/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoListResponseDTO.java new file mode 100644 index 0000000..cab204b --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoListResponseDTO.java @@ -0,0 +1,15 @@ +package com.mtvs.devlinkbackend.channel.dto.response; + +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import lombok.*; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class ObjectInfoListResponseDTO { + private List data; +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoSingleResponseDTO.java b/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoSingleResponseDTO.java new file mode 100644 index 0000000..4a3aae9 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/dto/response/ObjectInfoSingleResponseDTO.java @@ -0,0 +1,13 @@ +package com.mtvs.devlinkbackend.channel.dto.response; + +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class ObjectInfoSingleResponseDTO { + private ObjectInfo data; +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/entity/ObjectInfo.java b/src/main/java/com/mtvs/devlinkbackend/channel/entity/ObjectInfo.java new file mode 100644 index 0000000..1e1b797 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/entity/ObjectInfo.java @@ -0,0 +1,39 @@ +package com.mtvs.devlinkbackend.channel.entity; + +import jakarta.persistence.Id; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.mongodb.core.index.Indexed; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +@NoArgsConstructor +@Document +@Data +public class ObjectInfo { + @Id + private String objectId; + + private String objectName; + + private String objectClassName; + + @NotNull + private Position position; + + @NotNull + private Position rotator; + + @Indexed + private String channelId; + + public ObjectInfo(String objectName, String objectClassName, Position position, Position rotator, String channelId) { + this.objectId = null; + this.objectName = objectName; + this.objectClassName = objectClassName; + this.position = position; + this.rotator = rotator; + this.channelId = channelId; + } +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoRepository.java b/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoRepository.java new file mode 100644 index 0000000..e6b61a3 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoRepository.java @@ -0,0 +1,9 @@ +package com.mtvs.devlinkbackend.channel.repository; + +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ObjectInfoRepository extends MongoRepository { +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoViewRepository.java b/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoViewRepository.java new file mode 100644 index 0000000..8ae93ef --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/repository/ObjectInfoViewRepository.java @@ -0,0 +1,11 @@ +package com.mtvs.devlinkbackend.channel.repository; + +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import com.mtvs.devlinkbackend.channel.entity.TileInfo; +import org.springframework.data.mongodb.repository.MongoRepository; + +import java.util.List; + +public interface ObjectInfoViewRepository extends MongoRepository { + List findAllByChannelId(String channelId); +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java new file mode 100644 index 0000000..0c6c0c8 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java @@ -0,0 +1,53 @@ +package com.mtvs.devlinkbackend.channel.service; + +import com.mtvs.devlinkbackend.channel.dto.request.ObjectInfoRegistDTO; +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoSingleResponseDTO; +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import com.mtvs.devlinkbackend.channel.repository.ObjectInfoRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class ObjectInfoService { + + private final ObjectInfoRepository objectInfoRepository; + + public ObjectInfoService(ObjectInfoRepository objectInfoRepository) { + this.objectInfoRepository = objectInfoRepository; + } + + @Transactional + public ObjectInfoSingleResponseDTO insertObjectInfoByChannelId(ObjectInfoRegistDTO objectInfoRegistDTO, String channelId) { + ObjectInfo objectInfo = objectInfoRepository.save(new ObjectInfo( + objectInfoRegistDTO.getObjectName(), + objectInfoRegistDTO.getObjectClassName(), + objectInfoRegistDTO.getPosition(), + objectInfoRegistDTO.getRotator(), + channelId + )); + + return new ObjectInfoSingleResponseDTO(objectInfo); + } + + @Transactional + public ObjectInfoSingleResponseDTO updateObjectInfoByObjectId( + ObjectInfoRegistDTO objectInfoRegistDTO, String objectId) { + + ObjectInfo objectInfo = objectInfoRepository.findById(objectId).orElse(null); + + if (objectInfo != null) { + objectInfo.setObjectName(objectInfoRegistDTO.getObjectName()); + objectInfo.setObjectClassName(objectInfoRegistDTO.getObjectClassName()); + objectInfo.setPosition(objectInfoRegistDTO.getPosition()); + objectInfo.setRotator(objectInfoRegistDTO.getRotator()); + + return new ObjectInfoSingleResponseDTO(objectInfo); + } + else throw new IllegalArgumentException("잘못된 ObjectInfoId로 수정 요청"); + } + + @Transactional + public void deleteObjectInfoByObjectId(String objectId) { + objectInfoRepository.deleteById(objectId); + } +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoViewService.java b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoViewService.java new file mode 100644 index 0000000..7b220c0 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoViewService.java @@ -0,0 +1,24 @@ +package com.mtvs.devlinkbackend.channel.service; + +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoListResponseDTO; +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import com.mtvs.devlinkbackend.channel.repository.ObjectInfoViewRepository; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ObjectInfoViewService { + + private final ObjectInfoViewRepository objectInfoViewRepository; + + public ObjectInfoViewService(ObjectInfoViewRepository objectInfoViewRepository) { + this.objectInfoViewRepository = objectInfoViewRepository; + } + + public ObjectInfoListResponseDTO findObjectInfoListByChannelId(String channelId) { + List objectInfoList = objectInfoViewRepository.findAllByChannelId(channelId); + + return new ObjectInfoListResponseDTO(objectInfoList); + } +} diff --git a/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java b/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java new file mode 100644 index 0000000..6d02d09 --- /dev/null +++ b/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java @@ -0,0 +1,143 @@ +package com.mtvs.devlinkbackend.crud; + +import com.mtvs.devlinkbackend.channel.dto.request.ObjectInfoRegistDTO; +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoListResponseDTO; +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoSingleResponseDTO; +import com.mtvs.devlinkbackend.channel.entity.ObjectInfo; +import com.mtvs.devlinkbackend.channel.entity.Position; +import com.mtvs.devlinkbackend.channel.repository.ObjectInfoRepository; +import com.mtvs.devlinkbackend.channel.repository.ObjectInfoViewRepository; +import com.mtvs.devlinkbackend.channel.service.ObjectInfoService; +import com.mtvs.devlinkbackend.channel.service.ObjectInfoViewService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +@SpringBootTest +@Transactional +class ObjectInfoCRUDTest { + + @Autowired + private ObjectInfoService objectInfoService; + + @Autowired + private ObjectInfoRepository objectInfoRepository; + @Autowired + private ObjectInfoViewRepository objectInfoViewRepository; + @Autowired + private ObjectInfoViewService objectInfoViewService; + + @Test + void testInsertObjectInfoByChannelId() { + // Given + String channelId = "channel123"; + ObjectInfoRegistDTO requestDTO = new ObjectInfoRegistDTO( + "TestObject", "TestClass", + new Position(10, 20, 30), + new Position(0, 90, 0) + ); + + // When + ObjectInfoSingleResponseDTO objectInfoDTO = objectInfoService.insertObjectInfoByChannelId(requestDTO, channelId); + + // Then + ObjectInfo objectInfo = objectInfoViewRepository.findAllByChannelId(channelId).get(0); + + assertThat(objectInfo.getChannelId()).isEqualTo(channelId); + assertThat(objectInfo.getObjectName()).isEqualTo("TestObject"); + assertThat(objectInfo.getObjectClassName()).isEqualTo("TestClass"); + assertThat(objectInfo.getPosition().getX()).isEqualTo(10); + } + + @Test + void testFindObjectInfoListByChannelId() { + // Given + String channelId = "channel123"; + ObjectInfo objectInfo1 = objectInfoRepository.save(new ObjectInfo( + "Object1", "Class1", + new Position(10, 20, 30), + new Position(0, 0, 0), + channelId + )); + ObjectInfo objectInfo2 = objectInfoRepository.save(new ObjectInfo( + "Object2", "Class2", + new Position(40, 50, 60), + new Position(90, 0, 90), + channelId + )); + + // When + ObjectInfoListResponseDTO responseDTO = objectInfoViewService.findObjectInfoListByChannelId(channelId); + + // Then + List objectInfoList = responseDTO.getData(); + assertThat(objectInfoList).hasSize(2); + assertThat(objectInfoList.get(0).getObjectName()).isEqualTo("Object1"); + assertThat(objectInfoList.get(1).getObjectClassName()).isEqualTo("Class2"); + } + + @Test + void testUpdateObjectInfoByObjectInfoId() { + // Given + String channelId = "channel456"; + ObjectInfo existingObject = objectInfoService.insertObjectInfoByChannelId(new ObjectInfoRegistDTO( + "OldObject", "OldClass", + new Position(15, 25, 35), + new Position(0, 0, 0) + ), channelId).getData(); + + ObjectInfoRegistDTO updateDTO = new ObjectInfoRegistDTO( + "UpdatedObject", "UpdatedClass", + new Position(20, 30, 40), + new Position(45, 45, 45) + ); + + // When + ObjectInfoSingleResponseDTO responseDTO = objectInfoService.updateObjectInfoByObjectId(updateDTO, existingObject.getObjectId()); + + // Then + assertThat(responseDTO.getData().getObjectName()).isEqualTo("UpdatedObject"); + assertThat(responseDTO.getData().getPosition().getX()).isEqualTo(20); + } + + @Test + void testDeleteObjectInfoByObjectInfoId() { + // Given + String channelId = "channel789"; + ObjectInfo objectInfo = objectInfoRepository.save(new ObjectInfo( + "TestObject", "TestClass", + new Position(10, 20, 30), + new Position(0, 90, 0), + channelId + )); + + // When + objectInfoService.deleteObjectInfoByObjectId(objectInfo.getObjectId()); + + // Then + boolean exists = objectInfoRepository.existsById(objectInfo.getObjectId()); + assertThat(exists).isFalse(); + } + + @Test + void testUpdateObjectInfoWithInvalidId() { + // Given + String invalidObjectId = "invalid123"; + ObjectInfoRegistDTO updateDTO = new ObjectInfoRegistDTO( + "UpdatedObject", "UpdatedClass", + new Position(20, 30, 40), + new Position(45, 45, 45) + ); + + // When/Then + assertThatThrownBy(() -> objectInfoService.updateObjectInfoByObjectId(updateDTO, invalidObjectId)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("잘못된 ObjectInfoId로 수정 요청"); + } +} From 1f5c726f93983ab6aa7578af14c8faa5a9734b30 Mon Sep 17 00:00:00 2001 From: in seong Park <123macanic@naver.com> Date: Mon, 25 Nov 2024 16:46:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20ObjectInfo=20CRUD=20API=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ObjectInfoController.java | 80 +++++++++++++++++++ .../channel/service/ObjectInfoService.java | 3 +- .../crud/ObjectInfoCRUDTest.java | 5 +- 3 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/mtvs/devlinkbackend/channel/controller/ObjectInfoController.java diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/controller/ObjectInfoController.java b/src/main/java/com/mtvs/devlinkbackend/channel/controller/ObjectInfoController.java new file mode 100644 index 0000000..2725564 --- /dev/null +++ b/src/main/java/com/mtvs/devlinkbackend/channel/controller/ObjectInfoController.java @@ -0,0 +1,80 @@ +package com.mtvs.devlinkbackend.channel.controller; + +import com.mtvs.devlinkbackend.channel.dto.request.ObjectInfoRegistDTO; +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoListResponseDTO; +import com.mtvs.devlinkbackend.channel.dto.response.ObjectInfoSingleResponseDTO; +import com.mtvs.devlinkbackend.channel.service.ObjectInfoService; +import com.mtvs.devlinkbackend.channel.service.ObjectInfoViewService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/tile/object") +public class ObjectInfoController { + + private final ObjectInfoService objectInfoService; + private final ObjectInfoViewService objectInfoViewService; + + public ObjectInfoController(ObjectInfoService objectInfoService, ObjectInfoViewService objectInfoViewService) { + this.objectInfoService = objectInfoService; + this.objectInfoViewService = objectInfoViewService; + } + + @Operation(summary = "채널 ID로 ObjectInfo 리스트 조회", description = "특정 채널 ID와 연관된 모든 ObjectInfo 엔티티를 조회합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "ObjectInfo 리스트를 성공적으로 조회했습니다.", + content = @Content(schema = @Schema(implementation = ObjectInfoListResponseDTO.class))), + @ApiResponse(responseCode = "404", description = "채널 ID를 찾을 수 없습니다.", content = @Content) + }) + @GetMapping("/{channelId}") + public ResponseEntity getObjectInfoListByChannelId(@PathVariable String channelId) { + ObjectInfoListResponseDTO responseDTO = objectInfoViewService.findObjectInfoListByChannelId(channelId); + return ResponseEntity.ok(responseDTO); + } + + @Operation(summary = "ObjectInfo 생성", description = "새로운 ObjectInfo를 생성합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "201", description = "ObjectInfo가 성공적으로 생성되었습니다.", + content = @Content(schema = @Schema(implementation = ObjectInfoSingleResponseDTO.class))), + @ApiResponse(responseCode = "400", description = "입력 데이터가 유효하지 않습니다.", content = @Content) + }) + @PostMapping("/{channelId}") + public ResponseEntity insertObjectInfo( + @PathVariable String channelId, + @RequestBody ObjectInfoRegistDTO objectInfoRegistDTO) { + ObjectInfoSingleResponseDTO responseDTO = objectInfoService.insertObjectInfoByChannelId(objectInfoRegistDTO, channelId); + return ResponseEntity.status(HttpStatus.CREATED).body(responseDTO); + } + + @Operation(summary = "ObjectInfo 업데이트", description = "기존 ObjectInfo를 업데이트합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "ObjectInfo가 성공적으로 업데이트되었습니다.", + content = @Content(schema = @Schema(implementation = ObjectInfoSingleResponseDTO.class))), + @ApiResponse(responseCode = "404", description = "ObjectInfo ID를 찾을 수 없습니다.", content = @Content) + }) + @PutMapping("/{channelId}/{objectId}") + public ResponseEntity updateObjectInfo( + @PathVariable String objectId, + @PathVariable String channelId, + @RequestBody ObjectInfoRegistDTO objectInfoRegistDTO) { + ObjectInfoSingleResponseDTO responseDTO = objectInfoService.updateObjectInfoByObjectId(objectInfoRegistDTO, objectId, channelId); + return ResponseEntity.ok(responseDTO); + } + + @Operation(summary = "ObjectInfo 삭제", description = "ObjectInfo를 ID로 삭제합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "ObjectInfo가 성공적으로 삭제되었습니다."), + @ApiResponse(responseCode = "404", description = "ObjectInfo ID를 찾을 수 없습니다.", content = @Content) + }) + @DeleteMapping("/{objectId}") + public ResponseEntity deleteObjectInfo(@PathVariable String objectId) { + objectInfoService.deleteObjectInfoByObjectId(objectId); + return ResponseEntity.noContent().build(); + } +} diff --git a/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java index 0c6c0c8..43e9cf7 100644 --- a/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java +++ b/src/main/java/com/mtvs/devlinkbackend/channel/service/ObjectInfoService.java @@ -31,7 +31,7 @@ public ObjectInfoSingleResponseDTO insertObjectInfoByChannelId(ObjectInfoRegistD @Transactional public ObjectInfoSingleResponseDTO updateObjectInfoByObjectId( - ObjectInfoRegistDTO objectInfoRegistDTO, String objectId) { + ObjectInfoRegistDTO objectInfoRegistDTO, String objectId, String channelId) { ObjectInfo objectInfo = objectInfoRepository.findById(objectId).orElse(null); @@ -40,6 +40,7 @@ public ObjectInfoSingleResponseDTO updateObjectInfoByObjectId( objectInfo.setObjectClassName(objectInfoRegistDTO.getObjectClassName()); objectInfo.setPosition(objectInfoRegistDTO.getPosition()); objectInfo.setRotator(objectInfoRegistDTO.getRotator()); + objectInfo.setChannelId(channelId); return new ObjectInfoSingleResponseDTO(objectInfo); } diff --git a/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java b/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java index 6d02d09..7ea31ff 100644 --- a/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java +++ b/src/test/java/com/mtvs/devlinkbackend/crud/ObjectInfoCRUDTest.java @@ -99,7 +99,7 @@ void testUpdateObjectInfoByObjectInfoId() { ); // When - ObjectInfoSingleResponseDTO responseDTO = objectInfoService.updateObjectInfoByObjectId(updateDTO, existingObject.getObjectId()); + ObjectInfoSingleResponseDTO responseDTO = objectInfoService.updateObjectInfoByObjectId(updateDTO, existingObject.getObjectId(), channelId); // Then assertThat(responseDTO.getData().getObjectName()).isEqualTo("UpdatedObject"); @@ -128,6 +128,7 @@ void testDeleteObjectInfoByObjectInfoId() { @Test void testUpdateObjectInfoWithInvalidId() { // Given + String channelId = "channel123"; String invalidObjectId = "invalid123"; ObjectInfoRegistDTO updateDTO = new ObjectInfoRegistDTO( "UpdatedObject", "UpdatedClass", @@ -136,7 +137,7 @@ void testUpdateObjectInfoWithInvalidId() { ); // When/Then - assertThatThrownBy(() -> objectInfoService.updateObjectInfoByObjectId(updateDTO, invalidObjectId)) + assertThatThrownBy(() -> objectInfoService.updateObjectInfoByObjectId(updateDTO, invalidObjectId, channelId)) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("잘못된 ObjectInfoId로 수정 요청"); }