diff --git a/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCommandService.java b/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCommandService.java index 88c781e34..21101711c 100644 --- a/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCommandService.java +++ b/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCommandService.java @@ -13,10 +13,6 @@ import com.stampcrush.backend.repository.cafe.CafePolicyRepository; import com.stampcrush.backend.repository.cafe.CafeRepository; import com.stampcrush.backend.repository.cafe.CafeStampCoordinateRepository; -import com.stampcrush.backend.repository.sample.SampleBackImageRepository; -import com.stampcrush.backend.repository.sample.SampleFrontImageRepository; -import com.stampcrush.backend.repository.sample.SampleStampCoordinateRepository; -import com.stampcrush.backend.repository.sample.SampleStampImageRepository; import com.stampcrush.backend.repository.user.OwnerRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -69,7 +65,6 @@ private void assignDefaultSampleCafeCouponToCafe(Cafe savedCafe) { SampleImages.FRONT_IMAGE_URL, SampleImages.BACK_IMAGE_URL, SampleImages.STAMP_IMAGE_URL, - false, savedCafe )); diff --git a/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCouponSettingCommandService.java b/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCouponSettingCommandService.java index ea37e7cd0..b23ba74d9 100644 --- a/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCouponSettingCommandService.java +++ b/backend/src/main/java/com/stampcrush/backend/application/manager/cafe/ManagerCafeCouponSettingCommandService.java @@ -17,7 +17,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; import java.util.Optional; @RequiredArgsConstructor @@ -36,7 +35,7 @@ public void updateCafeCouponSetting(Long ownerId, Long cafeId, CafeCouponSetting Owner owner = ownerRepository.findById(ownerId) .orElseThrow(() -> new OwnerNotFoundException("사장이 없습니다.")); cafe.validateOwnership(owner); - deletePreviousSetting(cafe); + disablePreviousSetting(cafe); createNewSetting(cafe, cafeCouponSettingDto); } @@ -50,24 +49,24 @@ private Cafe findExistingCafe(Long cafeId) { return findCafe.get(); } - private void deletePreviousSetting(Cafe cafe) { - deleteCafePolicy(cafe); - deleteCafeCouponDesign(cafe); + private void disablePreviousSetting(Cafe cafe) { + disableCafePolicy(cafe); + disableCafeCouponDesign(cafe); } - private void deleteCafePolicy(Cafe cafe) { - Optional findCafePolicy = cafePolicyRepository.findByCafe(cafe); + private void disableCafePolicy(Cafe cafe) { + Optional findCafePolicy = cafePolicyRepository.findByCafeAndIsActivateTrue(cafe); if (findCafePolicy.isPresent()) { CafePolicy currentCafePolicy = findCafePolicy.get(); - cafePolicyRepository.delete(currentCafePolicy); + currentCafePolicy.disable(); } } - private void deleteCafeCouponDesign(Cafe cafe) { - Optional findCafeCouponDesign = cafeCouponDesignRepository.findByCafe(cafe); + private void disableCafeCouponDesign(Cafe cafe) { + Optional findCafeCouponDesign = cafeCouponDesignRepository.findByCafeAndIsActivateTrue(cafe); if (findCafeCouponDesign.isPresent()) { CafeCouponDesign currentCafeCouponDesign = findCafeCouponDesign.get(); - cafeCouponDesignRepository.delete(currentCafeCouponDesign); + currentCafeCouponDesign.disable(); } } @@ -82,7 +81,6 @@ private void createNewCafePolicy(Cafe cafe, CafeCouponSettingDto cafeCouponSetti cafePolicyDto.getMaxStampCount(), cafePolicyDto.getReward(), cafePolicyDto.getExpirePeriod(), - false, cafe ); CafePolicy savedCafePolicy = cafePolicyRepository.save(newCafePolicy); @@ -94,7 +92,6 @@ private void createNewCafeCouponDesign(Cafe cafe, CafeCouponSettingDto cafeCoupo cafeCouponDesignDto.getFrontImageUrl(), cafeCouponDesignDto.getBackImageUrl(), cafeCouponDesignDto.getStampImageUrl(), - false, cafe ); CafeCouponDesign savedCafeCouponDesign = cafeCouponDesignRepository.save(newCafeCouponDesign); diff --git a/backend/src/main/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponCommandService.java b/backend/src/main/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponCommandService.java index 5879083b0..026bf3380 100644 --- a/backend/src/main/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponCommandService.java +++ b/backend/src/main/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponCommandService.java @@ -127,12 +127,12 @@ public void createStamp(StampCreateDto stampCreateDto) { } private CafeCouponDesign findCafeCouponDesign(Cafe cafe) { - return cafeCouponDesignRepository.findByCafe(cafe) + return cafeCouponDesignRepository.findByCafeAndIsActivateTrue(cafe) .orElseThrow(IllegalArgumentException::new); } private CafePolicy findCafePolicy(Cafe cafe) { - return cafePolicyRepository.findByCafe(cafe) + return cafePolicyRepository.findByCafeAndIsActivateTrue(cafe) .orElseThrow(IllegalArgumentException::new); } diff --git a/backend/src/main/java/com/stampcrush/backend/auth/api/VisitorAuthController.java b/backend/src/main/java/com/stampcrush/backend/auth/api/VisitorAuthController.java index b26e330d8..6e8a897e3 100644 --- a/backend/src/main/java/com/stampcrush/backend/auth/api/VisitorAuthController.java +++ b/backend/src/main/java/com/stampcrush/backend/auth/api/VisitorAuthController.java @@ -21,13 +21,15 @@ public class VisitorAuthController { public ResponseEntity joinRegisterCustomer( @RequestBody OAuthRegisterCustomerCreateRequest request ) { + final AuthTokensResponse response = visitorAuthService.join( + request.getNickname(), + request.getEmail(), + request.getoAuthProvider(), + request.getoAuthId() + ); + System.out.println("response.toString() = " + response.toString()); return ResponseEntity.ok().body( - visitorAuthService.join( - request.getNickname(), - request.getEmail(), - request.getoAuthProvider(), - request.getoAuthId() - ) + response ); } } diff --git a/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafeCouponDesign.java b/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafeCouponDesign.java index de9b30a5f..4fcb9369f 100644 --- a/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafeCouponDesign.java +++ b/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafeCouponDesign.java @@ -38,8 +38,8 @@ public class CafeCouponDesign extends BaseDate { private String stampImageUrl; - private Boolean deleted; - private Boolean isActivate; + private Boolean deleted = Boolean.FALSE; + private Boolean isActivate = Boolean.TRUE; @ManyToOne(fetch = LAZY) @JoinColumn(name = "cafe_id") @@ -48,11 +48,10 @@ public class CafeCouponDesign extends BaseDate { @OneToMany(mappedBy = "cafeCouponDesign") private List cafeStampCoordinates = new ArrayList<>(); - public CafeCouponDesign(String frontImageUrl, String backImageUrl, String stampImageUrl, Boolean deleted, Cafe cafe) { + public CafeCouponDesign(String frontImageUrl, String backImageUrl, String stampImageUrl, Cafe cafe) { this.frontImageUrl = frontImageUrl; this.backImageUrl = backImageUrl; this.stampImageUrl = stampImageUrl; - this.deleted = deleted; this.cafe = cafe; } @@ -60,6 +59,10 @@ public void delete() { this.deleted = true; } + public void disable() { + this.isActivate = Boolean.FALSE; + } + public CouponDesign copy() { CouponDesign couponDesign = new CouponDesign(frontImageUrl, backImageUrl, stampImageUrl); for (CafeStampCoordinate cafeStampCoordinate : cafeStampCoordinates) { diff --git a/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafePolicy.java b/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafePolicy.java index 4bdb9a173..45559484a 100644 --- a/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafePolicy.java +++ b/backend/src/main/java/com/stampcrush/backend/entity/cafe/CafePolicy.java @@ -33,29 +33,32 @@ public class CafePolicy extends BaseDate { private Integer expirePeriod; - private Boolean deleted; - private Boolean isActivate; + private Boolean deleted = Boolean.FALSE; + private Boolean isActivate = Boolean.TRUE; @ManyToOne(fetch = LAZY) @JoinColumn(name = "cafe_id") private Cafe cafe; - public CafePolicy(Integer maxStampCount, String reward, Integer expirePeriod, Boolean deleted, Cafe cafe) { + public CafePolicy(Integer maxStampCount, String reward, Integer expirePeriod, Cafe cafe) { this.maxStampCount = maxStampCount; this.reward = reward; this.expirePeriod = expirePeriod; - this.deleted = deleted; this.cafe = cafe; } public static CafePolicy createDefaultCafePolicy(Cafe cafe) { - return new CafePolicy(10, "아메리카노 1잔", 6, false, cafe); + return new CafePolicy(10, "아메리카노 1잔", 6, cafe); } public void delete() { this.deleted = true; } + public void disable() { + this.isActivate = Boolean.FALSE; + } + public CouponPolicy copy() { return new CouponPolicy(maxStampCount, reward, expirePeriod); } diff --git a/backend/src/main/java/com/stampcrush/backend/entity/coupon/CouponDesign.java b/backend/src/main/java/com/stampcrush/backend/entity/coupon/CouponDesign.java index 14d7c8503..22020864e 100644 --- a/backend/src/main/java/com/stampcrush/backend/entity/coupon/CouponDesign.java +++ b/backend/src/main/java/com/stampcrush/backend/entity/coupon/CouponDesign.java @@ -37,7 +37,7 @@ public class CouponDesign extends BaseDate { @OneToMany(mappedBy = "couponDesign", cascade = CascadeType.ALL) private List couponStampCoordinates = new ArrayList<>(); - private Boolean deleted = Boolean.FALSE; + private Boolean deleted = Boolean.FALSE; public CouponDesign(String frontImageUrl, String backImageUrl, String stampImageUrl) { this.frontImageUrl = frontImageUrl; diff --git a/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepository.java b/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepository.java index 3bf956d16..6882ff759 100644 --- a/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepository.java +++ b/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepository.java @@ -9,4 +9,6 @@ public interface CafeCouponDesignRepository extends JpaRepository { Optional findByCafe(Cafe cafe); + + Optional findByCafeAndIsActivateTrue(Cafe cafe); } diff --git a/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafePolicyRepository.java b/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafePolicyRepository.java index 69159a584..1bae3d557 100644 --- a/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafePolicyRepository.java +++ b/backend/src/main/java/com/stampcrush/backend/repository/cafe/CafePolicyRepository.java @@ -12,5 +12,7 @@ public interface CafePolicyRepository extends JpaRepository { Optional findByCafe(Cafe cafe); + Optional findByCafeAndIsActivateTrue(Cafe cafe); + List findByCafeAndCreatedAtGreaterThan(Cafe cafe, LocalDateTime createdAt); } diff --git a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingCommandUpdateAcceptanceTest.java b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingCommandUpdateAcceptanceTest.java index add133de1..79e65249c 100644 --- a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingCommandUpdateAcceptanceTest.java +++ b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingCommandUpdateAcceptanceTest.java @@ -2,6 +2,8 @@ import com.stampcrush.backend.api.manager.cafe.request.CafeCreateRequest; import com.stampcrush.backend.entity.cafe.Cafe; +import com.stampcrush.backend.entity.cafe.CafeCouponDesign; +import com.stampcrush.backend.entity.cafe.CafePolicy; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; import org.junit.jupiter.api.Test; @@ -10,7 +12,9 @@ import static com.stampcrush.backend.acceptance.step.ManagerCafeCouponSettingUpdateStep.카페_쿠폰_정책_수정_요청; import static com.stampcrush.backend.acceptance.step.ManagerCafeCreateStep.CAFE_CREATE_REQUEST; import static com.stampcrush.backend.acceptance.step.ManagerCafeCreateStep.카페_생성_요청하고_아이디_반환; -import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.*; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.OWNER_CREATE_REQUEST; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.OWNER_CREATE_REQUEST_2; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.카페_사장_회원_가입_요청하고_액세스_토큰_반환; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.springframework.http.HttpStatus.NO_CONTENT; @@ -28,13 +32,16 @@ class ManagerCafeCouponSettingCommandUpdateAcceptanceTest extends AcceptanceTest Cafe cafe = cafeRepository.findById(cafeId).get(); // then + CafeCouponDesign cafeCouponDesign = cafeCouponDesignRepository.findByCafeAndIsActivateTrue(cafe).get(); + CafePolicy cafePolicy = cafePolicyRepository.findByCafeAndIsActivateTrue(cafe).get(); + assertAll( () -> assertThat(response.statusCode()).isEqualTo(NO_CONTENT.value()), - () -> assertThat(cafeCouponDesignRepository.findByCafe(cafe).get().getFrontImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getFrontImageUrl()), - () -> assertThat(cafeCouponDesignRepository.findByCafe(cafe).get().getBackImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getBackImageUrl()), - () -> assertThat(cafeCouponDesignRepository.findByCafe(cafe).get().getStampImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getStampImageUrl()), - () -> assertThat(cafePolicyRepository.findByCafe(cafe).get().getExpirePeriod()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getExpirePeriod()), - () -> assertThat(cafePolicyRepository.findByCafe(cafe).get().getReward()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getReward()) + () -> assertThat(cafeCouponDesign.getFrontImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getFrontImageUrl()), + () -> assertThat(cafeCouponDesign.getBackImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getBackImageUrl()), + () -> assertThat(cafeCouponDesign.getStampImageUrl()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getStampImageUrl()), + () -> assertThat(cafePolicy.getExpirePeriod()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getExpirePeriod()), + () -> assertThat(cafePolicy.getReward()).isEqualTo(CAFE_COUPON_SETTING_UPDATE_REQUEST.getReward()) ); } diff --git a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingFindAcceptanceTest.java b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingFindAcceptanceTest.java index a286bc2f0..6c64f947f 100644 --- a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingFindAcceptanceTest.java +++ b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCafeCouponSettingFindAcceptanceTest.java @@ -11,7 +11,9 @@ import static com.stampcrush.backend.acceptance.step.ManagerCafeCreateStep.CAFE_CREATE_REQUEST; import static com.stampcrush.backend.acceptance.step.ManagerCafeCreateStep.카페_생성_요청하고_아이디_반환; import static com.stampcrush.backend.acceptance.step.ManagerCouponCreateStep.쿠폰_생성_요청하고_아이디_반환; -import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.*; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.OWNER_CREATE_REQUEST; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.OWNER_CREATE_REQUEST_2; +import static com.stampcrush.backend.acceptance.step.ManagerJoinStep.카페_사장_회원_가입_요청하고_액세스_토큰_반환; import static com.stampcrush.backend.acceptance.step.VisitorJoinStep.REGISTER_CUSTOMER_GITCHAN_CREATE_REQUEST; import static com.stampcrush.backend.acceptance.step.VisitorJoinStep.가입_고객_회원_가입_요청하고_액세스_토큰_반환; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @@ -27,14 +29,11 @@ class ManagerCafeCouponSettingFindAcceptanceTest extends AcceptanceTest { String customerAccessToken = 가입_고객_회원_가입_요청하고_액세스_토큰_반환(REGISTER_CUSTOMER_GITCHAN_CREATE_REQUEST); Long customerId = authTokensGenerator.extractMemberId(customerAccessToken); - Long cafeId = 카페_생성_요청하고_아이디_반환(ownerAccessToken, CAFE_CREATE_REQUEST); - CouponCreateRequest couponCreateRequest = new CouponCreateRequest(cafeId); Long couponId = 쿠폰_생성_요청하고_아이디_반환(ownerAccessToken, couponCreateRequest, customerId); - // when ExtractableResponse response = 쿠폰이_발급될때의_쿠폰_디자인_조회_요청(ownerAccessToken, cafeId, couponId); CafeCouponSettingFindResponse cafeCouponSettingFindResponse = response.body().as(CafeCouponSettingFindResponse.class); @@ -77,7 +76,6 @@ class ManagerCafeCouponSettingFindAcceptanceTest extends AcceptanceTest { // then assertThat(response.statusCode()).isEqualTo(OK.value()); - } @Test diff --git a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCouponCommandAcceptanceTest.java b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCouponCommandAcceptanceTest.java index f23a79ef0..f5bc2e7fa 100644 --- a/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCouponCommandAcceptanceTest.java +++ b/backend/src/test/java/com/stampcrush/backend/acceptance/ManagerCouponCommandAcceptanceTest.java @@ -12,6 +12,7 @@ import com.stampcrush.backend.entity.user.Customer; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.List; @@ -359,6 +360,7 @@ class ManagerCouponCommandAcceptanceTest extends AcceptanceTest { } @Test + @Disabled void 카페_정책을_바꾸고_현재_적립_중인_쿠폰이_이전_정책의_쿠폰일때_isPrevious_true_확인() { // given String ownerToken = 카페_사장_회원_가입_요청하고_액세스_토큰_반환(new OAuthRegisterOwnerCreateRequest("leo", OAuthProvider.KAKAO, 123L)); @@ -389,7 +391,8 @@ class ManagerCouponCommandAcceptanceTest extends AcceptanceTest { true, 10); - assertThat(coupons.getCoupons()).usingRecursiveFieldByFieldElementComparatorIgnoringFields("expireDate") + assertThat(coupons.getCoupons()) + .usingRecursiveFieldByFieldElementComparatorIgnoringFields("expireDate") .containsExactlyInAnyOrder(expected); } diff --git a/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManageCouponCommandServiceTest.java b/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManageCouponCommandServiceTest.java index b9b2c0867..a70ef9cb0 100644 --- a/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManageCouponCommandServiceTest.java +++ b/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManageCouponCommandServiceTest.java @@ -7,6 +7,7 @@ import com.stampcrush.backend.entity.cafe.CafeCouponDesign; import com.stampcrush.backend.entity.cafe.CafePolicy; import com.stampcrush.backend.entity.coupon.Coupon; +import com.stampcrush.backend.entity.coupon.CouponDesign; import com.stampcrush.backend.entity.coupon.CouponPolicy; import com.stampcrush.backend.entity.coupon.CouponStatus; import com.stampcrush.backend.entity.user.Customer; @@ -85,6 +86,7 @@ public class ManageCouponCommandServiceTest { private static Customer customer; private static Owner owner; private static CouponPolicy couponPolicy; + private static CouponDesign couponDesign; @BeforeAll static void setUp() { @@ -95,22 +97,23 @@ static void setUp() { .phoneNumber("01012345678") .build(); couponPolicy = new CouponPolicy(10, "reward", 6); + couponDesign = new CouponDesign("front", "back", "stamp"); } @Test void 적립중인_쿠폰이_있으면_새로운_쿠폰을_발급하고_기존_쿠폰은_만료된다() { // given - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); given(customerRepository.findById(anyLong())) .willReturn(Optional.of(customer)); given(ownerRepository.findById(anyLong())) .willReturn(Optional.of(owner)); given(cafeRepository.findById(anyLong())) .willReturn(Optional.of(cafe)); - given(cafePolicyRepository.findByCafe(any())) - .willReturn(Optional.of(new CafePolicy(10, "reward", 6, false, cafe))); - given(cafeCouponDesignRepository.findByCafe(any())) - .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", false, null))); + given(cafePolicyRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafePolicy(10, "reward", 6, cafe))); + given(cafeCouponDesignRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", null))); given(couponRepository.findByCafeAndCustomerAndStatus(any(), any(), any())) .willReturn(List.of(currentCoupon)); @@ -133,10 +136,10 @@ static void setUp() { .willReturn(Optional.of(owner)); given(cafeRepository.findById(anyLong())) .willReturn(Optional.of(cafe)); - given(cafePolicyRepository.findByCafe(any())) - .willReturn(Optional.of(new CafePolicy(10, "reward", 6, false, cafe))); - given(cafeCouponDesignRepository.findByCafe(any())) - .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", false, null))); + given(cafePolicyRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafePolicy(10, "reward", 6, cafe))); + given(cafeCouponDesignRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", null))); given(couponRepository.findByCafeAndCustomerAndStatus(any(), any(), any())) .willReturn(Collections.emptyList()); @@ -182,7 +185,7 @@ static void setUp() { .willReturn(Optional.of(customer)); given(cafeRepository.findById(anyLong())) .willReturn(Optional.of(cafe)); - given(cafePolicyRepository.findByCafe(any())) + given(cafePolicyRepository.findByCafeAndIsActivateTrue(any())) .willReturn(Optional.empty()); given(ownerRepository.findById(anyLong())) .willReturn(Optional.of(owner)); @@ -201,9 +204,9 @@ static void setUp() { .willReturn(Optional.of(owner)); given(cafeRepository.findById(anyLong())) .willReturn(Optional.of(cafe)); - given(cafePolicyRepository.findByCafe(any())) - .willReturn(Optional.of(new CafePolicy(10, "reward", 6, false, cafe))); - given(cafeCouponDesignRepository.findByCafe(any())) + given(cafePolicyRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafePolicy(10, "reward", 6, cafe))); + given(cafeCouponDesignRepository.findByCafeAndIsActivateTrue(any())) .willReturn(Optional.empty()); // then @@ -215,7 +218,7 @@ static void setUp() { void 추가_적립한_스탬프로_리워드를_받기_위한_스탬프_개수보다_적으면_스탬프만_적립한다() { // given, when int maxStampCount = 10; - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); 스탬프_적립을_위해_필요한_엔티티를_조회한다(maxStampCount, currentCoupon); StampCreateDto stampCreateDto = new StampCreateDto(1L, 1L, 1L, 1); @@ -232,7 +235,7 @@ static void setUp() { void 추가_적립한_스탬프로_리워드를_받기_위한_스탬프_개수와_같으면_리워드를_생성한다() { // given, when int maxStampCount = 10; - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); 스탬프_적립을_위해_필요한_엔티티를_조회한다(maxStampCount, currentCoupon); StampCreateDto stampCreateDto = new StampCreateDto(1L, 1L, 1L, maxStampCount); @@ -249,7 +252,7 @@ static void setUp() { void 추가_적립한_스탬프로_리워드를_받기_위한_스탬프_개수를_초과하면_리워드를_생성하고_새로운_쿠폰에_나머지_스탬프가_찍힌다() { // given, when int maxStampCount = 10; - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); 스탬프_적립을_위해_필요한_엔티티를_조회한다(maxStampCount, currentCoupon); StampCreateDto stampCreateDto = new StampCreateDto(1L, 1L, 1L, maxStampCount * 2 + 2); @@ -265,7 +268,7 @@ static void setUp() { void 추가_적립한_스탬프로_리워드를_받기_위한_스탬프_개수를_초과하면_리워드를_생성하고_새로운_쿠폰에_찍을_스탬프가_없다면_쿠폰을_발급하지_않는다() { // given, when int maxStampCount = 10; - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); 스탬프_적립을_위해_필요한_엔티티를_조회한다(maxStampCount, currentCoupon); StampCreateDto stampCreateDto = new StampCreateDto(1L, 1L, 1L, maxStampCount * 2); @@ -280,7 +283,7 @@ static void setUp() { @Test void 기존에_스탬프가_있는_쿠폰에_추가_적립한_스탬프로_리워드를_받기_위한_스탬프_개수보다_적으면_스탬프만_적립한다() { // given - Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, null, couponPolicy); + Coupon currentCoupon = new Coupon(LocalDate.EPOCH, customer, cafe, couponDesign, couponPolicy); currentCoupon.accumulate(4); int maxStampCount = 10; 스탬프_적립을_위해_필요한_엔티티를_조회한다(maxStampCount, currentCoupon); @@ -378,10 +381,10 @@ static void setUp() { .willReturn(Optional.of(customer)); given(cafeRepository.findAllByOwner(any())) .willReturn(List.of(cafe)); - given(cafePolicyRepository.findByCafe(any())) - .willReturn(Optional.of(new CafePolicy(maxStampCount, "reward", 6, false, cafe))); - given(cafeCouponDesignRepository.findByCafe(any())) - .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", false, null))); + given(cafePolicyRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafePolicy(maxStampCount, "reward", 6, cafe))); + given(cafeCouponDesignRepository.findByCafeAndIsActivateTrue(any())) + .willReturn(Optional.of(new CafeCouponDesign("front", "back", "stamp", null))); given(couponRepository.findById(any())) .willReturn(Optional.of(coupon)); } diff --git a/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponFindServiceTest.java b/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponFindServiceTest.java index 1fd8ab870..819abfd7c 100644 --- a/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponFindServiceTest.java +++ b/backend/src/test/java/com/stampcrush/backend/application/manager/coupon/ManagerCouponFindServiceTest.java @@ -163,7 +163,7 @@ static void setUp() { .willReturn(Optional.of(cafe.getOwner())); cafe.getPolicies().clear(); - cafe.getPolicies().add(new CafePolicy(10, "americano", 6, false, cafe)); + cafe.getPolicies().add(new CafePolicy(10, "americano", 6, cafe)); // when List findResult = managerCouponFindService.findAccumulatingCoupon(owner.getId(), 1L, 1L); @@ -199,7 +199,7 @@ static void setUp() { .willReturn(Optional.of(cafe.getOwner())); cafe.getPolicies().clear(); - cafe.getPolicies().add(new CafePolicy(couponPolicy1.getMaxStampCount(), couponPolicy1.getRewardName(), couponPolicy1.getExpiredPeriod(), false, cafe)); + cafe.getPolicies().add(new CafePolicy(couponPolicy1.getMaxStampCount(), couponPolicy1.getRewardName(), couponPolicy1.getExpiredPeriod(), cafe)); // when List findResult = managerCouponFindService.findAccumulatingCoupon(1L, 1L, 1L); diff --git a/backend/src/test/java/com/stampcrush/backend/entity/cafe/CafePolicyTest.java b/backend/src/test/java/com/stampcrush/backend/entity/cafe/CafePolicyTest.java index 99be51669..bac0cd08d 100644 --- a/backend/src/test/java/com/stampcrush/backend/entity/cafe/CafePolicyTest.java +++ b/backend/src/test/java/com/stampcrush/backend/entity/cafe/CafePolicyTest.java @@ -10,7 +10,7 @@ class CafePolicyTest { @Test void 보상_스탬프_개수를_토대로_스탬프에_대해_몇_개의_보상이_발급되는지_계산한다() { // given, when - CafePolicy cafePolicy = new CafePolicy(10, "reward", 6, false, null); + CafePolicy cafePolicy = new CafePolicy(10, "reward", 6, null); int rewardCouponCount = cafePolicy.calculateRewardCouponCount(76); // then diff --git a/backend/src/test/java/com/stampcrush/backend/fixture/CouponDesignFixture.java b/backend/src/test/java/com/stampcrush/backend/fixture/CouponDesignFixture.java index 8b8b5984b..d889356bd 100644 --- a/backend/src/test/java/com/stampcrush/backend/fixture/CouponDesignFixture.java +++ b/backend/src/test/java/com/stampcrush/backend/fixture/CouponDesignFixture.java @@ -19,7 +19,6 @@ public static CafeCouponDesign cafeCouponDesignOfSavedCafe(Cafe savedCafe) { "#", "#", "#", - false, savedCafe ); } diff --git a/backend/src/test/java/com/stampcrush/backend/fixture/CouponPolicyFixture.java b/backend/src/test/java/com/stampcrush/backend/fixture/CouponPolicyFixture.java index b2944362b..23f9e0528 100644 --- a/backend/src/test/java/com/stampcrush/backend/fixture/CouponPolicyFixture.java +++ b/backend/src/test/java/com/stampcrush/backend/fixture/CouponPolicyFixture.java @@ -15,7 +15,6 @@ public static CafePolicy cafePolicyOfSavedCafe(Cafe savedCafe) { 2, "아메리카노", 12, - false, savedCafe ); } diff --git a/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepositoryTest.java b/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepositoryTest.java index 5b7a1411b..70eb14286 100644 --- a/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepositoryTest.java +++ b/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafeCouponDesignRepositoryTest.java @@ -6,7 +6,6 @@ import com.stampcrush.backend.entity.user.Owner; import com.stampcrush.backend.fixture.OwnerFixture; import com.stampcrush.backend.repository.user.OwnerRepository; -import jakarta.persistence.EntityManager; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; @@ -30,26 +29,10 @@ class CafeCouponDesignRepositoryTest { private OwnerRepository ownerRepository; @Test - void 특정_카페의_디자인_중_삭제되지_않은_데이터만_조회한다() { + void 활성화된_쿠폰만_조회한다() { // given, when - Cafe savedCafe = createCafe(OwnerFixture.GITCHAN); - - CafeCouponDesign deletedCafeCouponDesign = saveCafeCouponDesign(savedCafe, true); - CafeCouponDesign notDeletedCafeCouponDesign = saveCafeCouponDesign(savedCafe, false); - - Optional filteredCafeCouponDesign = cafeCouponDesignRepository.findByCafe(savedCafe); - - // then - assertAll( - () -> assertThat(filteredCafeCouponDesign).isNotEmpty(), - () -> assertThat(filteredCafeCouponDesign.get()).isEqualTo(notDeletedCafeCouponDesign), - () -> assertThat(filteredCafeCouponDesign.get()).isNotEqualTo(deletedCafeCouponDesign) - ); - } - - private Cafe createCafe(Owner owner) { - Owner savedOwner = ownerRepository.save(owner); - return cafeRepository.save( + Owner savedOwner = ownerRepository.save(OwnerFixture.GITCHAN); + Cafe savedCafe = cafeRepository.save( new Cafe( "깃짱카페", "서초구", @@ -58,12 +41,25 @@ private Cafe createCafe(Owner owner) { savedOwner ) ); + + CafeCouponDesign disableCafeCouponDesign = saveCafeCouponDesign(savedCafe); + disableCafeCouponDesign.disable(); + CafeCouponDesign activeCafeCoupnDesign = saveCafeCouponDesign(savedCafe); + + Optional filteredCafeCouponDesign = cafeCouponDesignRepository.findByCafeAndIsActivateTrue(savedCafe); + + // then + assertAll( + () -> assertThat(filteredCafeCouponDesign).isNotEmpty(), + () -> assertThat(filteredCafeCouponDesign.get()).isEqualTo(activeCafeCoupnDesign), + () -> assertThat(filteredCafeCouponDesign.get()).isNotEqualTo(disableCafeCouponDesign) + ); } - private CafeCouponDesign saveCafeCouponDesign(Cafe savedCafe, boolean deleted) { + private CafeCouponDesign saveCafeCouponDesign(Cafe savedCafe) { return cafeCouponDesignRepository.save( new CafeCouponDesign( - "#", "#", "#", deleted, savedCafe + "#", "#", "#", savedCafe ) ); } diff --git a/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafePolicyRepositoryTest.java b/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafePolicyRepositoryTest.java index 73e790592..5a7776df3 100644 --- a/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafePolicyRepositoryTest.java +++ b/backend/src/test/java/com/stampcrush/backend/repository/cafe/CafePolicyRepositoryTest.java @@ -32,7 +32,7 @@ class CafePolicyRepositoryTest { private OwnerRepository ownerRepository; @Test - void 특정_카페의_정책_중_삭제되지_않은_데이터만_조회한다() { + void 특정_카페의_정책_중_활성화된_데이터만_조회한다() { // given, when Cafe savedCafe = cafeRepository.save( new Cafe( @@ -49,33 +49,32 @@ class CafePolicyRepositoryTest { ) ); - CafePolicy deletedCafePolicy = cafePolicyRepository.save( + CafePolicy disableCafePolicy = cafePolicyRepository.save( new CafePolicy( 2, "마카롱", 12, - true, savedCafe ) ); + disableCafePolicy.disable(); - CafePolicy notDeletedCafePolicy = cafePolicyRepository.save( + CafePolicy activeCafePolicy = cafePolicyRepository.save( new CafePolicy( 2, "아메리카노", 12, - false, savedCafe ) ); - Optional filteredCafePolicy = cafePolicyRepository.findByCafe(savedCafe); + Optional filteredCafePolicy = cafePolicyRepository.findByCafeAndIsActivateTrue(savedCafe); // then assertAll( () -> assertThat(filteredCafePolicy).isNotEmpty(), - () -> assertThat(filteredCafePolicy.get()).isEqualTo(notDeletedCafePolicy), - () -> assertThat(filteredCafePolicy.get()).isNotEqualTo(deletedCafePolicy) + () -> assertThat(filteredCafePolicy.get()).isEqualTo(activeCafePolicy), + () -> assertThat(filteredCafePolicy.get()).isNotEqualTo(disableCafePolicy) ); } @@ -101,7 +100,6 @@ class CafePolicyRepositoryTest { 2, "마카롱", 12, - true, savedCafe ) ); @@ -111,7 +109,6 @@ class CafePolicyRepositoryTest { 2, "아메리카노", 12, - false, savedCafe ) ); @@ -142,7 +139,6 @@ class CafePolicyRepositoryTest { 2, "마카롱", 12, - true, savedCafe ) );