From c6208b5abd3666fe021c385f10f0f70ce370955a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Tue, 9 Apr 2024 18:40:08 +0900 Subject: [PATCH 01/19] =?UTF-8?q?refactor:=20UpdateTakenLectureController?= =?UTF-8?q?=20update=20->=20generate,=20delete=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UpdateTakenLectureController.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java index 9c78b296..2bd255ef 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java @@ -2,14 +2,17 @@ import javax.validation.Valid; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import com.plzgraduate.myongjigraduatebe.core.meta.LoginUser; import com.plzgraduate.myongjigraduatebe.core.meta.WebAdapter; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.UpdateTakenLectureRequest; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.update.UpdateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import lombok.RequiredArgsConstructor; @@ -17,13 +20,18 @@ @RequestMapping("/api/v1/taken-lectures") @RequiredArgsConstructor public class UpdateTakenLectureController implements UpdateTakenLectureApiPresentation { - private final UpdateTakenLectureUseCase updateTakenLectureUseCase; - @PostMapping("/update") - public void updateTakenLectures(@LoginUser Long userId, - @Valid @RequestBody UpdateTakenLectureRequest updateTakenLectureRequest) { - updateTakenLectureUseCase.modifyTakenLecture(userId, updateTakenLectureRequest.getDeletedTakenLectures(), - updateTakenLectureRequest.getAddedTakenLectures()); + private final GenerateTakenLectureUseCase generateTakenLectureUseCase; + private final DeleteTakenLectureUseCase deleteTakenLectureUseCase; + + @PostMapping() + public void generateTakenLecture(@LoginUser Long userId, + @Valid @RequestBody GenerateTakenLectureRequest generateTakenLectureRequest) { + generateTakenLectureUseCase.generateTakenLecture(userId, generateTakenLectureRequest.getLectureId()); } + @DeleteMapping("{taken-lecture-id}") + public void deleteTakenLecture(@Valid @PathVariable("taken-lecture-id") Long takenLectureId) { + deleteTakenLectureUseCase.deleteTakenLecture(takenLectureId); + } } From f788d4076b0979278ac0d4cc6a66d42dd41ca6ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Tue, 9 Apr 2024 18:42:42 +0900 Subject: [PATCH 02/19] =?UTF-8?q?feat:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=82=AD=EC=A0=9C=20UseCase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usecase/delete/DeleteTakenLectureUseCase.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java new file mode 100644 index 00000000..4539a6fa --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java @@ -0,0 +1,5 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete; + +public interface DeleteTakenLectureUseCase { + void deleteTakenLecture(Long deletedTakenLectureId); +} From 149eeef5541cb9f342378a569da7ee5284d43bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Tue, 9 Apr 2024 18:42:54 +0900 Subject: [PATCH 03/19] =?UTF-8?q?feat:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=82=AD=EC=A0=9C=20Service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delete/DeleteTakenLectureServiceById.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java new file mode 100644 index 00000000..dd1bd382 --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java @@ -0,0 +1,22 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.delete; + +import org.springframework.transaction.annotation.Transactional; + +import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; + +import lombok.RequiredArgsConstructor; + +@UseCase +@Transactional +@RequiredArgsConstructor +public class DeleteTakenLectureServiceById implements DeleteTakenLectureUseCase { + + private final DeleteTakenLecturePort deleteTakenLecturePort; + + @Override + public void deleteTakenLecture(Long deletedTakenLectureId) { + deleteTakenLecturePort.deleteTakenLectureById(deletedTakenLectureId); + } +} From 813825846cbf5a5e1f78bd0ebe6f30b5c308628a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Tue, 9 Apr 2024 18:43:48 +0900 Subject: [PATCH 04/19] =?UTF-8?q?refactor:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=82=AD=EC=A0=9C=20Port=20id=20=EB=8B=A8=EA=B1=B4?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../takenlecture/application/port/DeleteTakenLecturePort.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/DeleteTakenLecturePort.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/DeleteTakenLecturePort.java index c6d8d796..a507487c 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/DeleteTakenLecturePort.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/DeleteTakenLecturePort.java @@ -7,5 +7,5 @@ public interface DeleteTakenLecturePort { void deleteAllTakenLecturesByUser(User user); - void deleteTakenLecturesByIds(List deleteIds); + void deleteTakenLectureById(Long deleteId); } From 37cb39a34b52ee869d8e24398e17a05733b325b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Tue, 9 Apr 2024 18:50:00 +0900 Subject: [PATCH 05/19] =?UTF-8?q?refactor:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=82=AD=EC=A0=9C=20Adapter=20id=20=EB=8B=A8?= =?UTF-8?q?=EA=B1=B4=20=EC=82=AD=EC=A0=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/persistence/TakenLecturePersistenceAdapter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java index 55751fa4..9d87c8f1 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java @@ -58,7 +58,7 @@ public void deleteAllTakenLecturesByUser(User user) { } @Override - public void deleteTakenLecturesByIds(List deleteIds) { - takenLectureRepository.deleteAllByIdInBatch(deleteIds); + public void deleteTakenLectureById(Long deleteId) { + takenLectureRepository.deleteById(deleteId); } } From cc053282fbf0cef86ebaa0b1ceb88f9bef5e878c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:12:24 +0900 Subject: [PATCH 06/19] =?UTF-8?q?feat:=20application=20=EB=A0=88=EB=B2=A8?= =?UTF-8?q?=20=EC=88=98=EA=B0=95=20=EA=B3=BC=EB=AA=A9=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/GenerateTakenLectureRequest.java | 19 ++++++++ .../save/GenerateTakenLectureService.java | 39 ++++++++++++++++ .../update/UpdateTakenLectureService.java | 44 ------------------- .../save/GenerateTakenLectureUseCase.java | 6 +++ 4 files changed, 64 insertions(+), 44 deletions(-) create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureService.java create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java new file mode 100644 index 00000000..a21e3b32 --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java @@ -0,0 +1,19 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +public class GenerateTakenLectureRequest { + + @Schema(name = "lectureId", example = "103") + private Long lectureId; + + @Builder + private GenerateTakenLectureRequest(Long lectureId) { + this.lectureId = lectureId; + } +} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java new file mode 100644 index 00000000..2b2443a9 --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java @@ -0,0 +1,39 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.save; + +import org.springframework.transaction.annotation.Transactional; + +import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; +import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; +import com.plzgraduate.myongjigraduatebe.lecture.application.port.FindLecturePort; +import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; +import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; +import com.plzgraduate.myongjigraduatebe.user.domain.model.User; + +import lombok.RequiredArgsConstructor; + +@UseCase +@Transactional +@RequiredArgsConstructor +public class GenerateTakenLectureService implements GenerateTakenLectureUseCase { + + private final FindUserUseCase findUserUseCase; + private final FindLecturePort findLecturePort; + private final SaveTakenLecturePort saveTakenLecturePort; + private final GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; + + @Override + public void generateTakenLecture(final Long userId, final Long addedTakenLectureId) { + User user = findUserUseCase.findUserById(userId); + Lecture lecture = findLecturePort.findLectureById(addedTakenLectureId); + addCustomTakenLecture(user, lecture); + generateOrModifyCompletedCreditUseCase.generateOrModifyCompletedCredit(user); + } + + private void addCustomTakenLecture(User user, Lecture addedLecture) { + TakenLecture addedTakenLecture = TakenLecture.custom(user, addedLecture); + saveTakenLecturePort.saveTakenLecture(addedTakenLecture); + } +} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureService.java deleted file mode 100644 index 3f2ccea9..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureService.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.update; - -import java.util.List; -import java.util.stream.Collectors; - -import org.springframework.transaction.annotation.Transactional; - -import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; -import com.plzgraduate.myongjigraduatebe.lecture.application.usecase.FindLecturesUseCase; -import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.update.UpdateTakenLectureUseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; -import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; -import com.plzgraduate.myongjigraduatebe.user.domain.model.User; - -import lombok.RequiredArgsConstructor; - -@UseCase -@Transactional -@RequiredArgsConstructor -class UpdateTakenLectureService implements UpdateTakenLectureUseCase { - - private final FindUserUseCase findUserUseCase; - private final FindLecturesUseCase findLecturesUseCase; - private final DeleteTakenLecturePort deleteTakenLecturePort; - private final SaveTakenLecturePort saveTakenLecturePort; - - @Override - public void modifyTakenLecture(Long userId, List deletedTakenLectureIds, List addedTakenLectureIds) { - User user = findUserUseCase.findUserById(userId); - deleteTakenLecturePort.deleteTakenLecturesByIds(deletedTakenLectureIds); - List addedLectures = findLecturesUseCase.findLecturesByIds(addedTakenLectureIds); - addCustomTakenLectures(user, addedLectures); - } - - private void addCustomTakenLectures(User user, List addedLectures) { - List addedTakenLectures = addedLectures.stream() - .map(addedLecture -> TakenLecture.custom(user, addedLecture)) - .collect(Collectors.toList()); - saveTakenLecturePort.saveTakenLectures(addedTakenLectures); - } -} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java new file mode 100644 index 00000000..fd822886 --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java @@ -0,0 +1,6 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save; + + +public interface GenerateTakenLectureUseCase { + void generateTakenLecture(Long userId, Long addedTakenLectureId); +} From 56dab7bdb83ba0a59a35012827bad314667e8b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:31:38 +0900 Subject: [PATCH 07/19] =?UTF-8?q?feat:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=A0=80=EC=9E=A5=20=EB=A1=9C=EC=A7=81=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 --- .../application/port/SaveTakenLecturePort.java | 2 ++ .../persistence/TakenLecturePersistenceAdapter.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/SaveTakenLecturePort.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/SaveTakenLecturePort.java index 88006c26..8dc5e3d6 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/SaveTakenLecturePort.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/port/SaveTakenLecturePort.java @@ -7,4 +7,6 @@ public interface SaveTakenLecturePort { void saveTakenLectures(List takenLectures); + + void saveTakenLecture(TakenLecture takenLecture); } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java index 9d87c8f1..054d7035 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapter.java @@ -5,14 +5,14 @@ import java.util.stream.Collectors; import com.plzgraduate.myongjigraduatebe.core.meta.PersistenceAdapter; -import com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.entity.TakenLectureJpaEntity; -import com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.mapper.TakenLectureMapper; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.FindTakenLecturePort; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; -import com.plzgraduate.myongjigraduatebe.user.infrastructure.adapter.persistence.entity.UserJpaEntity; +import com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.entity.TakenLectureJpaEntity; +import com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.mapper.TakenLectureMapper; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; +import com.plzgraduate.myongjigraduatebe.user.infrastructure.adapter.persistence.entity.UserJpaEntity; import lombok.RequiredArgsConstructor; @@ -52,6 +52,12 @@ public void saveTakenLectures(List takenLectures) { takenLectureRepository.saveAll(takenLecturesJpaEntities); } + @Override + public void saveTakenLecture(final TakenLecture takenLecture) { + TakenLectureJpaEntity takenLectureJpaEntity = takenLectureMapper.mapToJpaEntity(takenLecture); + takenLectureRepository.save(takenLectureJpaEntity); + } + @Override public void deleteAllTakenLecturesByUser(User user) { takenLectureRepository.deleteAllByUser(takenLectureMapper.mapToUserJpaEntity(user)); From 218fd727ebc62a1b34be736593209a7988181f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:32:36 +0900 Subject: [PATCH 08/19] =?UTF-8?q?feat:=20=EA=B3=BC=EB=AA=A9=20id=EC=97=90?= =?UTF-8?q?=20=EC=9D=98=ED=95=9C=20=EA=B3=BC=EB=AA=A9=20=EB=8B=A8=EA=B1=B4?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lecture/application/port/FindLecturePort.java | 2 ++ .../persistence/LecturePersistenceAdapter.java | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/application/port/FindLecturePort.java b/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/application/port/FindLecturePort.java index 2d1f97a4..f65700b8 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/application/port/FindLecturePort.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/application/port/FindLecturePort.java @@ -9,4 +9,6 @@ public interface FindLecturePort { List findLecturesByLectureCodes(List lectureCodes); List findLecturesByIds(List lectureIds); + + Lecture findLectureById(Long lectureId); } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapter.java b/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapter.java index 7cce0595..334f7652 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapter.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapter.java @@ -4,13 +4,13 @@ import java.util.stream.Collectors; import com.plzgraduate.myongjigraduatebe.core.meta.PersistenceAdapter; +import com.plzgraduate.myongjigraduatebe.lecture.application.port.FindLecturePort; +import com.plzgraduate.myongjigraduatebe.lecture.application.port.SearchLecturePort; +import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.entity.LectureJpaEntity; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.mapper.LectureMapper; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.repository.LectureQueryRepository; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.repository.LectureRepository; -import com.plzgraduate.myongjigraduatebe.lecture.application.port.FindLecturePort; -import com.plzgraduate.myongjigraduatebe.lecture.application.port.SearchLecturePort; -import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import lombok.RequiredArgsConstructor; @@ -18,6 +18,7 @@ @RequiredArgsConstructor public class LecturePersistenceAdapter implements FindLecturePort, SearchLecturePort { + private final static String NOT_FOUND_LECTURE_ERROR_MESSAGE = "해당 과목을 찾을 수 없습니다."; private final LectureQueryRepository lectureQueryRepository; private final LectureRepository lectureRepository; private final LectureMapper lectureMapper; @@ -38,6 +39,13 @@ public List findLecturesByIds(List lectureIds) { .collect(Collectors.toList()); } + @Override + public Lecture findLectureById(final Long lectureId) { + LectureJpaEntity lectureJpaEntity = lectureRepository.findById(lectureId) + .orElseThrow(() -> new IllegalArgumentException(NOT_FOUND_LECTURE_ERROR_MESSAGE)); + return lectureMapper.mapToLectureModel(lectureJpaEntity); + } + @Override public List searchLectureByNameOrCode(String type, String keyword) { List lectureJpaEntities = lectureQueryRepository.searchByNameOrCode(type, keyword); From a69dbd504b1a7115160d4be313a8b5e5f7941fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:33:11 +0900 Subject: [PATCH 09/19] =?UTF-8?q?refactor:=20UpdateTakenLectureController?= =?UTF-8?q?=20update=20->=20generate,=20delete=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UpdateTakenLectureApiPresentation.java | 11 +++++++++-- .../api/UpdateTakenLectureController.java | 7 ++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java index 55d4fc8c..de32742d 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java @@ -2,10 +2,11 @@ import javax.validation.Valid; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import com.plzgraduate.myongjigraduatebe.core.meta.LoginUser; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.UpdateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -14,5 +15,11 @@ public interface UpdateTakenLectureApiPresentation { @Parameter(name = "userId", description = "로그인한 유저의 PK값") - void updateTakenLectures(@LoginUser Long userId, @Valid @RequestBody UpdateTakenLectureRequest updateTakenLectureRequest); + void generateTakenLecture(@LoginUser Long userId, + @Valid @RequestBody GenerateTakenLectureRequest generateTakenLectureRequest); + + @Parameter(name = "userId", description = "로그인한 유저의 PK값") + @Parameter(name = "takenLectureId", description = "삭제할 수강 과목 ID") + void deleteTakenLecture(@LoginUser Long userId, + @Valid @PathVariable("taken-lecture-id") Long takenLectureId); } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java index 2bd255ef..f91c739d 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java @@ -11,8 +11,8 @@ import com.plzgraduate.myongjigraduatebe.core.meta.LoginUser; import com.plzgraduate.myongjigraduatebe.core.meta.WebAdapter; import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; import lombok.RequiredArgsConstructor; @@ -31,7 +31,8 @@ public void generateTakenLecture(@LoginUser Long userId, } @DeleteMapping("{taken-lecture-id}") - public void deleteTakenLecture(@Valid @PathVariable("taken-lecture-id") Long takenLectureId) { - deleteTakenLectureUseCase.deleteTakenLecture(takenLectureId); + public void deleteTakenLecture(@LoginUser Long userId, + @Valid @PathVariable("taken-lecture-id") Long takenLectureId) { + deleteTakenLectureUseCase.deleteTakenLecture(userId, takenLectureId); } } From b111dad2e0a65479659999c8602734d4e39c7e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:33:42 +0900 Subject: [PATCH 10/19] =?UTF-8?q?refactor:=20UpdateTakenLectureController?= =?UTF-8?q?=20update=20->=20generate,=20delete=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/UpdateTakenLectureRequest.java | 26 ------- .../update/UpdateTakenLectureUseCase.java | 10 --- .../update/UpdateTakenLectureServiceTest.java | 73 ------------------- 3 files changed, 109 deletions(-) delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/UpdateTakenLectureRequest.java delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/update/UpdateTakenLectureUseCase.java delete mode 100644 src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureServiceTest.java diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/UpdateTakenLectureRequest.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/UpdateTakenLectureRequest.java deleted file mode 100644 index 0836bf63..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/UpdateTakenLectureRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request; - -import java.util.List; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@NoArgsConstructor -public class UpdateTakenLectureRequest { - - @Schema(name = "deletedTakenLectures", example = "102, 2") - private List deletedTakenLectures; - - @Schema(name = "addedTakenLectures", example = "103, 104") - private List addedTakenLectures; - - @Builder - private UpdateTakenLectureRequest(List deletedTakenLectures, List addedTakenLectures) { - this.deletedTakenLectures = deletedTakenLectures; - this.addedTakenLectures = addedTakenLectures; - } - -} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/update/UpdateTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/update/UpdateTakenLectureUseCase.java deleted file mode 100644 index 5a193906..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/update/UpdateTakenLectureUseCase.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.update; - -import java.util.List; - -import lombok.extern.java.Log; - -public interface UpdateTakenLectureUseCase { - - void modifyTakenLecture(Long userId, List deletedTakenLectureIds, List addedTakenLectureIds); -} diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureServiceTest.java deleted file mode 100644 index 28d35f77..00000000 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/update/UpdateTakenLectureServiceTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.update; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static org.mockito.BDDMockito.given; -import static org.mockito.BDDMockito.then; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import com.plzgraduate.myongjigraduatebe.lecture.application.usecase.FindLecturesUseCase; -import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; -import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; -import com.plzgraduate.myongjigraduatebe.user.domain.model.User; - -@ExtendWith(MockitoExtension.class) -class UpdateTakenLectureServiceTest { - @Mock - private FindUserUseCase findUserUseCase; - @Mock - private FindLecturesUseCase findLecturesUseCase; - @Mock - private DeleteTakenLecturePort deleteTakenLecturePort; - @Mock - private SaveTakenLecturePort saveTakenLecturePort; - @InjectMocks - private UpdateTakenLectureService updateTakenLectureService; - - @DisplayName("수강과목을 삭제하고 새로운 수강정보를 추가한다.") - @Test - void modifyTakenLecture() { - //given - User user = User.builder().id(1L).build(); - Lecture lecture1 = createLecture(1L); - Lecture lecture2 = createLecture(2L); - given(findLecturesUseCase.findLecturesByIds(List.of(1L, 2L))) - .willReturn(new ArrayList<>(List.of(lecture1, lecture2))); - - ArgumentCaptor> takenLectureListCaptor = ArgumentCaptor.forClass(List.class); - //when - updateTakenLectureService.modifyTakenLecture(user.getId(), List.of(21L, 22L), List.of(1L, 2L)); - - //then - then(deleteTakenLecturePort).should().deleteTakenLecturesByIds(List.of(21L, 22L)); - then(saveTakenLecturePort).should().saveTakenLectures(takenLectureListCaptor.capture()); - - List captureLectures = takenLectureListCaptor.getValue(); - assertThat(captureLectures).hasSize(2) - .extracting("year", "semester") - .containsExactlyInAnyOrder( - tuple(2099, null), - tuple(2099, null) - ); - } - - - private Lecture createLecture(Long id) { - return Lecture.builder() - .id(id) - .build(); - } -} From 23047417b76a797b8151b02de6b35d6e9c6a701c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:34:11 +0900 Subject: [PATCH 11/19] =?UTF-8?q?feat:=20=EC=88=98=EA=B0=95=EA=B3=BC?= =?UTF-8?q?=EB=AA=A9=20=EC=82=AD=EC=A0=9C=20=EB=A1=9C=EC=A7=81=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 --- .../service/delete/DeleteTakenLectureServiceById.java | 9 ++++++++- .../usecase/delete/DeleteTakenLectureUseCase.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java index dd1bd382..484a3895 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java @@ -2,9 +2,12 @@ import org.springframework.transaction.annotation.Transactional; +import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; +import com.plzgraduate.myongjigraduatebe.user.domain.model.User; import lombok.RequiredArgsConstructor; @@ -13,10 +16,14 @@ @RequiredArgsConstructor public class DeleteTakenLectureServiceById implements DeleteTakenLectureUseCase { + private final FindUserUseCase findUserUseCase; private final DeleteTakenLecturePort deleteTakenLecturePort; + private final GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; @Override - public void deleteTakenLecture(Long deletedTakenLectureId) { + public void deleteTakenLecture(Long userId, Long deletedTakenLectureId) { + User user = findUserUseCase.findUserById(userId); deleteTakenLecturePort.deleteTakenLectureById(deletedTakenLectureId); + generateOrModifyCompletedCreditUseCase.generateOrModifyCompletedCredit(user); } } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java index 4539a6fa..2052808d 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java @@ -1,5 +1,5 @@ package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete; public interface DeleteTakenLectureUseCase { - void deleteTakenLecture(Long deletedTakenLectureId); + void deleteTakenLecture(Long userId, Long deletedTakenLectureId); } From eaecea5c38cc3383bd45c2685d489598453eddb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:36:39 +0900 Subject: [PATCH 12/19] =?UTF-8?q?test:=20spring=20test=20container=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9=EC=9D=84=20=EC=9C=84=ED=95=9C=20=20test=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/WebAdaptorTestSupport.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java b/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java index 66ba82b3..971e304c 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java @@ -1,6 +1,6 @@ package com.plzgraduate.myongjigraduatebe.support; -import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; @@ -32,8 +32,9 @@ import com.plzgraduate.myongjigraduatebe.parsing.application.usecase.ParsingTextUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.api.FindTakenLectureController; import com.plzgraduate.myongjigraduatebe.takenlecture.api.UpdateTakenLectureController; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.find.FindTakenLectureUseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.update.UpdateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.user.api.findauthid.FindAuthIdController; import com.plzgraduate.myongjigraduatebe.user.api.finduserinformation.FindUserInformationController; import com.plzgraduate.myongjigraduatebe.user.api.resetpassword.ResetPasswordController; @@ -96,7 +97,10 @@ public abstract class WebAdaptorTestSupport { protected SearchLectureUseCase searchLectureUseCase; @MockBean - protected UpdateTakenLectureUseCase updateTakenLectureUseCase; + protected DeleteTakenLectureUseCase deleteTakenLectureUseCase; + + @MockBean + protected GenerateTakenLectureUseCase generateTakenLectureUseCase; @MockBean protected FindTakenLectureUseCase findTakenLectureUseCase; From ceaf1c761fb06c2b6b5e1bcb9f07a5663d63026b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:37:04 +0900 Subject: [PATCH 13/19] =?UTF-8?q?test:=20UpdateTakenLectureController=20up?= =?UTF-8?q?date=20->=20generate,=20delete=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= =?UTF-8?q?=EB=A1=9C=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LecturePersistenceAdapterTest.java | 26 +++++++-- .../UpdateTakenLectureControllerTest.java | 44 ++++++++------ .../DeleteTakenLectureServiceByIdTest.java | 44 ++++++++++++++ .../save/GenerateTakenLectureServiceTest.java | 58 +++++++++++++++++++ .../TakenLecturePersistenceAdapterTest.java | 53 +++++++++++++++++ 5 files changed, 204 insertions(+), 21 deletions(-) create mode 100644 src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java create mode 100644 src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java create mode 100644 src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapterTest.java diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapterTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapterTest.java index 1861c4fd..9f6be87d 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapterTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/lecture/infrastructure/adapter/persistence/LecturePersistenceAdapterTest.java @@ -1,7 +1,6 @@ package com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; +import static org.assertj.core.api.Assertions.*; import java.util.ArrayList; import java.util.List; @@ -11,11 +10,10 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.LecturePersistenceAdapter; +import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.entity.LectureJpaEntity; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.repository.LectureQueryRepository; import com.plzgraduate.myongjigraduatebe.lecture.infrastructure.adapter.persistence.repository.LectureRepository; -import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.support.PersistenceTestSupport; class LecturePersistenceAdapterTest extends PersistenceTestSupport { @@ -88,6 +86,26 @@ void findLecturesByIds() { ); } + @DisplayName("아이디로 과목을 찾는다.") + @Test + void findLectureById() { + //given + String lectureCode = "code"; + String lectureName = "name"; + LectureJpaEntity lectureJpaEntity = lectureRepository.save(createLectureJpaEntity(lectureCode, lectureName)); + + //when + Lecture lecture = lecturePersistenceAdapter.findLectureById(lectureJpaEntity.getId()); + + //then + Long expectedLectureId = lectureJpaEntity.getId(); + String expectedLectureCode = "code"; + String expectedLectureName = "name"; + assertThat(lecture.getId()).isEqualTo(expectedLectureId); + assertThat(lecture.getLectureCode()).isEqualTo(expectedLectureCode); + assertThat(lecture.getName()).isEqualTo(expectedLectureName); + } + @DisplayName("과목명이나 과목코드를 포함하는 과목들을 찾는다.") @Test void searchLectureByNameOrCode() { diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java index 886bc96b..4529c813 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java @@ -1,11 +1,9 @@ package com.plzgraduate.myongjigraduatebe.takenlecture.api.update; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import java.util.List; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -13,29 +11,41 @@ import com.plzgraduate.myongjigraduatebe.support.WebAdaptorTestSupport; import com.plzgraduate.myongjigraduatebe.support.WithMockAuthenticationUser; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.UpdateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; class UpdateTakenLectureControllerTest extends WebAdaptorTestSupport { @WithMockAuthenticationUser - @DisplayName("수강과목을 수정한다.") + @DisplayName("수강과목을 생성한다.") @Test - void updateTakenLectures() throws Exception{ + void generateTakenLecture() throws Exception { //given - UpdateTakenLectureRequest request = UpdateTakenLectureRequest.builder() - .addedTakenLectures(List.of(1L, 2L)) - .deletedTakenLectures(List.of(1L, 2L)) + GenerateTakenLectureRequest request = GenerateTakenLectureRequest.builder() + .lectureId(1L) .build(); //when //then mockMvc.perform( - post("/api/v1/taken-lectures/update") - .content(objectMapper.writeValueAsString(request)) - .contentType(MediaType.APPLICATION_JSON) - .with(csrf()) - ) + post("/api/v1/taken-lectures") + .content(objectMapper.writeValueAsString(request)) + .contentType(MediaType.APPLICATION_JSON) + .with(csrf()) + ) .andDo(print()) .andExpect(status().isOk()); } + @WithMockAuthenticationUser + @DisplayName("수강과목을 삭제한다.") + @Test + void deleteTakenLecture() throws Exception { + //given + Long takenLectureId = 1L; + + //when //then + mockMvc.perform( + delete("/api/v1/taken-lectures/{taken-lecture-id}", takenLectureId)) + .andDo(print()) + .andExpect(status().isOk()); + } } diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java new file mode 100644 index 00000000..63218b1c --- /dev/null +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java @@ -0,0 +1,44 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.delete; + +import static org.mockito.BDDMockito.*; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; +import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; + +@ExtendWith(MockitoExtension.class) +class DeleteTakenLectureServiceByIdTest { + + @Mock + private FindUserUseCase findUserUseCase; + + @Mock + private DeleteTakenLecturePort deleteTakenLecturePort; + + @Mock + private GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; + + @InjectMocks + private DeleteTakenLectureServiceById deleteTakenLectureServiceById; + + @DisplayName("수강과목을 삭제한다.") + @Test + void deleteTakenLecture() { + //given + Long userId = 1L; + Long deletedTakenLectureId = 102L; + + //when + deleteTakenLectureServiceById.deleteTakenLecture(userId, deletedTakenLectureId); + + //then + then(deleteTakenLecturePort).should().deleteTakenLectureById(102L); + } +} \ No newline at end of file diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java new file mode 100644 index 00000000..8c6f190c --- /dev/null +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java @@ -0,0 +1,58 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.save; + +import static org.mockito.BDDMockito.*; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; +import com.plzgraduate.myongjigraduatebe.lecture.application.port.FindLecturePort; +import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; +import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; +import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; +import com.plzgraduate.myongjigraduatebe.user.domain.model.User; + +@ExtendWith(MockitoExtension.class) +class GenerateTakenLectureServiceTest { + @Mock + private FindUserUseCase findUserUseCase; + @Mock + private FindLecturePort findLecturePort; + @Mock + private SaveTakenLecturePort saveTakenLecturePort; + @Mock + private GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; + @InjectMocks + private GenerateTakenLectureService generateTakenLectureService; + + @DisplayName("새로운 custom 과목을 추가한다.") + @Test + void saveTakenLecture() { + //given + User user = User.builder().id(1L).build(); + Lecture lecture = createLecture(1L); + given(findLecturePort.findLectureById(1L)) + .willReturn(lecture); + + ArgumentCaptor takenLectureCaptor = ArgumentCaptor.forClass(TakenLecture.class); + + //when + generateTakenLectureService.generateTakenLecture(user.getId(), 1L); + generateOrModifyCompletedCreditUseCase.generateOrModifyCompletedCredit(user); + + //then + then(saveTakenLecturePort).should().saveTakenLecture(takenLectureCaptor.capture()); + } + + private Lecture createLecture(Long id) { + return Lecture.builder() + .id(id) + .build(); + } +} diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapterTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapterTest.java new file mode 100644 index 00000000..87817d8c --- /dev/null +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/TakenLecturePersistenceAdapterTest.java @@ -0,0 +1,53 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Optional; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import com.plzgraduate.myongjigraduatebe.support.PersistenceTestSupport; +import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.Semester; +import com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.entity.TakenLectureJpaEntity; + +class TakenLecturePersistenceAdapterTest extends PersistenceTestSupport { + + @Autowired + private TakenLectureRepository takenLectureRepository; + + @Autowired + private TakenLecturePersistenceAdapter takenLecturePersistenceAdapter; + + @AfterEach + void afterEach() { + this.takenLectureRepository.deleteAllInBatch(); + this.entityManager + .createNativeQuery("ALTER TABLE lecture auto_increment 1") + .executeUpdate(); + } + + @DisplayName("수강과목을 삭제합니다.") + @Test + public void deleteTakenLectureById() throws Exception { + // given + TakenLectureJpaEntity takenLectureJpaEntity = createTakenLectureJpaEntity(2099, Semester.FIRST); + takenLectureRepository.save(takenLectureJpaEntity); + + // when + takenLecturePersistenceAdapter.deleteTakenLectureById(takenLectureJpaEntity.getId()); + + // then + Optional result = takenLectureRepository.findById(takenLectureJpaEntity.getId()); + assertThat(result.isPresent()).isFalse(); + } + + private TakenLectureJpaEntity createTakenLectureJpaEntity(Integer year, Semester semester) { + return TakenLectureJpaEntity.builder() + .year(year) + .semester(semester) + .build(); + } +} \ No newline at end of file From eabca882a9971a13c9744c8758918999879a6c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 10 Apr 2024 18:37:31 +0900 Subject: [PATCH 14/19] =?UTF-8?q?refactor:=20Semester=20=ED=83=80=EC=9E=85?= =?UTF-8?q?=20String=EC=9C=BC=EB=A1=9C=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/persistence/entity/TakenLectureJpaEntity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/entity/TakenLectureJpaEntity.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/entity/TakenLectureJpaEntity.java index 521624b1..73dbd543 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/entity/TakenLectureJpaEntity.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/infrastructure/adapter/persistence/entity/TakenLectureJpaEntity.java @@ -1,6 +1,8 @@ package com.plzgraduate.myongjigraduatebe.takenlecture.infrastructure.adapter.persistence.entity; import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -37,6 +39,7 @@ public class TakenLectureJpaEntity extends TimeBaseEntity { private Integer year; + @Enumerated(EnumType.STRING) private Semester semester; } From 436ace8ca241997929d3cbf9663fcdae1bfbb118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Thu, 11 Apr 2024 11:24:28 +0900 Subject: [PATCH 15/19] =?UTF-8?q?refactor:=20Controller=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UpdateTakenLectureController.java | 19 ++++++++++--------- .../UpdateTakenLectureControllerTest.java | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java index f91c739d..72cb17e3 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureController.java @@ -10,9 +10,9 @@ import com.plzgraduate.myongjigraduatebe.core.meta.LoginUser; import com.plzgraduate.myongjigraduatebe.core.meta.WebAdapter; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateCustomizedTakenLectureRequest; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateCustomizedTakenLectureUseCase; import lombok.RequiredArgsConstructor; @@ -21,18 +21,19 @@ @RequiredArgsConstructor public class UpdateTakenLectureController implements UpdateTakenLectureApiPresentation { - private final GenerateTakenLectureUseCase generateTakenLectureUseCase; + private final GenerateCustomizedTakenLectureUseCase generateCustomizedTakenLectureUseCase; private final DeleteTakenLectureUseCase deleteTakenLectureUseCase; @PostMapping() - public void generateTakenLecture(@LoginUser Long userId, - @Valid @RequestBody GenerateTakenLectureRequest generateTakenLectureRequest) { - generateTakenLectureUseCase.generateTakenLecture(userId, generateTakenLectureRequest.getLectureId()); + public void generateCustomizedTakenLecture(@LoginUser Long userId, + @Valid @RequestBody GenerateCustomizedTakenLectureRequest generateCustomizedTakenLectureRequest) { + generateCustomizedTakenLectureUseCase.generateCustomizedTakenLecture(userId, + generateCustomizedTakenLectureRequest.getLectureId()); } - @DeleteMapping("{taken-lecture-id}") - public void deleteTakenLecture(@LoginUser Long userId, - @Valid @PathVariable("taken-lecture-id") Long takenLectureId) { + @DeleteMapping("{takenLectureId}") + public void deleteCustomizedTakenLecture(@LoginUser Long userId, + @Valid @PathVariable Long takenLectureId) { deleteTakenLectureUseCase.deleteTakenLecture(userId, takenLectureId); } } diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java index 4529c813..99245006 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/update/UpdateTakenLectureControllerTest.java @@ -11,7 +11,7 @@ import com.plzgraduate.myongjigraduatebe.support.WebAdaptorTestSupport; import com.plzgraduate.myongjigraduatebe.support.WithMockAuthenticationUser; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateCustomizedTakenLectureRequest; class UpdateTakenLectureControllerTest extends WebAdaptorTestSupport { @@ -20,7 +20,7 @@ class UpdateTakenLectureControllerTest extends WebAdaptorTestSupport { @Test void generateTakenLecture() throws Exception { //given - GenerateTakenLectureRequest request = GenerateTakenLectureRequest.builder() + GenerateCustomizedTakenLectureRequest request = GenerateCustomizedTakenLectureRequest.builder() .lectureId(1L) .build(); From f65166288050fe8e5bc624fa49e1335d601e27cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Thu, 11 Apr 2024 11:24:42 +0900 Subject: [PATCH 16/19] =?UTF-8?q?refactor:=20Controller=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UpdateTakenLectureApiPresentation.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java index de32742d..ce892149 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/UpdateTakenLectureApiPresentation.java @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestBody; import com.plzgraduate.myongjigraduatebe.core.meta.LoginUser; -import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateTakenLectureRequest; +import com.plzgraduate.myongjigraduatebe.takenlecture.api.dto.request.GenerateCustomizedTakenLectureRequest; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -15,11 +15,11 @@ public interface UpdateTakenLectureApiPresentation { @Parameter(name = "userId", description = "로그인한 유저의 PK값") - void generateTakenLecture(@LoginUser Long userId, - @Valid @RequestBody GenerateTakenLectureRequest generateTakenLectureRequest); + void generateCustomizedTakenLecture(@LoginUser Long userId, + @Valid @RequestBody GenerateCustomizedTakenLectureRequest generateCustomizedTakenLectureRequest); @Parameter(name = "userId", description = "로그인한 유저의 PK값") @Parameter(name = "takenLectureId", description = "삭제할 수강 과목 ID") - void deleteTakenLecture(@LoginUser Long userId, - @Valid @PathVariable("taken-lecture-id") Long takenLectureId); + void deleteCustomizedTakenLecture(@LoginUser Long userId, + @Valid @PathVariable Long takenLectureId); } From 163c527615ea209c3b9f2cb8f0e3f2090bbe50c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Thu, 11 Apr 2024 11:30:26 +0900 Subject: [PATCH 17/19] =?UTF-8?q?refactor:=20path=20variable=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20camel=20case=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/api/findauthid/FindAuthIdApiPresentation.java | 2 +- .../user/api/findauthid/FindAuthIdController.java | 4 ++-- .../user/api/resetpassword/ResetPasswordApiPresentation.java | 2 +- .../user/api/resetpassword/ResetPasswordController.java | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdApiPresentation.java b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdApiPresentation.java index aad23168..fd8e89a0 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdApiPresentation.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdApiPresentation.java @@ -12,5 +12,5 @@ public interface FindAuthIdApiPresentation { UserAuthIdResponse findUserAuthId( - @Parameter(name = "studentNumber", description = "학번", in = ParameterIn.PATH) @PathVariable("student-number") String studentNumber); + @Parameter(name = "studentNumber", description = "학번", in = ParameterIn.PATH) @PathVariable String studentNumber); } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdController.java b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdController.java index 31154e3a..423d8253 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdController.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/findauthid/FindAuthIdController.java @@ -17,8 +17,8 @@ public class FindAuthIdController implements FindAuthIdApiPresentation { private final FindUserAuthIdUseCase findUserAuthIdUseCase; - @GetMapping("/{student-number}/auth-id") - public UserAuthIdResponse findUserAuthId(@PathVariable("student-number") String studentNumber) { + @GetMapping("/{studentNumber}/auth-id") + public UserAuthIdResponse findUserAuthId(@PathVariable String studentNumber) { String foundUserAuthId = findUserAuthIdUseCase.findUserAuthId(studentNumber); return UserAuthIdResponse.of(foundUserAuthId, studentNumber); } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordApiPresentation.java b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordApiPresentation.java index 507f7913..888a50bf 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordApiPresentation.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordApiPresentation.java @@ -22,7 +22,7 @@ public interface ResetPasswordApiPresentation { @Parameter(name = "auth-id", description = "아이디") ValidateUserResponse validateUser( @Parameter(name = "studentNumber", description = "학번", in = ParameterIn.PATH) - @PathVariable("student-number") String studentNumber, + @PathVariable String studentNumber, @RequestParam("auth-id") String authId); @PatchMapping("/password") diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordController.java b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordController.java index 0ef71b1d..83fd7f33 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordController.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/user/api/resetpassword/ResetPasswordController.java @@ -25,9 +25,9 @@ public class ResetPasswordController implements ResetPasswordApiPresentation { private final ValidateUserUseCase validateUserUseCase; private final ResetPasswordUseCase resetPasswordUseCase; - @GetMapping("/{student-number}/validate") + @GetMapping("/{studentNumber}/validate") public ValidateUserResponse validateUser( - @PathVariable("student-number") String studentNumber, + @PathVariable String studentNumber, @RequestParam("auth-id") String authId) { boolean validated = validateUserUseCase.validateUser(studentNumber, authId); return ValidateUserResponse.builder().passedUserValidation(validated).build(); From a62c1c6d6ea3b2dabb81b8521452b1009d0b3c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Thu, 11 Apr 2024 11:32:18 +0900 Subject: [PATCH 18/19] =?UTF-8?q?refactor:=20parsing=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B8=ED=95=9C=20=EC=88=98=EA=B0=95=EA=B3=BC=EB=AA=A9=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EA=B3=BC=20=EA=B5=AC=EB=B6=84=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20customize=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...uest.java => GenerateCustomizedTakenLectureRequest.java} | 4 ++-- ...vice.java => GenerateCustomizedTakenLectureService.java} | 6 +++--- .../usecase/save/GenerateCustomizedTakenLectureUseCase.java | 6 ++++++ .../usecase/save/GenerateTakenLectureUseCase.java | 6 ------ .../service/save/GenerateTakenLectureServiceTest.java | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) rename src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/{GenerateTakenLectureRequest.java => GenerateCustomizedTakenLectureRequest.java} (74%) rename src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/{GenerateTakenLectureService.java => GenerateCustomizedTakenLectureService.java} (86%) create mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateCustomizedTakenLectureUseCase.java delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateCustomizedTakenLectureRequest.java similarity index 74% rename from src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateCustomizedTakenLectureRequest.java index a21e3b32..af1c74fd 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateTakenLectureRequest.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/api/dto/request/GenerateCustomizedTakenLectureRequest.java @@ -7,13 +7,13 @@ @Getter @NoArgsConstructor -public class GenerateTakenLectureRequest { +public class GenerateCustomizedTakenLectureRequest { @Schema(name = "lectureId", example = "103") private Long lectureId; @Builder - private GenerateTakenLectureRequest(Long lectureId) { + private GenerateCustomizedTakenLectureRequest(Long lectureId) { this.lectureId = lectureId; } } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateCustomizedTakenLectureService.java similarity index 86% rename from src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateCustomizedTakenLectureService.java index 2b2443a9..64631adb 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureService.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateCustomizedTakenLectureService.java @@ -7,7 +7,7 @@ import com.plzgraduate.myongjigraduatebe.lecture.application.port.FindLecturePort; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.SaveTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateCustomizedTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @@ -17,7 +17,7 @@ @UseCase @Transactional @RequiredArgsConstructor -public class GenerateTakenLectureService implements GenerateTakenLectureUseCase { +public class GenerateCustomizedTakenLectureService implements GenerateCustomizedTakenLectureUseCase { private final FindUserUseCase findUserUseCase; private final FindLecturePort findLecturePort; @@ -25,7 +25,7 @@ public class GenerateTakenLectureService implements GenerateTakenLectureUseCase private final GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; @Override - public void generateTakenLecture(final Long userId, final Long addedTakenLectureId) { + public void generateCustomizedTakenLecture(final Long userId, final Long addedTakenLectureId) { User user = findUserUseCase.findUserById(userId); Lecture lecture = findLecturePort.findLectureById(addedTakenLectureId); addCustomTakenLecture(user, lecture); diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateCustomizedTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateCustomizedTakenLectureUseCase.java new file mode 100644 index 00000000..c2b2f78f --- /dev/null +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateCustomizedTakenLectureUseCase.java @@ -0,0 +1,6 @@ +package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save; + + +public interface GenerateCustomizedTakenLectureUseCase { + void generateCustomizedTakenLecture(Long userId, Long addedTakenLectureId); +} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java deleted file mode 100644 index fd822886..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/save/GenerateTakenLectureUseCase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save; - - -public interface GenerateTakenLectureUseCase { - void generateTakenLecture(Long userId, Long addedTakenLectureId); -} diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java index 8c6f190c..a07ec064 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/save/GenerateTakenLectureServiceTest.java @@ -29,7 +29,7 @@ class GenerateTakenLectureServiceTest { @Mock private GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; @InjectMocks - private GenerateTakenLectureService generateTakenLectureService; + private GenerateCustomizedTakenLectureService generateTakenLectureService; @DisplayName("새로운 custom 과목을 추가한다.") @Test @@ -43,7 +43,7 @@ void saveTakenLecture() { ArgumentCaptor takenLectureCaptor = ArgumentCaptor.forClass(TakenLecture.class); //when - generateTakenLectureService.generateTakenLecture(user.getId(), 1L); + generateTakenLectureService.generateCustomizedTakenLecture(user.getId(), 1L); generateOrModifyCompletedCreditUseCase.generateOrModifyCompletedCredit(user); //then From 3881bfcf79e561c0f454ab6d84f255a8b340e731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Thu, 11 Apr 2024 11:32:55 +0900 Subject: [PATCH 19/19] =?UTF-8?q?refactor:=20DeleteTakenLecture=20UseCase?= =?UTF-8?q?=20Service=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ParsingTextService.java | 4 +-- .../DeleteTakenLectureByUserService.java | 22 ------------ ...Id.java => DeleteTakenLectureService.java} | 9 +++-- .../DeleteTakenLectureByUserUseCase.java | 7 ---- .../delete/DeleteTakenLectureUseCase.java | 5 +++ .../service/withdraw/WithDrawUserService.java | 4 +-- .../service/ParsingTextServiceTest.java | 4 +-- .../support/WebAdaptorTestSupport.java | 4 +-- .../DeleteTakenLectureByUserServiceTest.java | 35 ------------------- ...ava => DeleteTakenLectureServiceTest.java} | 20 +++++++++-- .../withdraw/WithDrawUserServiceTest.java | 4 +-- 11 files changed, 39 insertions(+), 79 deletions(-) delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserService.java rename src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/{DeleteTakenLectureServiceById.java => DeleteTakenLectureService.java} (86%) delete mode 100644 src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureByUserUseCase.java delete mode 100644 src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserServiceTest.java rename src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/{DeleteTakenLectureServiceByIdTest.java => DeleteTakenLectureServiceTest.java} (67%) diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextService.java index 10c83fac..f9bd5867 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextService.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextService.java @@ -15,7 +15,7 @@ import com.plzgraduate.myongjigraduatebe.parsing.application.usecase.ParsingTextUseCase; import com.plzgraduate.myongjigraduatebe.parsing.domain.ParsingInformation; import com.plzgraduate.myongjigraduatebe.parsing.domain.ParsingTakenLectureDto; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureByUserUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.SaveTakenLectureFromParsingTextUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLectureInformation; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; @@ -35,7 +35,7 @@ class ParsingTextService implements ParsingTextUseCase { private final FindUserUseCase findUserUseCase; private final UpdateStudentInformationUseCase updateStudentInformationUseCase; private final SaveTakenLectureFromParsingTextUseCase saveTakenLectureFromParsingTextUseCase; - private final DeleteTakenLectureByUserUseCase deleteTakenLectureByUserUseCase; + private final DeleteTakenLectureUseCase deleteTakenLectureByUserUseCase; private final GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserService.java deleted file mode 100644 index f1e5a943..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.delete; - -import org.springframework.transaction.annotation.Transactional; - -import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureByUserUseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.user.domain.model.User; - -import lombok.RequiredArgsConstructor; - -@UseCase -@Transactional -@RequiredArgsConstructor -class DeleteTakenLectureByUserService implements DeleteTakenLectureByUserUseCase { - - private final DeleteTakenLecturePort deleteTakenLecturePort; - @Override - public void deleteAllTakenLecturesByUser(User user) { - deleteTakenLecturePort.deleteAllTakenLecturesByUser(user); - } -} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureService.java similarity index 86% rename from src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureService.java index 484a3895..5a7e0a13 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceById.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureService.java @@ -4,8 +4,8 @@ import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @@ -14,12 +14,17 @@ @UseCase @Transactional @RequiredArgsConstructor -public class DeleteTakenLectureServiceById implements DeleteTakenLectureUseCase { +class DeleteTakenLectureService implements DeleteTakenLectureUseCase { private final FindUserUseCase findUserUseCase; private final DeleteTakenLecturePort deleteTakenLecturePort; private final GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; + @Override + public void deleteAllTakenLecturesByUser(User user) { + deleteTakenLecturePort.deleteAllTakenLecturesByUser(user); + } + @Override public void deleteTakenLecture(Long userId, Long deletedTakenLectureId) { User user = findUserUseCase.findUserById(userId); diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureByUserUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureByUserUseCase.java deleted file mode 100644 index 1012f5a3..00000000 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureByUserUseCase.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete; - -import com.plzgraduate.myongjigraduatebe.user.domain.model.User; - -public interface DeleteTakenLectureByUserUseCase { - void deleteAllTakenLecturesByUser(User user); -} diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java index 2052808d..e6164c71 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/usecase/delete/DeleteTakenLectureUseCase.java @@ -1,5 +1,10 @@ package com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete; +import com.plzgraduate.myongjigraduatebe.user.domain.model.User; + public interface DeleteTakenLectureUseCase { + void deleteAllTakenLecturesByUser(User user); + void deleteTakenLecture(Long userId, Long deletedTakenLectureId); + } diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserService.java b/src/main/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserService.java index 88097858..5a923142 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserService.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserService.java @@ -5,7 +5,7 @@ import com.plzgraduate.myongjigraduatebe.core.meta.UseCase; import com.plzgraduate.myongjigraduatebe.parsing.application.port.DeleteParsingTextHistoryPort; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureByUserUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.user.application.port.DeleteUserPort; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; import com.plzgraduate.myongjigraduatebe.user.application.usecase.withdraw.WithDrawUserUseCase; @@ -19,7 +19,7 @@ class WithDrawUserService implements WithDrawUserUseCase { private final FindUserUseCase findUserUseCase; - private final DeleteTakenLectureByUserUseCase deleteTakenLectureByUserUseCase; + private final DeleteTakenLectureUseCase deleteTakenLectureByUserUseCase; private final DeleteParsingTextHistoryPort deleteParsingTextHistoryPort; private final DeleteUserPort deleteUserPort; private final PasswordEncoder passwordEncoder; diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextServiceTest.java index 293ca9bc..45652ccf 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextServiceTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/parsing/application/service/ParsingTextServiceTest.java @@ -17,7 +17,7 @@ import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; import com.plzgraduate.myongjigraduatebe.core.exception.InvalidPdfException; import com.plzgraduate.myongjigraduatebe.core.exception.PdfParsingException; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureByUserUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.SaveTakenLectureFromParsingTextUseCase; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; import com.plzgraduate.myongjigraduatebe.user.application.usecase.update.UpdateStudentInformationCommand; @@ -35,7 +35,7 @@ class ParsingTextServiceTest{ @Mock private SaveTakenLectureFromParsingTextUseCase saveTakenLectureFromParsingTextUseCase; @Mock - private DeleteTakenLectureByUserUseCase deleteTakenLectureByUserUseCase; + private DeleteTakenLectureUseCase deleteTakenLectureByUserUseCase; @Mock private GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; @InjectMocks diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java b/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java index 971e304c..78138a5b 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/support/WebAdaptorTestSupport.java @@ -34,7 +34,7 @@ import com.plzgraduate.myongjigraduatebe.takenlecture.api.UpdateTakenLectureController; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.find.FindTakenLectureUseCase; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateTakenLectureUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.save.GenerateCustomizedTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.user.api.findauthid.FindAuthIdController; import com.plzgraduate.myongjigraduatebe.user.api.finduserinformation.FindUserInformationController; import com.plzgraduate.myongjigraduatebe.user.api.resetpassword.ResetPasswordController; @@ -100,7 +100,7 @@ public abstract class WebAdaptorTestSupport { protected DeleteTakenLectureUseCase deleteTakenLectureUseCase; @MockBean - protected GenerateTakenLectureUseCase generateTakenLectureUseCase; + protected GenerateCustomizedTakenLectureUseCase generateCustomizedTakenLectureUseCase; @MockBean protected FindTakenLectureUseCase findTakenLectureUseCase; diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserServiceTest.java deleted file mode 100644 index 329560cd..00000000 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureByUserServiceTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.plzgraduate.myongjigraduatebe.takenlecture.application.service.delete; - -import static org.mockito.BDDMockito.*; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; -import com.plzgraduate.myongjigraduatebe.user.domain.model.User; - -@ExtendWith(MockitoExtension.class) -class DeleteTakenLectureByUserServiceTest { - - @Mock - private DeleteTakenLecturePort deleteTakenLecturePort; - @InjectMocks - private DeleteTakenLectureByUserService deleteTakenLectureByUserService; - - @DisplayName("사용자의 모든 수강과목을 삭제한다.") - @Test - void deleteAllTakenLecturesByUser() { - //given - User user = User.builder().build(); - - //when - deleteTakenLectureByUserService.deleteAllTakenLecturesByUser(user); - - //then - then(deleteTakenLecturePort).should().deleteAllTakenLecturesByUser(eq(user)); - } -} diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceTest.java similarity index 67% rename from src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java rename to src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceTest.java index 63218b1c..978caf20 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceByIdTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/takenlecture/application/service/delete/DeleteTakenLectureServiceTest.java @@ -12,9 +12,10 @@ import com.plzgraduate.myongjigraduatebe.completedcredit.application.usecase.GenerateOrModifyCompletedCreditUseCase; import com.plzgraduate.myongjigraduatebe.takenlecture.application.port.DeleteTakenLecturePort; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; +import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @ExtendWith(MockitoExtension.class) -class DeleteTakenLectureServiceByIdTest { +class DeleteTakenLectureServiceTest { @Mock private FindUserUseCase findUserUseCase; @@ -26,7 +27,7 @@ class DeleteTakenLectureServiceByIdTest { private GenerateOrModifyCompletedCreditUseCase generateOrModifyCompletedCreditUseCase; @InjectMocks - private DeleteTakenLectureServiceById deleteTakenLectureServiceById; + private DeleteTakenLectureService deleteTakenLectureService; @DisplayName("수강과목을 삭제한다.") @Test @@ -36,9 +37,22 @@ void deleteTakenLecture() { Long deletedTakenLectureId = 102L; //when - deleteTakenLectureServiceById.deleteTakenLecture(userId, deletedTakenLectureId); + deleteTakenLectureService.deleteTakenLecture(userId, deletedTakenLectureId); //then then(deleteTakenLecturePort).should().deleteTakenLectureById(102L); } + + @DisplayName("사용자의 모든 수강과목을 삭제한다.") + @Test + void deleteAllTakenLecturesByUser() { + //given + User user = User.builder().build(); + + //when + deleteTakenLectureService.deleteAllTakenLecturesByUser(user); + + //then + then(deleteTakenLecturePort).should().deleteAllTakenLecturesByUser(eq(user)); + } } \ No newline at end of file diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserServiceTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserServiceTest.java index fc5d0816..c380a037 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserServiceTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/user/application/service/withdraw/WithDrawUserServiceTest.java @@ -15,7 +15,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import com.plzgraduate.myongjigraduatebe.parsing.application.port.DeleteParsingTextHistoryPort; -import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureByUserUseCase; +import com.plzgraduate.myongjigraduatebe.takenlecture.application.usecase.delete.DeleteTakenLectureUseCase; import com.plzgraduate.myongjigraduatebe.user.application.port.DeleteUserPort; import com.plzgraduate.myongjigraduatebe.user.application.usecase.find.FindUserUseCase; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @@ -26,7 +26,7 @@ class WithDrawUserServiceTest { @Mock private FindUserUseCase findUserUseCase; @Mock - private DeleteTakenLectureByUserUseCase deleteTakenLectureByUserUseCase; + private DeleteTakenLectureUseCase deleteTakenLectureByUserUseCase; @Mock private DeleteParsingTextHistoryPort deleteParsingTextHistoryPort; @Mock