2014-04-19 02:30:29 -04:00
package net.filebot.web ;
2009-11-02 18:25:04 -05:00
2016-03-11 16:26:36 -05:00
import static net.filebot.CachedResource.* ;
2018-04-03 04:00:59 -04:00
import static net.filebot.WebServices.* ;
2009-11-02 18:25:04 -05:00
import static org.junit.Assert.* ;
2016-03-11 16:26:36 -05:00
import java.net.URL ;
import java.time.Duration ;
2016-07-18 15:29:31 -04:00
import java.time.LocalDate ;
2009-11-02 18:25:04 -05:00
import java.util.List ;
2011-08-10 01:05:11 -04:00
import java.util.Locale ;
2016-06-06 02:21:28 -04:00
import java.util.Map ;
2009-11-02 18:25:04 -05:00
2014-05-02 04:00:43 -04:00
import org.junit.Ignore ;
2012-07-24 13:44:54 -04:00
import org.junit.Test ;
2016-03-11 16:26:36 -05:00
import net.filebot.Cache ;
import net.filebot.CacheType ;
import net.filebot.CachedResource ;
2009-11-02 18:25:04 -05:00
public class TMDbClientTest {
2013-11-18 09:41:19 -05:00
2009-11-02 18:25:04 -05:00
@Test
public void searchByName ( ) throws Exception {
2018-04-03 04:00:59 -04:00
List < Movie > result = TheMovieDB . searchMovie ( " Serenity " , Locale . CHINESE ) ;
2011-09-22 08:55:04 -04:00
Movie movie = result . get ( 0 ) ;
2013-11-18 09:41:19 -05:00
2012-02-09 08:42:14 -05:00
assertEquals ( " 冲出宁静号 " , movie . getName ( ) ) ;
2011-01-07 06:02:11 -05:00
assertEquals ( 2005 , movie . getYear ( ) ) ;
2012-07-24 13:44:54 -04:00
assertEquals ( - 1 , movie . getImdbId ( ) ) ;
assertEquals ( 16320 , movie . getTmdbId ( ) ) ;
2009-11-02 18:25:04 -05:00
}
2013-11-18 09:41:19 -05:00
2014-05-02 04:00:43 -04:00
@Test
2015-09-27 04:41:02 -04:00
public void searchByNameWithYearShortName ( ) throws Exception {
2018-04-03 04:00:59 -04:00
List < Movie > result = TheMovieDB . searchMovie ( " Up 2009 " , Locale . ENGLISH ) ;
2014-05-02 04:00:43 -04:00
Movie movie = result . get ( 0 ) ;
assertEquals ( " Up " , movie . getName ( ) ) ;
assertEquals ( 2009 , movie . getYear ( ) ) ;
assertEquals ( - 1 , movie . getImdbId ( ) ) ;
assertEquals ( 14160 , movie . getTmdbId ( ) ) ;
}
2015-09-27 04:41:02 -04:00
@Test
public void searchByNameWithYearNumberName ( ) throws Exception {
2018-04-03 04:00:59 -04:00
List < Movie > result = TheMovieDB . searchMovie ( " 9 (2009) " , Locale . ENGLISH ) ;
2015-09-27 04:41:02 -04:00
Movie movie = result . get ( 0 ) ;
assertEquals ( " 9 " , movie . getName ( ) ) ;
assertEquals ( 2009 , movie . getYear ( ) ) ;
assertEquals ( - 1 , movie . getImdbId ( ) ) ;
assertEquals ( 12244 , movie . getTmdbId ( ) ) ;
}
2013-11-18 09:41:19 -05:00
@Test
2016-09-09 13:33:40 -04:00
public void searchByNameGerman ( ) throws Exception {
2018-04-03 04:00:59 -04:00
List < Movie > result = TheMovieDB . searchMovie ( " Die Gelbe Hölle " , Locale . GERMAN ) ;
2013-11-18 09:41:19 -05:00
Movie movie = result . get ( 0 ) ;
2017-03-06 04:12:28 -05:00
assertEquals ( " Die gelbe Hölle " , movie . getName ( ) ) ;
assertEquals ( 1958 , movie . getYear ( ) ) ;
assertEquals ( " [Die gelbe Hölle (1958), The Camp on Blood Island (1958)] " , movie . getEffectiveNames ( ) . toString ( ) ) ;
2013-11-18 09:41:19 -05:00
}
2016-09-09 13:33:40 -04:00
@Test
public void searchByNameMexican ( ) throws Exception {
2018-04-03 04:00:59 -04:00
List < Movie > result = TheMovieDB . searchMovie ( " Suicide Squad " , new Locale ( " es " , " MX " ) ) ;
2016-09-09 13:33:40 -04:00
Movie movie = result . get ( 0 ) ;
2017-07-17 00:03:30 -04:00
assertEquals ( " Escuadrón Suicida " , movie . getName ( ) ) ;
2016-09-09 13:33:40 -04:00
assertEquals ( 2016 , movie . getYear ( ) ) ;
assertEquals ( - 1 , movie . getImdbId ( ) ) ;
assertEquals ( 297761 , movie . getTmdbId ( ) ) ;
}
2009-11-21 20:27:05 -05:00
@Test
public void searchByIMDB ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Movie movie = TheMovieDB . getMovieDescriptor ( new Movie ( 418279 ) , Locale . ENGLISH ) ;
2013-11-18 09:41:19 -05:00
2009-11-21 20:27:05 -05:00
assertEquals ( " Transformers " , movie . getName ( ) ) ;
2011-12-25 06:18:55 -05:00
assertEquals ( 2007 , movie . getYear ( ) , 0 ) ;
assertEquals ( 418279 , movie . getImdbId ( ) , 0 ) ;
2012-07-24 13:44:54 -04:00
assertEquals ( 1858 , movie . getTmdbId ( ) , 0 ) ;
2009-11-21 20:27:05 -05:00
}
2013-11-18 09:41:19 -05:00
2011-12-25 06:18:55 -05:00
@Test
public void getMovieInfo ( ) throws Exception {
2018-04-03 04:00:59 -04:00
MovieInfo movie = TheMovieDB . getMovieInfo ( new Movie ( 418279 ) , Locale . ENGLISH , true ) ;
2013-11-18 09:41:19 -05:00
2011-12-25 06:18:55 -05:00
assertEquals ( " Transformers " , movie . getName ( ) ) ;
2016-03-07 10:36:13 -05:00
assertEquals ( " 2007-06-27 " , movie . getReleased ( ) . toString ( ) ) ;
2012-07-24 13:44:54 -04:00
assertEquals ( " PG-13 " , movie . getCertification ( ) ) ;
2017-11-08 05:02:55 -05:00
assertEquals ( " {NL=12, AU=M, BG=C, GR=13, KR=12세 관람가, DK=11, GB=12A, TH=PG-13, SE=15, BR=10, HU=12, DE=12, FR=U, US=PG-13} " , movie . getCertifications ( ) . toString ( ) ) ;
2016-03-07 10:36:13 -05:00
assertEquals ( " [es, en] " , movie . getSpokenLanguages ( ) . toString ( ) ) ;
2012-07-24 13:44:54 -04:00
assertEquals ( " Shia LaBeouf " , movie . getActors ( ) . get ( 0 ) ) ;
assertEquals ( " Michael Bay " , movie . getDirector ( ) ) ;
2017-11-08 05:02:55 -05:00
assertEquals ( " Trailer 2 [Trailer] [720] [en_US] [YouTube::ejxQOv53lXs] " , movie . getTrailers ( ) . get ( 0 ) . toString ( ) ) ;
}
@Test
2017-11-08 05:54:53 -05:00
public void getMovieInfoForceLanguageCode ( ) throws Exception {
2018-04-03 04:00:59 -04:00
MovieInfo shiva = TheMovieDB . getMovieInfo ( new Movie ( 1260396 ) , Locale . forLanguageTag ( " he-IL " ) , false ) ;
2017-11-08 05:54:53 -05:00
assertEquals ( " שבעה " , shiva . getName ( ) ) ;
2018-04-03 04:00:59 -04:00
MovieInfo raid = TheMovieDB . getMovieInfo ( new Movie ( 1899353 ) , Locale . forLanguageTag ( " id-ID " ) , false ) ;
2017-11-08 05:54:53 -05:00
assertEquals ( " Serbuan Maut " , raid . getName ( ) ) ;
2012-07-24 13:44:54 -04:00
}
2013-11-18 09:41:19 -05:00
2016-06-06 02:21:28 -04:00
@Test
public void getAlternativeTitles ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Map < String , List < String > > titles = TheMovieDB . getAlternativeTitles ( 16320 ) ; // Serenity
2016-06-06 02:21:28 -04:00
2016-09-09 13:33:40 -04:00
assertEquals ( " [宁静号] " , titles . get ( " HK " ) . toString ( ) ) ;
2018-12-03 07:07:29 -05:00
}
@Test
public void getCollection ( ) throws Exception {
2018-12-03 08:00:27 -05:00
List < Movie > collection = TheMovieDB . getCollection ( 24253 , Locale . ENGLISH ) ; // Serenity
2018-12-03 07:07:29 -05:00
assertEquals ( " [The Girl with the Dragon Tattoo (2009), The Girl Who Played with Fire (2009), The Girl Who Kicked the Hornet's Nest (2009)] " , collection . toString ( ) ) ;
2016-06-06 02:21:28 -04:00
}
2012-07-24 13:44:54 -04:00
@Test
public void getArtwork ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Artwork a = TheMovieDB . getArtwork ( 16320 , " backdrops " , Locale . ROOT ) . get ( 0 ) ;
2016-04-19 06:39:31 -04:00
assertEquals ( " [backdrops, 1920x1080] " , a . getTags ( ) . toString ( ) ) ;
2018-03-19 22:32:38 -04:00
assertEquals ( " https://image.tmdb.org/t/p/original/mQPg3iZyztfzFNwrW40nCUtXy2l.jpg " , a . getUrl ( ) . toString ( ) ) ;
assertEquals ( 6 . 0 , a . getRating ( ) , 1 . 0 ) ;
2016-03-26 13:40:59 -04:00
}
2016-05-09 10:59:21 -04:00
@Test
public void getPeople ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Person p = TheMovieDB . getMovieInfo ( " 16320 " , Locale . ENGLISH , true ) . getCrew ( ) . get ( 0 ) ;
2016-05-09 10:59:21 -04:00
assertEquals ( " Nathan Fillion " , p . getName ( ) ) ;
assertEquals ( " Mal " , p . getCharacter ( ) ) ;
assertEquals ( null , p . getJob ( ) ) ;
assertEquals ( null , p . getDepartment ( ) ) ;
assertEquals ( " 0 " , p . getOrder ( ) . toString ( ) ) ;
2018-03-19 22:32:38 -04:00
assertEquals ( " https://image.tmdb.org/t/p/original/B7VTVtnKyFk0AtYjEbqzBQlPec.jpg " , p . getImage ( ) . toString ( ) ) ;
2016-05-09 10:59:21 -04:00
}
2016-07-18 15:29:31 -04:00
@Test
public void discoverPeriod ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Movie m = TheMovieDB . discover ( LocalDate . parse ( " 2014-09-15 " ) , LocalDate . parse ( " 2014-10-22 " ) , Locale . ENGLISH ) . get ( 0 ) ;
2016-07-18 15:29:31 -04:00
2016-10-20 15:48:33 -04:00
assertEquals ( " John Wick " , m . getName ( ) ) ;
2016-07-18 15:29:31 -04:00
assertEquals ( 2014 , m . getYear ( ) ) ;
2016-10-20 15:48:33 -04:00
assertEquals ( 245891 , m . getTmdbId ( ) ) ;
2016-07-18 15:29:31 -04:00
}
2016-07-20 03:30:26 -04:00
@Test
public void discoverBestOfYear ( ) throws Exception {
2018-04-03 04:00:59 -04:00
Movie m = TheMovieDB . discover ( 2015 , Locale . ENGLISH ) . get ( 0 ) ;
2016-07-20 03:30:26 -04:00
assertEquals ( " Mad Max: Fury Road " , m . getName ( ) ) ;
assertEquals ( 2015 , m . getYear ( ) ) ;
assertEquals ( 76341 , m . getTmdbId ( ) ) ;
}
2014-05-02 04:00:43 -04:00
@Ignore
2012-04-08 04:41:48 -04:00
@Test
public void floodLimit ( ) throws Exception {
for ( Locale it : Locale . getAvailableLocales ( ) ) {
2018-04-03 04:00:59 -04:00
List < Movie > results = TheMovieDB . searchMovie ( " Serenity " , it ) ;
2012-07-24 13:44:54 -04:00
assertEquals ( 16320 , results . get ( 0 ) . getTmdbId ( ) ) ;
2012-04-08 04:41:48 -04:00
}
}
2013-11-18 09:41:19 -05:00
2016-03-11 16:26:36 -05:00
@Ignore
@Test
public void etag ( ) throws Exception {
Cache cache = Cache . getCache ( " test " , CacheType . Persistent ) ;
Cache etagStorage = Cache . getCache ( " etag " , CacheType . Persistent ) ;
2016-03-12 05:01:11 -05:00
CachedResource < String , byte [ ] > resource = cache . bytes ( " http://devel.squid-cache.org/old_projects.html#etag " , URL : : new ) . fetch ( fetchIfNoneMatch ( etagStorage : : get , etagStorage : : put ) ) . expire ( Duration . ZERO ) ;
2016-03-11 16:26:36 -05:00
assertArrayEquals ( resource . get ( ) , resource . get ( ) ) ;
}
2009-11-02 18:25:04 -05:00
}