mirror of https://github.com/bvn13/imdb-spider.git
133 lines
6.1 KiB
Java
133 lines
6.1 KiB
Java
package ru.bvn13.imdbspider.runner;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
import ru.bvn13.imdbspider.ImdbSpider;
|
|
import ru.bvn13.imdbspider.exceptions.ImdbSpiderException;
|
|
import ru.bvn13.imdbspider.imdb.Movie;
|
|
import ru.bvn13.imdbspider.imdb.MovieDataType;
|
|
import ru.bvn13.imdbspider.imdb.MovieList;
|
|
import ru.bvn13.imdbspider.imdb.accessories.SoundMix;
|
|
|
|
|
|
public class MovieSearchTest {
|
|
|
|
private static final String TERMINATOR_STORYLINE = "A cyborg is sent from the future on a deadly mission. He has to kill Sarah Connor, a young woman whose life will have a great significance in years to come. Sarah has only one protector - Kyle Reese - also sent from the future. The Terminator uses his exceptional intelligence and strength to find Sarah, but is there any way to stop the seemingly indestructible cyborg ?";
|
|
private static final String TERMINATOR_POSTER_LINK = "https://m.media-amazon.com/images/M/MV5BYTViNzMxZjEtZGEwNy00MDNiLWIzNGQtZDY2MjQ1OWViZjFmXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_UX182_CR0,0,182,268_AL_.jpg";
|
|
|
|
private static ImdbSpider spider;
|
|
|
|
@BeforeClass
|
|
public static void initClass() {
|
|
spider = ImdbSpider.withApi_1_0()
|
|
.addHttpRequestHeader("Content-Language", "ru-RU");
|
|
}
|
|
|
|
@Test
|
|
public void testSearchTerminator() throws ImdbSpiderException {
|
|
MovieList result = spider.searchMovieByTitle("Терминатор", 5,
|
|
MovieDataType.ID,
|
|
MovieDataType.TITLE,
|
|
MovieDataType.ORIGINAL_TITLE,
|
|
MovieDataType.YEAR,
|
|
MovieDataType.STORYLINE,
|
|
MovieDataType.RANDOM_TAGLINE,
|
|
MovieDataType.GENRES,
|
|
MovieDataType.CERTIFICATE,
|
|
MovieDataType.OFFICIAL_SITES,
|
|
MovieDataType.COUNTRIES,
|
|
MovieDataType.LANGUAGES,
|
|
MovieDataType.RELEASE_DATE,
|
|
MovieDataType.BUDGET,
|
|
MovieDataType.CUMULATIVE_WORLDWIDE_GROSS,
|
|
MovieDataType.RUNTIME,
|
|
MovieDataType.SOUND_MIXES,
|
|
MovieDataType.COLOR,
|
|
MovieDataType.ASPECT_RATIO,
|
|
MovieDataType.POSTER
|
|
);
|
|
|
|
|
|
assertTrue(result.getMovies().size() > 0);
|
|
Movie movie = result.getMovies().get(0);
|
|
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.ID));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.TITLE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.ORIGINAL_TITLE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.YEAR));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.STORYLINE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.RANDOM_TAGLINE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.GENRES));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.CERTIFICATE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.OFFICIAL_SITES));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.COUNTRIES));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.LANGUAGES));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.RELEASE_DATE));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.BUDGET));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.CUMULATIVE_WORLDWIDE_GROSS));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.RUNTIME));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.SOUND_MIXES));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.COLOR));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.ASPECT_RATIO));
|
|
assertTrue(movie.isDataTypeRetrieved(MovieDataType.POSTER));
|
|
|
|
assertEquals("0088247", movie.getId());
|
|
assertEquals("The Terminator", movie.getOriginalTitle());
|
|
assertEquals(Integer.valueOf(1984), movie.getYear());
|
|
|
|
assertEquals(TERMINATOR_STORYLINE, movie.getStoryline());
|
|
//assertEquals(TERMINATOR_TAGLINES, movie.getRandomTagline());
|
|
assertTrue(movie.getGenres().contains("Action"));
|
|
assertTrue(movie.getGenres().contains("Sci-Fi"));
|
|
|
|
assertEquals("16+", movie.getCertificate());
|
|
|
|
//assertTrue(movie.getOfficialSites().contains("Facebook"));
|
|
assertTrue(movie.getOfficialSites().size() > 0);
|
|
assertEquals("Facebook", movie.getOfficialSites().get(0).getTitle());
|
|
//assertEquals(TERMINATOR_FACEBOOK_URL, movie.getOfficialSites().get(0).getUrl()); //not comparable, dynamic link
|
|
|
|
assertTrue(movie.getCountries().size() > 0);
|
|
assertTrue(movie.getCountries().contains("UK"));
|
|
assertTrue(movie.getCountries().contains("USA"));
|
|
|
|
assertTrue(movie.getLanguages().size() > 0);
|
|
assertTrue(movie.getLanguages().contains("English"));
|
|
assertTrue(movie.getLanguages().contains("Spanish"));
|
|
|
|
assertEquals("26 October 1984 (USA)", movie.getReleaseDate());
|
|
|
|
assertEquals("$6,400,000", movie.getBudget());
|
|
assertEquals("$40,000,000", movie.getCumulativeWorldwideGross());
|
|
|
|
assertEquals("107 min", movie.getRuntime());
|
|
|
|
//sound mixes
|
|
assertTrue(movie.getSoundMixes().size() > 0);
|
|
boolean hasMono=false, hasDolby=false, hasDTS=false;
|
|
String descrMono="", descrDolby="", descrDTS="";
|
|
for (SoundMix soundMix : movie.getSoundMixes()) {
|
|
switch (soundMix.getName()) {
|
|
case "Mono" : hasMono = true; descrMono = soundMix.getDescription(); break;
|
|
case "Dolby" : hasDolby = true; descrDolby = soundMix.getDescription(); break;
|
|
case "DTS" : hasDTS = true; descrDTS = soundMix.getDescription(); break;
|
|
}
|
|
}
|
|
assertTrue(hasMono);
|
|
assertTrue(hasDolby);
|
|
assertTrue(hasDTS);
|
|
assertEquals("(original release)", descrMono);
|
|
assertEquals("(DVD Re-Release)", descrDolby);
|
|
assertEquals("(DTS HD Master Audio)", descrDTS);
|
|
|
|
assertEquals("Color", movie.getColor());
|
|
|
|
assertEquals("1.85 : 1", movie.getAspectRatio());
|
|
|
|
assertEquals(TERMINATOR_POSTER_LINK, movie.getPosterLink());
|
|
}
|
|
}
|