2019-01-14 11:30:54 +03:00
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 ;
2019-01-14 18:18:42 +03:00
import ru.bvn13.imdbspider.imdb.accessories.SoundMix ;
2019-01-14 11:30:54 +03:00
2019-01-14 18:18:42 +03:00
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" ;
2019-01-14 11:30:54 +03:00
private static ImdbSpider spider ;
@BeforeClass
public static void initClass ( ) {
2019-01-14 18:18:42 +03:00
spider = ImdbSpider . withApi_1_0 ( )
. addHttpRequestHeader ( "Content-Language" , "ru-RU" ) ;
2019-01-14 11:30:54 +03:00
}
@Test
public void testSearchTerminator ( ) throws ImdbSpiderException {
2019-01-14 18:18:42 +03:00
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
) ;
2019-01-14 11:30:54 +03:00
assertTrue ( result . getMovies ( ) . size ( ) > 0 ) ;
Movie movie = result . getMovies ( ) . get ( 0 ) ;
2019-01-14 18:18:42 +03:00
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 ) ) ;
2019-01-14 11:30:54 +03:00
assertEquals ( "0088247" , movie . getId ( ) ) ;
assertEquals ( "The Terminator" , movie . getOriginalTitle ( ) ) ;
assertEquals ( Integer . valueOf ( 1984 ) , movie . getYear ( ) ) ;
2019-01-14 18:18:42 +03:00
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 ( ) ) ;
2019-01-14 11:30:54 +03:00
}
}