package com.flicklib.service.movie.ofdb; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.List; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.flicklib.domain.MoviePage; import com.flicklib.domain.MovieSearchResult; import com.flicklib.domain.MovieType; import com.flicklib.service.SourceLoader; import com.flicklib.service.TestUtil; public class OfdbFetcherTest { private final static Logger LOG = LoggerFactory.getLogger(OfdbFetcherTest.class); private SourceLoader loader; private OfdbFetcher fetcher; @Before public void setUp() throws Exception { loader = TestUtil.createLoader(); fetcher = new OfdbFetcher(loader, new OfdbParser()); } @Test public void testSearchString() throws IOException { List<? extends MovieSearchResult> res = fetcher.search("Twin Peaks"); for(MovieSearchResult result:res){ assertEquals("OFDB", result.getService().getId()); LOG.info("result: " + result.getTitle() + " / " + result.getOriginalTitle() + " / " + result.getYear() + " / " + result.getType()); } assertEquals("Geheimnis von Twin Peaks, Das", res.get(0).getTitle()); assertEquals("Twin Peaks", res.get(0).getOriginalTitle()); assertEquals(Integer.valueOf(1990), res.get(0).getYear()); assertEquals(MovieType.MOVIE, res.get(0).getType()); assertEquals(MovieType.TV_SERIES, res.get(1).getType()); List<? extends MovieSearchResult> res2 = fetcher.search("mar adentro"); for(MovieSearchResult result:res2){ assertEquals("OFDB", result.getService().getId()); assertNotNull(result.getIdForSite()); LOG.info("result 2:" + result.getTitle() + " / " + result.getOriginalTitle() + " / " + result.getYear() + " / " + result.getType()); } } @Test public void testGetMovieInfo() throws IOException { MoviePage page = fetcher.getMovieInfo("1050,Pulp-Fiction"); assertEquals("OFDB", page.getService().getId()); assertEquals("Pulp Fiction", page.getTitle()); assertNotNull(page.getScore()); assertNotNull(page.getPlot()); assertNotNull(page.getDescription()); page = fetcher.getMovieInfo("3635,Dune---Der-Wüstenplanet"); assertEquals("OFDB", page.getService().getId()); assertEquals(MovieType.MINI_SERIES, page.getType()); assertEquals("Dune - Der Wüstenplanet", page.getAlternateTitle()); assertEquals("Dune", page.getTitle()); assertEquals("Dune", page.getOriginalTitle()); assertEquals(1, page.getDirectors().size()); assertTrue(page.getDirectors().contains("John Harrison")); assertTrue(page.getActors().contains("William Hurt")); assertTrue(page.getActors().contains("Alec Newman")); assertTrue(page.getActors().contains("Saskia Reeves")); assertEquals("http://img.ofdb.de/film/3/3635.jpg", page.getImgUrl()); assertEquals(Integer.valueOf(2000), page.getYear()); assertTrue(page.getGenres().contains("Abenteuer")); assertTrue(page.getGenres().contains("Mystery")); assertNotNull(page.getScore()); assertNotNull(page.getPlot()); assertNotNull(page.getDescription()); assertNotNull(page.getIdForSite()); } }