diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MajorManager.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MajorManager.java index bbb7ec19..9efa3ef3 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MajorManager.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MajorManager.java @@ -7,9 +7,6 @@ import com.plzgraduate.myongjigraduatebe.graduation.domain.model.DetailCategoryResult; import com.plzgraduate.myongjigraduatebe.graduation.domain.model.DetailGraduationResult; import com.plzgraduate.myongjigraduatebe.graduation.domain.service.GraduationManager; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception.MajorExceptionHandler; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception.OptionalMandatoryHandler; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception.ReplaceMandatoryMajorHandler; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.MajorLecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; @@ -41,10 +38,10 @@ public DetailGraduationResult createDetailGraduationResult(User user, Set mandatoryLectures = filterMandatoryLectures(majorLectures); Set electiveLectures = filterElectiveLectures(majorLectures); - List majorExceptionHandlers = List.of( - new OptionalMandatoryHandler(), - new ReplaceMandatoryMajorHandler()); - MandatoryMajorManager mandatoryMajorManager = new MandatoryMajorManager(majorExceptionHandlers); + List mandatoryMajorSpecialCaseHandlers = List.of( + new OptionalMandatoryMandatoryMajorHandler(), + new ReplaceMandatoryMandatoryMajorHandler()); + MandatoryMajorManager mandatoryMajorManager = new MandatoryMajorManager(mandatoryMajorSpecialCaseHandlers); ElectiveMajorManager electiveMajorManager = new ElectiveMajorManager(); DetailCategoryResult mandantoryDetailCategoryResult = mandatoryMajorManager.createDetailCategoryResult( diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorManager.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorManager.java index ce5b8415..4358158b 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorManager.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorManager.java @@ -5,8 +5,6 @@ import java.util.Set; import com.plzgraduate.myongjigraduatebe.graduation.domain.model.DetailCategoryResult; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception.MajorExceptionHandler; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception.MandatorySpecialCaseInformation; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @@ -19,7 +17,7 @@ public class MandatoryMajorManager { private static final String detailCategoryName = "전공필수"; - private final List majorExceptionHandlers; + private final List mandatoryMajorSpecialCaseHandlers; public DetailCategoryResult createDetailCategoryResult(User user, TakenLectureInventory takenLectureInventory, Set mandatoryLectures, Set electiveLectures, @@ -29,9 +27,9 @@ public DetailCategoryResult createDetailCategoryResult(User user, TakenLectureIn boolean isSatisfiedMandatory = true; int removeMandatoryTotalCredit = 0; - for (MajorExceptionHandler majorExceptionHandler : majorExceptionHandlers) { - if (majorExceptionHandler.isSupport(user, majorGraduationCategory)) { - MandatorySpecialCaseInformation mandatorySpecialCaseInformation = majorExceptionHandler.getMandatorySpecialCaseInformation( + for (MandatoryMajorSpecialCaseHandler mandatoryMajorSpecialCaseHandler : mandatoryMajorSpecialCaseHandlers) { + if (mandatoryMajorSpecialCaseHandler.isSupport(user, majorGraduationCategory)) { + MandatorySpecialCaseInformation mandatorySpecialCaseInformation = mandatoryMajorSpecialCaseHandler.getMandatorySpecialCaseInformation( takenLectureInventory, mandatoryLectures, electiveLectures); isSatisfiedMandatory = mandatorySpecialCaseInformation.isCompleteMandatorySpecialCase(); removeMandatoryTotalCredit = mandatorySpecialCaseInformation.getRemovedMandatoryTotalCredit(); diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MajorExceptionHandler.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorSpecialCaseHandler.java similarity index 78% rename from src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MajorExceptionHandler.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorSpecialCaseHandler.java index 2aeeb33f..d2388905 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MajorExceptionHandler.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatoryMajorSpecialCaseHandler.java @@ -1,13 +1,12 @@ -package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception; +package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major; import java.util.Set; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLectureInventory; -public interface MajorExceptionHandler { +public interface MandatoryMajorSpecialCaseHandler { boolean isSupport(User user, MajorGraduationCategory majorGraduationCategory); MandatorySpecialCaseInformation getMandatorySpecialCaseInformation(TakenLectureInventory takenLectureInventory, diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MandatorySpecialCaseInformation.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatorySpecialCaseInformation.java similarity index 96% rename from src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MandatorySpecialCaseInformation.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatorySpecialCaseInformation.java index a9a60959..6fd2662c 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/MandatorySpecialCaseInformation.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/MandatorySpecialCaseInformation.java @@ -1,4 +1,4 @@ -package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception; +package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatory.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatory.java similarity index 99% rename from src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatory.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatory.java index 0740cc9d..ddbfd5de 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatory.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatory.java @@ -1,4 +1,4 @@ -package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception; +package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major; import java.util.Arrays; import java.util.Objects; diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatoryHandler.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatoryMandatoryMajorHandler.java similarity index 96% rename from src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatoryHandler.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatoryMandatoryMajorHandler.java index 93701a7a..356361f6 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/OptionalMandatoryHandler.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/OptionalMandatoryMandatoryMajorHandler.java @@ -1,4 +1,4 @@ -package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception; +package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major; import static com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory.DUAL; import static com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory.PRIMARY; @@ -8,7 +8,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLectureInventory; @@ -21,7 +20,7 @@ * 경영의 경우 국제통상원론, 국제경양, 경영정보 중 택1 * 행정의 */ -public class OptionalMandatoryHandler implements MajorExceptionHandler { +public class OptionalMandatoryMandatoryMajorHandler implements MandatoryMajorSpecialCaseHandler { private static final String MANAGEMENT_INFORMATION = "경영정보학과"; private static final String BUSINESS = "경영학과"; diff --git a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandler.java b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/ReplaceMandatoryMandatoryMajorHandler.java similarity index 95% rename from src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandler.java rename to src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/ReplaceMandatoryMandatoryMajorHandler.java index 2de99576..1d9b3221 100644 --- a/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandler.java +++ b/src/main/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/ReplaceMandatoryMandatoryMajorHandler.java @@ -1,4 +1,4 @@ -package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.exception; +package com.plzgraduate.myongjigraduatebe.graduation.domain.service.major; import static com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory.*; @@ -7,7 +7,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MajorGraduationCategory; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; import com.plzgraduate.myongjigraduatebe.user.domain.model.User; @@ -17,7 +16,7 @@ * 철학과의 경우 답사1, 답사2는 폐지 되었지만 2021번 이전까지 전공필수 * '신유학의 이해' '유학사상의이해' 중 택1 이수 시 대체 인정 */ -public class ReplaceMandatoryMajorHandler implements MajorExceptionHandler { +public class ReplaceMandatoryMandatoryMajorHandler implements MandatoryMajorSpecialCaseHandler { //private int removedMandatoryTotalCredit = 0; private static final List REPLACED_LECTURES = List.of( Lecture.of("HAI01110", "답사1", 1, 1, null), diff --git a/src/test/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandlerTest.java b/src/test/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandlerTest.java index 9717fcf3..b8ae44f6 100644 --- a/src/test/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandlerTest.java +++ b/src/test/java/com/plzgraduate/myongjigraduatebe/graduation/domain/service/major/exception/ReplaceMandatoryMajorHandlerTest.java @@ -11,6 +11,9 @@ import com.plzgraduate.myongjigraduatebe.fixture.LectureFixture; import com.plzgraduate.myongjigraduatebe.fixture.UserFixture; +import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MandatoryMajorSpecialCaseHandler; +import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.MandatorySpecialCaseInformation; +import com.plzgraduate.myongjigraduatebe.graduation.domain.service.major.ReplaceMandatoryMandatoryMajorHandler; import com.plzgraduate.myongjigraduatebe.lecture.domain.model.Lecture; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.Semester; import com.plzgraduate.myongjigraduatebe.takenlecture.domain.model.TakenLecture; @@ -45,7 +48,7 @@ class ReplaceMandatoryMajorHandlerTest { TakenLectureInventory takenLectureInventory = TakenLectureInventory.from(takenLectures); //when - MajorExceptionHandler exceptionHandler = new ReplaceMandatoryMajorHandler(); + MandatoryMajorSpecialCaseHandler exceptionHandler = new ReplaceMandatoryMandatoryMajorHandler(); MandatorySpecialCaseInformation mandatorySpecialCaseInformation = exceptionHandler.getMandatorySpecialCaseInformation( takenLectureInventory, mandatoryLectures, electiveLectures); @@ -81,7 +84,7 @@ class ReplaceMandatoryMajorHandlerTest { TakenLectureInventory takenLectureInventory = TakenLectureInventory.from(takenLectures); //when - MajorExceptionHandler exceptionHandler = new ReplaceMandatoryMajorHandler(); + MandatoryMajorSpecialCaseHandler exceptionHandler = new ReplaceMandatoryMandatoryMajorHandler(); MandatorySpecialCaseInformation mandatorySpecialCaseInformation = exceptionHandler.getMandatorySpecialCaseInformation( takenLectureInventory, mandatoryLectures, electiveLectures); @@ -113,7 +116,7 @@ class ReplaceMandatoryMajorHandlerTest { TakenLectureInventory takenLectureInventory = TakenLectureInventory.from(new HashSet<>()); //when - MajorExceptionHandler exceptionHandler = new ReplaceMandatoryMajorHandler(); + MandatoryMajorSpecialCaseHandler exceptionHandler = new ReplaceMandatoryMandatoryMajorHandler(); MandatorySpecialCaseInformation mandatorySpecialCaseInformation = exceptionHandler.getMandatorySpecialCaseInformation( takenLectureInventory, mandatoryLectures, electiveLectures);