refactor: movieRepository 메서드 변경 findByDeletedAt() -> findValidMovies()

This commit is contained in:
손창현
2022-06-16 19:54:03 +09:00
parent 1613466fed
commit 22f7c59a24
2 changed files with 24 additions and 9 deletions

View File

@@ -5,6 +5,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
@@ -12,6 +13,9 @@ public interface MovieRepository extends JpaRepository<Movie, Long> {
Optional<Movie> findByTitle(String title); Optional<Movie> findByTitle(String title);
List<Movie> findByDeletedAt(LocalDateTime localDateTime); @Query(value = "SELECT * "
+ "FROM movie "
+ "WHERE deleted_at IS NULL", nativeQuery = true)
List<Movie> findValidMovies();
} }

View File

@@ -1,12 +1,13 @@
package com.ticketing.server.movie.service; 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 static org.mockito.Mockito.when;
import com.ticketing.server.movie.domain.Movie; import com.ticketing.server.movie.domain.Movie;
import com.ticketing.server.movie.domain.repository.MovieRepository; import com.ticketing.server.movie.domain.repository.MovieRepository;
import com.ticketing.server.movie.service.dto.MovieDto; import com.ticketing.server.movie.service.dto.MovieDto;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@@ -30,26 +31,36 @@ public class MovieServiceImplTest {
@InjectMocks @InjectMocks
MovieServiceImpl movieService; MovieServiceImpl movieService;
@BeforeEach @Test
void init() { @DisplayName("Movie Service Test - get movies when there is no movie")
movie = new Movie("범죄도시2", 106); void shouldGetEmptyList() {
movieDto = movie.toDto(); // given
when(movieRepository.findByDeletedAt(null)).thenReturn(Collections.emptyList());
// when
List<MovieDto> movieDtoList = movieService.getMovies();
// then
assertTrue(movieDtoList.isEmpty());
movies.add(movie);
movieDtos.add(movieDto);
} }
@Test @Test
@DisplayName("Movie Service Test - get movies") @DisplayName("Movie Service Test - get movies")
void shouldAbleToGetMovies() { void shouldAbleToGetMovies() {
// given // given
movie = new Movie("범죄도시2", 106);
movieDto = movie.toDto();
movies.add(movie);
movieDtos.add(movieDto);
when(movieRepository.findByDeletedAt(null)).thenReturn(movies); when(movieRepository.findByDeletedAt(null)).thenReturn(movies);
// when // when
List<MovieDto> movieDtoList = movieService.getMovies(); List<MovieDto> movieDtoList = movieService.getMovies();
// then // then
assertFalse(movieDtoList.isEmpty()); assertTrue(!movieDtoList.isEmpty());
} }
} }