Loading microservices-monorepo/recommendations/src/test/java/cz/muni/fi/pa165/recommendations/facade/RecommendationsFacadeTest.java +6 −13 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading Loading @@ -56,21 +57,13 @@ public class RecommendationsFacadeTest { void getRecommendedMovies_WithInvalidId_ThrowsException() { // Arrange long movieId = 154L; List<Movie> movies = TestDataFactory.createMovieList(); List<MovieDTO> movieDTOs = TestDataFactory.createMovieDTOList(movies.size()); Mockito.when(recommendationsService.getRecommendedMovies(movieId)).thenThrow(EntityNotFound); Mockito.when(movieMapper.mapToMovieDTOList(movies)).thenReturn(movieDTOs); // Act List<MovieDTO> result = recommendationsFacade.getRecommendedMovies(movieId); Mockito.when(recommendationsService.getRecommendedMovies(movieId)).thenThrow(RuntimeException.class); // Assert assertThat(result).isNotNull(); assertThat(result.size()).isEqualTo(movieDTOs.size()); assertThat(result).containsAll(movieDTOs); // Act & Assert assertThrows(RuntimeException.class, () -> recommendationsFacade.getRecommendedMovies(movieId), "Exception was not thrown"); verify(recommendationsService, times(1)).getRecommendedMovies(movieId); verify(movieMapper, times(1)).mapToMovieDTOList(any(List.class)); verify(movieMapper, times(0)).mapToMovieDTOList(any(List.class)); } @Test Loading microservices-monorepo/recommendations/src/test/java/cz/muni/fi/pa165/recommendations/rest/RecommendationsRestControllerTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line package cz.muni.fi.pa165.recommendations.rest; import cz.muni.fi.pa165.recommendations.api.MovieDTO; import cz.muni.fi.pa165.recommendations.facade.RecommendationsFacade; import cz.muni.fi.pa165.recommendations.util.TestDataFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @ExtendWith(MockitoExtension.class) public class RecommendationsRestControllerTest { @Mock private RecommendationsFacade recommendationsFacade; @InjectMocks private RecommendationsRestController restController; @Test void getRecommendedMovies_WithValidIdAndSpecificCount_Returns200StatusCodeAndValidDtoClassesAmount() { // Arrange long movieId = 1L; int count = 5; List<MovieDTO> movieDTOs = TestDataFactory.createMovieDTOList(count); Mockito.when(recommendationsFacade.getRecommendedMovies(movieId, count)).thenReturn(movieDTOs); // Act ResponseEntity<List<MovieDTO>> result = restController.getRecommendedMovies(movieId, count); // Assert assertThat(result).isNotNull(); assertThat(result.getStatusCode()).isEqualTo(HttpStatusCode.valueOf(200)); List<MovieDTO> resultMovies = result.getBody(); assertThat(resultMovies).isNotNull(); assertThat(resultMovies.size()).isEqualTo(movieDTOs.size()); assertThat(resultMovies).containsAll(movieDTOs); verify(recommendationsFacade, times(1)).getRecommendedMovies(movieId, count); } } Loading
microservices-monorepo/recommendations/src/test/java/cz/muni/fi/pa165/recommendations/facade/RecommendationsFacadeTest.java +6 −13 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading Loading @@ -56,21 +57,13 @@ public class RecommendationsFacadeTest { void getRecommendedMovies_WithInvalidId_ThrowsException() { // Arrange long movieId = 154L; List<Movie> movies = TestDataFactory.createMovieList(); List<MovieDTO> movieDTOs = TestDataFactory.createMovieDTOList(movies.size()); Mockito.when(recommendationsService.getRecommendedMovies(movieId)).thenThrow(EntityNotFound); Mockito.when(movieMapper.mapToMovieDTOList(movies)).thenReturn(movieDTOs); // Act List<MovieDTO> result = recommendationsFacade.getRecommendedMovies(movieId); Mockito.when(recommendationsService.getRecommendedMovies(movieId)).thenThrow(RuntimeException.class); // Assert assertThat(result).isNotNull(); assertThat(result.size()).isEqualTo(movieDTOs.size()); assertThat(result).containsAll(movieDTOs); // Act & Assert assertThrows(RuntimeException.class, () -> recommendationsFacade.getRecommendedMovies(movieId), "Exception was not thrown"); verify(recommendationsService, times(1)).getRecommendedMovies(movieId); verify(movieMapper, times(1)).mapToMovieDTOList(any(List.class)); verify(movieMapper, times(0)).mapToMovieDTOList(any(List.class)); } @Test Loading
microservices-monorepo/recommendations/src/test/java/cz/muni/fi/pa165/recommendations/rest/RecommendationsRestControllerTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line package cz.muni.fi.pa165.recommendations.rest; import cz.muni.fi.pa165.recommendations.api.MovieDTO; import cz.muni.fi.pa165.recommendations.facade.RecommendationsFacade; import cz.muni.fi.pa165.recommendations.util.TestDataFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @ExtendWith(MockitoExtension.class) public class RecommendationsRestControllerTest { @Mock private RecommendationsFacade recommendationsFacade; @InjectMocks private RecommendationsRestController restController; @Test void getRecommendedMovies_WithValidIdAndSpecificCount_Returns200StatusCodeAndValidDtoClassesAmount() { // Arrange long movieId = 1L; int count = 5; List<MovieDTO> movieDTOs = TestDataFactory.createMovieDTOList(count); Mockito.when(recommendationsFacade.getRecommendedMovies(movieId, count)).thenReturn(movieDTOs); // Act ResponseEntity<List<MovieDTO>> result = restController.getRecommendedMovies(movieId, count); // Assert assertThat(result).isNotNull(); assertThat(result.getStatusCode()).isEqualTo(HttpStatusCode.valueOf(200)); List<MovieDTO> resultMovies = result.getBody(); assertThat(resultMovies).isNotNull(); assertThat(resultMovies.size()).isEqualTo(movieDTOs.size()); assertThat(resultMovies).containsAll(movieDTOs); verify(recommendationsFacade, times(1)).getRecommendedMovies(movieId, count); } }