From 22f7c59a242445f60e10cf77f8bb669ffbe69abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=90=EC=B0=BD=ED=98=84?= Date: Thu, 16 Jun 2022 19:54:03 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20movieRepository=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EB=B3=80=EA=B2=BD=20findByDeletedAt()=20-?= =?UTF-8?q?>=20findValidMovies()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/repository/MovieRepository.java | 6 ++++- .../movie/service/MovieServiceImplTest.java | 27 +++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java b/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java index f1171f5..c1888a2 100644 --- a/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java +++ b/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java @@ -5,6 +5,7 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @Repository @@ -12,6 +13,9 @@ public interface MovieRepository extends JpaRepository { Optional findByTitle(String title); - List findByDeletedAt(LocalDateTime localDateTime); + @Query(value = "SELECT * " + + "FROM movie " + + "WHERE deleted_at IS NULL", nativeQuery = true) + List findValidMovies(); } diff --git a/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java b/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java index 309bfa3..6150306 100644 --- a/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java +++ b/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java @@ -1,12 +1,13 @@ package com.ticketing.server.movie.service; -import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.when; import com.ticketing.server.movie.domain.Movie; import com.ticketing.server.movie.domain.repository.MovieRepository; import com.ticketing.server.movie.service.dto.MovieDto; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -30,26 +31,36 @@ public class MovieServiceImplTest { @InjectMocks MovieServiceImpl movieService; - @BeforeEach - void init() { - movie = new Movie("범죄도시2", 106); - movieDto = movie.toDto(); + @Test + @DisplayName("Movie Service Test - get movies when there is no movie") + void shouldGetEmptyList() { + // given + when(movieRepository.findByDeletedAt(null)).thenReturn(Collections.emptyList()); + + // when + List movieDtoList = movieService.getMovies(); + + // then + assertTrue(movieDtoList.isEmpty()); - movies.add(movie); - movieDtos.add(movieDto); } @Test @DisplayName("Movie Service Test - get movies") void shouldAbleToGetMovies() { // given + movie = new Movie("범죄도시2", 106); + movieDto = movie.toDto(); + movies.add(movie); + movieDtos.add(movieDto); + when(movieRepository.findByDeletedAt(null)).thenReturn(movies); // when List movieDtoList = movieService.getMovies(); // then - assertFalse(movieDtoList.isEmpty()); + assertTrue(!movieDtoList.isEmpty()); } }