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/controller/MemberReservationController.java b/src/main/java/com/prgrms/catchtable/reservation/controller/MemberReservationController.java index 3c60ec8c..3cbaa1a9 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}") @@ -53,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/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) { 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 " 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..ee07abdc 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,8 @@ 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 +67,15 @@ 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,14 +88,16 @@ public CreateReservationResponse registerReservation(CreateReservationRequest re .status(COMPLETED) .peopleCount(request.peopleCount()) .reservationTime(reservationTime) + .member(member) .build(); Reservation savedReservation = reservationRepository.save(reservation); return toCreateReservationResponse(savedReservation); } @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(); 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..3841e406 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,23 @@ 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.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; 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 59419010..e9f0e0a2 100644 --- a/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java +++ b/src/test/java/com/prgrms/catchtable/reservation/controller/MemberReservationControllerTest.java @@ -1,5 +1,6 @@ package com.prgrms.catchtable.reservation.controller; +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; @@ -13,6 +14,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 +45,25 @@ class MemberReservationControllerTest extends BaseIntegrationTest { private ShopRepository shopRepository; @Autowired 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 savedMember = memberRepository.save(member); + ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); reservationTime.insertShop(savedShop); reservationTimeRepository.save(reservationTime); + + Token token = jwtTokenProvider.createToken(savedMember.getEmail(), MEMBER); + httpHeaders.add("AccessToken", token.getAccessToken()); + httpHeaders.add("RefreshToken", token.getRefreshToken()); } @Test @@ -62,9 +77,11 @@ 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())) + .andExpect(jsonPath("$.memberName").value(member.getName())) .andExpect(jsonPath("$.date").value(reservationTime.getTime().toString())) .andExpect(jsonPath("$.peopleCount").value(request.peopleCount())); } @@ -80,6 +97,7 @@ void schedulerTest() throws Exception { reservationTime.getId()); mockMvc.perform(post("/reservations") + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))); @@ -98,14 +116,18 @@ void resigerReservation() throws Exception { reservationTime.getId()); mockMvc.perform(post("/reservations/success") + .headers(httpHeaders) .contentType(APPLICATION_JSON) .content(asJsonString(request))) .andExpect(status().isOk()) .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 @@ -122,6 +144,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()) @@ -178,12 +201,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( 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(); + } + } 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..317502c3 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,32 @@ 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) ); } 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..c42eb129 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; @@ -16,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; @@ -33,11 +35,17 @@ 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 +54,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 +69,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 { 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..cf3ead87 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; @@ -49,11 +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(email); ReservationTime reservationTime = ReservationFixture.getReservationTimeNotPreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -64,7 +68,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 +85,7 @@ void validateReservation() { @DisplayName("예약시간 선점권이 이미 타인에게 있는 경우 예외가 발생한다.") void alreadyPreOccupied() { //given + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); ReflectionTestUtils.setField(reservationTime, "id", 1L); CreateReservationRequest request = ReservationFixture.getCreateReservationRequestWithId( @@ -91,7 +96,7 @@ void alreadyPreOccupied() { //when assertThrows(BadRequestCustomException.class, - () -> memberReservationService.preOccupyReservation(request)); + () -> memberReservationService.preOccupyReservation(member, request)); } @@ -99,19 +104,22 @@ void alreadyPreOccupied() { @Test @DisplayName("최종예약을 등록할 때 예약시간이 비었으면 성공적으로 예약 등록을 완료한다.") void registerReservation() { + Member member = MemberFixture.member(email); 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 +131,7 @@ void registerReservation() { @Test @DisplayName("최종예약을 등록할 때 타인이 이미 예약한 경우 예외가 발생한다.") void registerReservationAlreadyOccupied() { + Member member = MemberFixture.member(email); ReservationTime reservationTime = ReservationFixture.getReservationTimePreOccupied(); CreateReservationRequest request = ReservationFixture.getCreateReservationRequest(); @@ -131,18 +140,20 @@ void registerReservationAlreadyOccupied() { Optional.of(reservationTime)); assertThrows(BadRequestCustomException.class, - () -> memberReservationService.registerReservation(request)); + () -> memberReservationService.registerReservation(member, request)); } @Test @DisplayName("예약 전체 조회를 할 수 있다") void getAllReservation() { + Member member = MemberFixture.member(email); + 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( @@ -157,9 +168,11 @@ void getAllReservation() { @Test @DisplayName("예약 내역이 하나도 없을 시 조회되는 예약이 없다.") void getAllReservationWithNoResult() { - when(reservationRepository.findAllWithReservationTimeAndShop()).thenReturn(List.of()); + Member member = MemberFixture.member(email); + when(reservationRepository.findAllWithReservationTimeAndShopByMemberId(member)).thenReturn( + List.of()); - List all = memberReservationService.getAllReservation(); + List all = memberReservationService.getAllReservation(member); assertThat(all).isEmpty(); }