package de.codecentric.moviedatabase.movies; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.springframework.data.redis.core.StringRedisTemplate; import com.fasterxml.jackson.databind.ObjectMapper; import de.codecentric.moviedatabase.movies.domain.Movie; import de.codecentric.moviedatabase.movies.domain.Tag; import de.codecentric.moviedatabase.movies.service.InMemoryMovieService; public class InMemoryMovieServiceTest { private ObjectMapper objectMapper; private StringRedisTemplate redisTemplate; @Before public void setup(){ objectMapper = mock(ObjectMapper.class); redisTemplate = mock(StringRedisTemplate.class); } @Test public void testDeleteTags(){ InMemoryMovieService movieService = new InMemoryMovieService(redisTemplate, objectMapper); Set<Tag> tags = new HashSet<>(); tags.add(new Tag("Science Fiction")); List<Movie> movies = movieService.findMovieByTagsAndSearchString(tags, null); assertThat(movies.size(),is(1)); movieService.removeTagFromMovie(new Tag("Science Fiction"), movies.iterator().next().getId()); Movie movie = movieService.findMovieById(movies.iterator().next().getId()); assertThat(movie.getTags().size(),is(0)); movies = movieService.findMovieByTagsAndSearchString(tags, null); assertThat(movies.size(),is(0)); } }