From dbe414190def70d4164b11ebd008abb0816f77a9 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:31:09 +0900 Subject: [PATCH 01/16] =?UTF-8?q?feat=20:=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=EC=97=90=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=96=B4?= =?UTF-8?q?=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemberReservationController.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java b/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java index 3c60ec8c..f7ee8b26 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java +++ b/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java @@ -1,5 +1,7 @@ package com.prgrms.catchtable.reservation.controller; +import com.prgrms.catchtable.common.login.LogIn; +import com.prgrms.catchtable.member.domain.Member; import com.prgrms.catchtable.reservation.dto.request.CreateReservationRequest; import com.prgrms.catchtable.reservation.dto.request.ModifyReservationRequest; import com.prgrms.catchtable.reservation.dto.response.CancelReservationResponse; @@ -28,14 +30,16 @@ public class MemberReservationController { @PostMapping public ResponseEntity preOccupyReservation( + @LogIn Member member, @RequestBody CreateReservationRequest request) { - return ResponseEntity.ok(memberReservationService.preOccupyReservation(request)); + return ResponseEntity.ok(memberReservationService.preOccupyReservation(member, request)); } @PostMapping("/success") public ResponseEntity registerReservation( + @LogIn Member member, @RequestBody CreateReservationRequest request) { - return ResponseEntity.ok(memberReservationService.registerReservation(request)); + return ResponseEntity.ok(memberReservationService.registerReservation(member, request)); } @PatchMapping("/{reservationId}") From 703982b5dbf079abe4087ca4ef27ed22eff08bbc Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:32:13 +0900 Subject: [PATCH 02/16] =?UTF-8?q?feat=20:=20=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=EC=97=90=20=EC=98=88=EC=95=BD=EA=B3=BC=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20=EB=A7=A4=ED=95=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/service/MemberReservationService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java index 4505a24b..fc45c755 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java +++ b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java @@ -13,6 +13,7 @@ import com.prgrms.catchtable.common.exception.custom.BadRequestCustomException; import com.prgrms.catchtable.common.exception.custom.NotFoundCustomException; +import com.prgrms.catchtable.member.domain.Member; import com.prgrms.catchtable.reservation.domain.Reservation; import com.prgrms.catchtable.reservation.domain.ReservationTime; import com.prgrms.catchtable.reservation.dto.mapper.ReservationMapper; @@ -41,7 +42,7 @@ public class MemberReservationService { private final ReservationLockRepository reservationLockRepository; @Transactional - public CreateReservationResponse preOccupyReservation(CreateReservationRequest request) { + public CreateReservationResponse preOccupyReservation(Member member, CreateReservationRequest request) { Long reservationTimeId = request.reservationTimeId(); while (FALSE.equals(reservationLockRepository.lock(reservationTimeId))) { try { @@ -65,14 +66,14 @@ public CreateReservationResponse preOccupyReservation(CreateReservationRequest r return CreateReservationResponse.builder() .shopName(shop.getName()) - .memberName("memberA") + .memberName(member.getName()) .date(reservationTime.getTime()) .peopleCount(request.peopleCount()) .build(); } @Transactional - public CreateReservationResponse registerReservation(CreateReservationRequest request) { + public CreateReservationResponse registerReservation(Member member, CreateReservationRequest request) { ReservationTime reservationTime = reservationTimeRepository.findByIdWithShop( request.reservationTimeId()). orElseThrow(() -> new NotFoundCustomException(NOT_EXIST_TIME)); @@ -85,6 +86,7 @@ public CreateReservationResponse registerReservation(CreateReservationRequest re .status(COMPLETED) .peopleCount(request.peopleCount()) .reservationTime(reservationTime) + .member(member) .build(); Reservation savedReservation = reservationRepository.save(reservation); return toCreateReservationResponse(savedReservation); From 25633e3d26ad0144cd0c6f75a8db99bc2a539433 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:32:24 +0900 Subject: [PATCH 03/16] =?UTF-8?q?feat=20:=20=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=EC=97=90=20=EC=98=88=EC=95=BD=EA=B3=BC=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20=EB=A7=A4=ED=95=91=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MemberReservationServiceIntegrationTest.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java index 80bd26e0..79437015 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java @@ -4,6 +4,9 @@ import com.prgrms.catchtable.common.data.shop.ShopData; import com.prgrms.catchtable.common.exception.custom.BadRequestCustomException; +import com.prgrms.catchtable.member.MemberFixture; +import com.prgrms.catchtable.member.domain.Member; +import com.prgrms.catchtable.member.repository.MemberRepository; import com.prgrms.catchtable.reservation.domain.ReservationTime; import com.prgrms.catchtable.reservation.dto.request.CreateReservationRequest; import com.prgrms.catchtable.reservation.fixture.ReservationFixture; @@ -33,11 +36,18 @@ public class MemberReservationServiceIntegrationTest { @Autowired private ShopRepository shopRepository; + @Autowired + private MemberRepository memberRepository; + @BeforeEach void setUp() { Shop shop = ShopData.getShop(); Shop savedShop = shopRepository.save(shop); + Member member = MemberFixture.member("dlswns661035@gmail.com"); + memberRepository.save(member); + + ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); reservationTime.insertShop(savedShop); reservationTimeRepository.save(reservationTime); @@ -46,6 +56,7 @@ void setUp() { @Test @DisplayName("동시에 요청이 들어오면 하나만 선점권이 true로 바뀌고 나머진 예외가 발생한다.") void concurrencyTest() throws InterruptedException { + Member member = memberRepository.findAll().get(0); AtomicInteger errorCount = new AtomicInteger(0); List all = reservationTimeRepository.findAll(); @@ -60,7 +71,7 @@ void concurrencyTest() throws InterruptedException { for (int i = 0; i < threadCount; i++) { executorService.submit(() -> { try { - memberReservationService.preOccupyReservation(request); + memberReservationService.preOccupyReservation(member, request); } catch (BadRequestCustomException e) { errorCount.incrementAndGet(); } finally { From 2a391aaa8c5e481696cfa1deaa1c1f369db5e83d Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:33:36 +0900 Subject: [PATCH 04/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=8B=9C=EC=97=90=20=ED=9A=8C=EC=9B=90=20=EB=B0=9B?= =?UTF-8?q?=EB=8A=94=20=EA=B2=83=EC=9C=BC=EB=A1=9C=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/prgrms/catchtable/reservation/domain/Reservation.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/domain/Reservation.java b/src/main/java/com/prgrms/catchtable/reservation/domain/Reservation.java index 2a64ace1..39ab0258 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/domain/Reservation.java +++ b/src/main/java/com/prgrms/catchtable/reservation/domain/Reservation.java @@ -53,11 +53,12 @@ public class Reservation extends BaseEntity { @Builder public Reservation(ReservationStatus status, int peopleCount, - ReservationTime reservationTime) { + ReservationTime reservationTime, Member member) { this.status = status; this.peopleCount = peopleCount; this.reservationTime = reservationTime; this.shop = reservationTime.getShop(); + this.member = member; } public void modifyReservation(ReservationTime reservationTime, int peopleCount) { From a4003716e1be96bc6a884b38a47e2f52c3f23397 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:33:47 +0900 Subject: [PATCH 05/16] =?UTF-8?q?feat=20:=20=EC=84=9C=EB=B9=84=EC=8A=A4=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MemberReservationServiceTest.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java index 02b110db..7b548ac8 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java @@ -13,6 +13,8 @@ import com.prgrms.catchtable.common.data.shop.ShopData; import com.prgrms.catchtable.common.exception.custom.BadRequestCustomException; import com.prgrms.catchtable.common.exception.custom.NotFoundCustomException; +import com.prgrms.catchtable.member.MemberFixture; +import com.prgrms.catchtable.member.domain.Member; import com.prgrms.catchtable.reservation.domain.Reservation; import com.prgrms.catchtable.reservation.domain.ReservationTime; import com.prgrms.catchtable.reservation.dto.request.CreateReservationRequest; @@ -54,6 +56,7 @@ class MemberReservationServiceTest { @DisplayName("예약시간의 선점 여부를 검증하고 선점권이 빈 것을 확인한다.") void validateReservation() { //given + Member member = MemberFixture.member("dlswns661035@gmail.com"); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -64,7 +67,7 @@ void validateReservation() { when(reservationLockRepository.unlock(1L)).thenReturn(TRUE); doNothing().when(reservationAsync).setPreOcuppied(reservationTime); //when - CreateReservationResponse response = memberReservationService.preOccupyReservation( + CreateReservationResponse response = memberReservationService.preOccupyReservation(member, request); //then @@ -81,6 +84,7 @@ void validateReservation() { @DisplayName("예약시간 선점권이 이미 타인에게 있는 경우 예외가 발생한다.") void alreadyPreOccupied() { //given + Member member = MemberFixture.member("dlswns661035@gmail.com"); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -91,7 +95,7 @@ void alreadyPreOccupied() { //when assertThrows(BadRequestCustomException.class, - () -> memberReservationService.preOccupyReservation(request)); + () -> memberReservationService.preOccupyReservation(member, request)); } @@ -99,19 +103,21 @@ void alreadyPreOccupied() { @Test @DisplayName("최종예약을 등록할 때 예약시간이 비었으면 성공적으로 예약 등록을 완료한다.") void registerReservation() { + Member member = MemberFixture.member("dlswns661035@gmail.com"); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); CreateReservationRequest request = ReservationFixture.getCreateReservationRequest(); Reservation reservation = Reservation.builder() .status(COMPLETED) .peopleCount(request.peopleCount()) .reservationTime(reservationTime) + .member(member) .build(); when(reservationTimeRepository.findByIdWithShop(any(Long.class))).thenReturn( Optional.of(reservationTime)); when(reservationRepository.save(any(Reservation.class))).thenReturn(reservation); - CreateReservationResponse response = memberReservationService.registerReservation(request); + CreateReservationResponse response = memberReservationService.registerReservation(member, request); assertAll( () -> assertThat(response.date()).isEqualTo(reservationTime.getTime()), @@ -123,6 +129,7 @@ void registerReservation() { @Test @DisplayName("최종예약을 등록할 때 타인이 이미 예약한 경우 예외가 발생한다.") void registerReservationAlreadyOccupied() { + Member member = MemberFixture.member("dlswns661035@gmail.com"); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); CreateReservationRequest request = ReservationFixture.getCreateReservationRequest(); @@ -131,7 +138,7 @@ void registerReservationAlreadyOccupied() { Optional.of(reservationTime)); assertThrows(BadRequestCustomException.class, - () -> memberReservationService.registerReservation(request)); + () -> memberReservationService.registerReservation(member, request)); } @Test From 3df4196ff8b10bff7160e576930e214f37476025 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:34:10 +0900 Subject: [PATCH 06/16] =?UTF-8?q?feat=20:=20BaseIntegration=EC=97=90=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EA=B4=80=EB=A0=A8=20=ED=95=84=EC=9A=94?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catchtable/common/base/BaseIntegrationTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java b/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java index 0e2bc05c..cbf75673 100644 --- a/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java +++ b/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java @@ -2,16 +2,24 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.prgrms.catchtable.jwt.provider.JwtTokenProvider; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.HttpHeaders; import org.springframework.test.web.servlet.MockMvc; @SpringBootTest @AutoConfigureMockMvc public abstract class BaseIntegrationTest { + @Autowired + public JwtTokenProvider jwtTokenProvider; + public static ObjectMapper objectMapper = new ObjectMapper(); + + public HttpHeaders httpHeaders = new HttpHeaders(); @Autowired public MockMvc mockMvc; From 237928b4370b3e12c2ddf92922f67fb7eab29df5 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 13:35:25 +0900 Subject: [PATCH 07/16] =?UTF-8?q?feat=20:=20BaseIntegration=EC=97=90=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EA=B4=80=EB=A0=A8=20=ED=95=84=EC=9A=94?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MemberReservationControllerTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java index 59419010..e115b56a 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java @@ -13,6 +13,10 @@ import com.prgrms.catchtable.common.base.BaseIntegrationTest; import com.prgrms.catchtable.common.data.shop.ShopData; +import com.prgrms.catchtable.jwt.token.Token; +import com.prgrms.catchtable.member.MemberFixture; +import com.prgrms.catchtable.member.domain.Member; +import com.prgrms.catchtable.member.repository.MemberRepository; import com.prgrms.catchtable.reservation.domain.Reservation; import com.prgrms.catchtable.reservation.domain.ReservationTime; import com.prgrms.catchtable.reservation.dto.request.CreateReservationRequest; @@ -40,15 +44,26 @@ class MemberReservationControllerTest extends BaseIntegrationTest { private ShopRepository shopRepository; @Autowired private ReservationRepository reservationRepository; + @Autowired + private MemberRepository memberRepository; + + @BeforeEach void setUp() { Shop shop = ShopData.getShop(); Shop savedShop = shopRepository.save(shop); + Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member savedMember = memberRepository.save(member); + ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); reservationTime.insertShop(savedShop); reservationTimeRepository.save(reservationTime); + + Token token = jwtTokenProvider.createToken(savedMember.getEmail()); + httpHeaders.add("AccessToken", token.getAccessToken()); + httpHeaders.add("RefreshToken",token.getRefreshToken()); } @Test @@ -62,6 +77,7 @@ void preOccupyReservation() throws Exception { mockMvc.perform(post("/reservations") .contentType(APPLICATION_JSON) + .headers(httpHeaders) .content(asJsonString(request))) .andExpect(status().isOk()) .andExpect(jsonPath("$.shopName").value(reservationTime.getShop().getName())) @@ -80,6 +96,7 @@ void schedulerTest() throws Exception { reservationTime.getId()); mockMvc.perform(post("/reservations") + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))); @@ -98,6 +115,7 @@ void resigerReservation() throws Exception { reservationTime.getId()); mockMvc.perform(post("/reservations/success") + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))) .andExpect(status().isOk()) From 0141c58fd200db833fe36d1f090cac7c30768d99 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:10:44 +0900 Subject: [PATCH 08/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=EA=B0=80?= =?UTF-8?q?=EC=A0=B8=EC=98=A4=EB=8A=94=20=EC=BF=BC=EB=A6=AC=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=B6=94=EA=B0=80=20->=20=EC=9D=B8=EC=9E=90?= =?UTF-8?q?=EB=A1=9C=20=EB=93=A4=EC=96=B4=EC=98=A8=20Member=EC=99=80=20?= =?UTF-8?q?=EC=9D=BC=EC=B9=98=ED=95=98=EB=8A=94=20=EC=98=88=EC=95=BD=20?= =?UTF-8?q?=EA=B0=80=EC=A0=B8=EC=98=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/repository/ReservationRepository.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/repository/ReservationRepository.java b/src/main/java/com/prgrms/catchtable/reservation/repository/ReservationRepository.java index b2168c26..cf51a4c9 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/repository/ReservationRepository.java +++ b/src/main/java/com/prgrms/catchtable/reservation/repository/ReservationRepository.java @@ -1,5 +1,6 @@ package com.prgrms.catchtable.reservation.repository; +import com.prgrms.catchtable.member.domain.Member; import com.prgrms.catchtable.reservation.domain.Reservation; import java.util.List; import java.util.Optional; @@ -11,8 +12,9 @@ public interface ReservationRepository extends JpaRepository @Query("select r from Reservation r " + "join fetch r.reservationTime rt " - + "join fetch rt.shop") - List findAllWithReservationTimeAndShop(); + + "join fetch rt.shop " + + "where r.member = :member") + List findAllWithReservationTimeAndShopByMemberId(@Param("member") Member member); @Query("select r from Reservation r " + "join fetch r.reservationTime rt " From 0ee8ac0149c0ef42aa9b65a52d3b30e385e8ca11 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:10:54 +0900 Subject: [PATCH 09/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=EA=B0=80?= =?UTF-8?q?=EC=A0=B8=EC=98=A4=EB=8A=94=20=EC=BF=BC=EB=A6=AC=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=B6=94=EA=B0=80=EC=97=90=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/ReservationRepositoryTest.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java b/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java index 60c56962..4b1a8a1b 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java @@ -5,6 +5,9 @@ import static org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace.NONE; import com.prgrms.catchtable.common.data.shop.ShopData; +import com.prgrms.catchtable.member.MemberFixture; +import com.prgrms.catchtable.member.domain.Member; +import com.prgrms.catchtable.member.repository.MemberRepository; import com.prgrms.catchtable.reservation.domain.Reservation; import com.prgrms.catchtable.reservation.domain.ReservationTime; import com.prgrms.catchtable.reservation.fixture.ReservationFixture; @@ -28,25 +31,31 @@ class ReservationRepositoryTest { private ShopRepository shopRepository; @Autowired private ReservationTimeRepository reservationTimeRepository; + @Autowired + private MemberRepository memberRepository; @Test @DisplayName("예약 엔티티 조회 시 페치 조인을 통해 예약시간과 매장 엔티티를 한번에 조회한다.") void findAllWithReservationTimeAndShop() { + Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member savedMember = memberRepository.save(member); + ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); Shop shop = ShopData.getShop(); Shop savedShop = shopRepository.save(shop); reservationTime.insertShop(savedShop); ReservationTime savedReservationTime = reservationTimeRepository.save(reservationTime); - Reservation reservation = ReservationFixture.getReservation(savedReservationTime); + Reservation reservation = ReservationFixture.getReservation(savedReservationTime, member); reservationRepository.save(reservation); - List reservations = reservationRepository.findAllWithReservationTimeAndShop(); + List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId(savedMember); Reservation findReservation = reservations.get(0); assertAll( () -> assertThat(findReservation.getReservationTime()).isEqualTo(savedReservationTime), - () -> assertThat(findReservation.getShop()).isEqualTo(savedShop) + () -> assertThat(findReservation.getShop()).isEqualTo(savedShop), + () -> assertThat(findReservation.getMember()).isEqualTo(savedMember) ); } From 0ece307b09c2370e22fb095664190442d8fc46cb Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:11:29 +0900 Subject: [PATCH 10/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95,=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=EB=A7=8C=EC=9D=84=20=EA=B0=80=EC=A0=B8=EC=98=A4?= =?UTF-8?q?=EB=8A=94=20=EC=BF=BC=EB=A6=AC=20=ED=99=9C=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/service/MemberReservationService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java index fc45c755..6307cfa7 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java +++ b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java @@ -93,8 +93,8 @@ public CreateReservationResponse registerReservation(Member member, CreateReserv } @Transactional(readOnly = true) - public List getAllReservation() { - List reservations = reservationRepository.findAllWithReservationTimeAndShop(); + public List getAllReservation(Member member) { + List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId(member); return reservations.stream() .map(ReservationMapper::toGetAllReservationRepsonse) .toList(); From f4c88a805581863f804a0dbb1ccb0193e64eb8ca Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:11:37 +0900 Subject: [PATCH 11/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MemberReservationServiceTest.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java index 7b548ac8..95367806 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java @@ -144,12 +144,14 @@ void registerReservationAlreadyOccupied() { @Test @DisplayName("예약 전체 조회를 할 수 있다") void getAllReservation() { + Member member = MemberFixture.member("dlswns661035@gmail.com"); + ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); - Reservation reservation = ReservationFixture.getReservation(reservationTime); + Reservation reservation = ReservationFixture.getReservation(reservationTime,member); - when(reservationRepository.findAllWithReservationTimeAndShop()).thenReturn( + when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn( List.of(reservation)); - List all = memberReservationService.getAllReservation(); + List all = memberReservationService.getAllReservation(member); GetAllReservationResponse findReservation = all.get(0); assertAll( @@ -164,9 +166,10 @@ void getAllReservation() { @Test @DisplayName("예약 내역이 하나도 없을 시 조회되는 예약이 없다.") void getAllReservationWithNoResult() { - when(reservationRepository.findAllWithReservationTimeAndShop()).thenReturn(List.of()); + Member member = MemberFixture.member("dlswns661035@gmail.com"); + when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn(List.of()); - List all = memberReservationService.getAllReservation(); + List all = memberReservationService.getAllReservation(member); assertThat(all).isEmpty(); } From 3b28425ee8a677aa18a8e19a28ae784f30fbf852 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:12:39 +0900 Subject: [PATCH 12/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20api=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=96=B4?= =?UTF-8?q?=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemberReservationController.java | 4 ++-- .../controller/MemberReservationControllerTest.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java b/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java index f7ee8b26..3cbaa1a9 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java +++ b/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java @@ -57,7 +57,7 @@ public ResponseEntity cancelReservation( } @GetMapping - public ResponseEntity> getAllReservation() { - return ResponseEntity.ok(memberReservationService.getAllReservation()); + public ResponseEntity> getAllReservation(@LogIn Member member) { + return ResponseEntity.ok(memberReservationService.getAllReservation(member)); } } diff --git a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java index e115b56a..cf4733e6 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java @@ -1,16 +1,19 @@ package com.prgrms.catchtable.reservation.controller; +import static com.prgrms.catchtable.common.Role.*; import static com.prgrms.catchtable.common.exception.ErrorCode.ALREADY_OCCUPIED_RESERVATION_TIME; import static com.prgrms.catchtable.reservation.domain.ReservationStatus.CANCELLED; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.head; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import com.prgrms.catchtable.common.Role; import com.prgrms.catchtable.common.base.BaseIntegrationTest; import com.prgrms.catchtable.common.data.shop.ShopData; import com.prgrms.catchtable.jwt.token.Token; @@ -61,7 +64,7 @@ void setUp() { reservationTime.insertShop(savedShop); reservationTimeRepository.save(reservationTime); - Token token = jwtTokenProvider.createToken(savedMember.getEmail()); + Token token = jwtTokenProvider.createToken(savedMember.getEmail(), MEMBER); httpHeaders.add("AccessToken", token.getAccessToken()); httpHeaders.add("RefreshToken",token.getRefreshToken()); } @@ -140,6 +143,7 @@ void registerReservationWithException() throws Exception { CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( savedReservationTime.getId()); mockMvc.perform(post("/reservations/success") + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))) .andExpect(status().isBadRequest()) @@ -196,12 +200,14 @@ void cancelReservation() throws Exception { @Test @DisplayName("회원은 자신의 예약내역을 조회할 수 있다.") void getAllReservation() throws Exception { + Member member = memberRepository.findAll().get(0); Reservation reservation = ReservationFixture.getReservation( - reservationTimeRepository.findAll().get(0)); + reservationTimeRepository.findAll().get(0), member); Reservation savedReservation = reservationRepository.save(reservation); - mockMvc.perform(get("/reservations")) + mockMvc.perform(get("/reservations") + .headers(httpHeaders)) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].reservationId").value(savedReservation.getId())) .andExpect(jsonPath("$[0].date").value( From 3a30484ad69d6a44fb0c825826871a39d89d56bb Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:12:50 +0900 Subject: [PATCH 13/16] =?UTF-8?q?feat=20:=20=EC=98=88=EC=95=BD=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=9A=A9=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/fixture/ReservationFixture.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/com/prgrms/catchtable/reservation/fixture/ReservationFixture.java b/src/test/java/com/prgrms/catchtable/reservation/fixture/ReservationFixture.java index e299f0c7..af468e84 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/fixture/ReservationFixture.java +++ b/src/test/java/com/prgrms/catchtable/reservation/fixture/ReservationFixture.java @@ -3,6 +3,7 @@ import static com.prgrms.catchtable.reservation.domain.ReservationStatus.COMPLETED; import com.prgrms.catchtable.common.data.shop.ShopData; +import com.prgrms.catchtable.member.domain.Member; import com.prgrms.catchtable.reservation.domain.Reservation; import com.prgrms.catchtable.reservation.domain.ReservationStatus; import com.prgrms.catchtable.reservation.domain.ReservationTime; @@ -95,4 +96,16 @@ public static ModifyReservationStatusRequest getModifyReservationStatusRequest( .build(); } + public static Reservation getReservation(ReservationTime reservationTime, Member member) { + if (!reservationTime.isOccupied()) { + reservationTime.setOccupiedTrue(); + } + return Reservation.builder() + .status(COMPLETED) + .peopleCount(4) + .reservationTime(reservationTime) + .member(member) + .build(); + } + } From f13b9b366b43e619984cbb1de845b40e60ac1fcb Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:27:42 +0900 Subject: [PATCH 14/16] =?UTF-8?q?style=20:=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=ED=8F=AC=EB=A7=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/prgrms/catchtable/common/login/WebConfig.java | 2 +- .../reservation/service/MemberReservationService.java | 9 ++++++--- .../catchtable/common/base/BaseIntegrationTest.java | 1 - .../catchtable/owner/service/OwnerServiceTest.java | 3 ++- .../controller/MemberReservationControllerTest.java | 9 +++------ .../repository/ReservationRepositoryTest.java | 3 ++- .../service/MemberReservationServiceIntegrationTest.java | 2 -- .../service/MemberReservationServiceTest.java | 8 +++++--- 8 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/prgrms/catchtable/common/login/WebConfig.java b/src/main/java/com/prgrms/catchtable/common/login/WebConfig.java index 58418bc5..f5dbb6e1 100644 --- a/src/main/java/com/prgrms/catchtable/common/login/WebConfig.java +++ b/src/main/java/com/prgrms/catchtable/common/login/WebConfig.java @@ -9,7 +9,7 @@ public class WebConfig implements WebMvcConfigurer { @Override - public void addArgumentResolvers(List resolvers){ + public void addArgumentResolvers(List resolvers) { resolvers.add(new LogInArgumentResolver()); } diff --git a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java index 6307cfa7..ee07abdc 100644 --- a/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java +++ b/src/main/java/com/prgrms/catchtable/reservation/service/MemberReservationService.java @@ -42,7 +42,8 @@ public class MemberReservationService { private final ReservationLockRepository reservationLockRepository; @Transactional - public CreateReservationResponse preOccupyReservation(Member member, CreateReservationRequest request) { + public CreateReservationResponse preOccupyReservation(Member member, + CreateReservationRequest request) { Long reservationTimeId = request.reservationTimeId(); while (FALSE.equals(reservationLockRepository.lock(reservationTimeId))) { try { @@ -73,7 +74,8 @@ public CreateReservationResponse preOccupyReservation(Member member, CreateReser } @Transactional - public CreateReservationResponse registerReservation(Member member, CreateReservationRequest request) { + public CreateReservationResponse registerReservation(Member member, + CreateReservationRequest request) { ReservationTime reservationTime = reservationTimeRepository.findByIdWithShop( request.reservationTimeId()). orElseThrow(() -> new NotFoundCustomException(NOT_EXIST_TIME)); @@ -94,7 +96,8 @@ public CreateReservationResponse registerReservation(Member member, CreateReserv @Transactional(readOnly = true) public List getAllReservation(Member member) { - List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId(member); + List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId( + member); return reservations.stream() .map(ReservationMapper::toGetAllReservationRepsonse) .toList(); diff --git a/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java b/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java index cbf75673..3841e406 100644 --- a/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java +++ b/src/test/java/com/prgrms/catchtable/common/base/BaseIntegrationTest.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.prgrms.catchtable.jwt.provider.JwtTokenProvider; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; diff --git a/src/test/java/com/prgrms/catchtable/owner/service/OwnerServiceTest.java b/src/test/java/com/prgrms/catchtable/owner/service/OwnerServiceTest.java index ebb385c1..0758a08b 100644 --- a/src/test/java/com/prgrms/catchtable/owner/service/OwnerServiceTest.java +++ b/src/test/java/com/prgrms/catchtable/owner/service/OwnerServiceTest.java @@ -79,7 +79,8 @@ void loginSuccess() { //given LoginOwnerRequest loginOwnerRequest = OwnerFixture.getLoginOwnerRequest(email, password); String encodePassword = passwordEncoder.encode(password); - Token token = new Token("AccessToken", "RefreshToken", loginOwnerRequest.email(), Role.OWNER); + Token token = new Token("AccessToken", "RefreshToken", loginOwnerRequest.email(), + Role.OWNER); //when when(ownerRepository.findOwnerByEmail(loginOwnerRequest.email())).thenReturn( diff --git a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java index cf4733e6..f9d1ec98 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java @@ -1,19 +1,17 @@ package com.prgrms.catchtable.reservation.controller; -import static com.prgrms.catchtable.common.Role.*; +import static com.prgrms.catchtable.common.Role.MEMBER; import static com.prgrms.catchtable.common.exception.ErrorCode.ALREADY_OCCUPIED_RESERVATION_TIME; import static com.prgrms.catchtable.reservation.domain.ReservationStatus.CANCELLED; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.head; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.prgrms.catchtable.common.Role; import com.prgrms.catchtable.common.base.BaseIntegrationTest; import com.prgrms.catchtable.common.data.shop.ShopData; import com.prgrms.catchtable.jwt.token.Token; @@ -51,7 +49,6 @@ class MemberReservationControllerTest extends BaseIntegrationTest { private MemberRepository memberRepository; - @BeforeEach void setUp() { Shop shop = ShopData.getShop(); @@ -66,7 +63,7 @@ void setUp() { Token token = jwtTokenProvider.createToken(savedMember.getEmail(), MEMBER); httpHeaders.add("AccessToken", token.getAccessToken()); - httpHeaders.add("RefreshToken",token.getRefreshToken()); + httpHeaders.add("RefreshToken", token.getRefreshToken()); } @Test @@ -99,7 +96,7 @@ void schedulerTest() throws Exception { reservationTime.getId()); mockMvc.perform(post("/reservations") - .headers(httpHeaders) + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))); diff --git a/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java b/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java index 4b1a8a1b..317502c3 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/repository/ReservationRepositoryTest.java @@ -49,7 +49,8 @@ void findAllWithReservationTimeAndShop() { Reservation reservation = ReservationFixture.getReservation(savedReservationTime, member); reservationRepository.save(reservation); - List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId(savedMember); + List reservations = reservationRepository.findAllWithReservationTimeAndShopByMemberId( + savedMember); Reservation findReservation = reservations.get(0); assertAll( diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java index 79437015..c42eb129 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceIntegrationTest.java @@ -19,7 +19,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -47,7 +46,6 @@ void setUp() { Member member = MemberFixture.member("dlswns661035@gmail.com"); memberRepository.save(member); - ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); reservationTime.insertShop(savedShop); reservationTimeRepository.save(reservationTime); diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java index 95367806..5d837e4e 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java @@ -117,7 +117,8 @@ void registerReservation() { Optional.of(reservationTime)); when(reservationRepository.save(any(Reservation.class))).thenReturn(reservation); - CreateReservationResponse response = memberReservationService.registerReservation(member, request); + CreateReservationResponse response = memberReservationService.registerReservation(member, + request); assertAll( () -> assertThat(response.date()).isEqualTo(reservationTime.getTime()), @@ -147,7 +148,7 @@ void getAllReservation() { Member member = MemberFixture.member("dlswns661035@gmail.com"); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); - Reservation reservation = ReservationFixture.getReservation(reservationTime,member); + Reservation reservation = ReservationFixture.getReservation(reservationTime, member); when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn( List.of(reservation)); @@ -167,7 +168,8 @@ void getAllReservation() { @DisplayName("예약 내역이 하나도 없을 시 조회되는 예약이 없다.") void getAllReservationWithNoResult() { Member member = MemberFixture.member("dlswns661035@gmail.com"); - when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn(List.of()); + when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn( + List.of()); List all = memberReservationService.getAllReservation(member); assertThat(all).isEmpty(); From 051a5938c759bde7290c507206124a4b57ceee12 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 14:56:56 +0900 Subject: [PATCH 15/16] =?UTF-8?q?feat=20:=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EA=B2=80=EC=A6=9D?= =?UTF-8?q?=EC=9A=94=EC=86=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemberReservationControllerTest.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java index f9d1ec98..e9f0e0a2 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java @@ -47,14 +47,14 @@ class MemberReservationControllerTest extends BaseIntegrationTest { private ReservationRepository reservationRepository; @Autowired private MemberRepository memberRepository; - + private Member member = MemberFixture.member("dlswns661035@gmail.com"); @BeforeEach void setUp() { Shop shop = ShopData.getShop(); Shop savedShop = shopRepository.save(shop); - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member savedMember = memberRepository.save(member); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); @@ -81,6 +81,7 @@ void preOccupyReservation() throws Exception { .content(asJsonString(request))) .andExpect(status().isOk()) .andExpect(jsonPath("$.shopName").value(reservationTime.getShop().getName())) + .andExpect(jsonPath("$.memberName").value(member.getName())) .andExpect(jsonPath("$.date").value(reservationTime.getTime().toString())) .andExpect(jsonPath("$.peopleCount").value(request.peopleCount())); } @@ -122,8 +123,11 @@ void resigerReservation() throws Exception { .andExpect(jsonPath("$.shopName").value(reservationTime.getShop().getName())) .andExpect(jsonPath("$.date").value(reservationTime.getTime().toString())) .andExpect(jsonPath("$.peopleCount").value(request.peopleCount())); - + Reservation reservation = reservationRepository.findAllWithReservationTimeAndShopByMemberId( + member).get(0); assertThat(reservationTime.isOccupied()).isTrue(); + assertThat(reservation.getReservationTime()).isEqualTo(reservationTime); + assertThat(reservation.getShop()).isEqualTo(reservationTime.getShop()); } @Test From 06820f7a5b687c013555e2c4044e67282baabeb7 Mon Sep 17 00:00:00 2001 From: dlswns2480 Date: Tue, 9 Jan 2024 16:12:19 +0900 Subject: [PATCH 16/16] =?UTF-8?q?refactor=20:=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EC=98=88=EC=95=BD=EC=84=9C=EB=B9=84=EC=8A=A4=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20email=20=EB=84=A3=EB=8A=94=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EC=83=81=EC=88=98=EB=A1=9C=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MemberReservationServiceTest.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java index 5d837e4e..cf3ead87 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/service/MemberReservationServiceTest.java @@ -51,12 +51,13 @@ class MemberReservationServiceTest { private ReservationTimeRepository reservationTimeRepository; @InjectMocks private MemberReservationService memberReservationService; + private final String email = "dlswns661035@gmail.com"; @Test @DisplayName("예약시간의 선점 여부를 검증하고 선점권이 빈 것을 확인한다.") void validateReservation() { //given - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -84,7 +85,7 @@ void validateReservation() { @DisplayName("예약시간 선점권이 이미 타인에게 있는 경우 예외가 발생한다.") void alreadyPreOccupied() { //given - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -103,7 +104,7 @@ void alreadyPreOccupied() { @Test @DisplayName("최종예약을 등록할 때 예약시간이 비었으면 성공적으로 예약 등록을 완료한다.") void registerReservation() { - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); CreateReservationRequest request = ReservationFixture.getCreateReservationRequest(); Reservation reservation = Reservation.builder() @@ -130,7 +131,7 @@ void registerReservation() { @Test @DisplayName("최종예약을 등록할 때 타인이 이미 예약한 경우 예외가 발생한다.") void registerReservationAlreadyOccupied() { - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); CreateReservationRequest request = ReservationFixture.getCreateReservationRequest(); @@ -145,7 +146,7 @@ void registerReservationAlreadyOccupied() { @Test @DisplayName("예약 전체 조회를 할 수 있다") void getAllReservation() { - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); Reservation reservation = ReservationFixture.getReservation(reservationTime, member); @@ -167,7 +168,7 @@ void getAllReservation() { @Test @DisplayName("예약 내역이 하나도 없을 시 조회되는 예약이 없다.") void getAllReservationWithNoResult() { - Member member = MemberFixture.member("dlswns661035@gmail.com"); + Member member = MemberFixture.member(email); when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn( List.of());