filebot/test/net/filebot/web/TheTVDBClientTest.java

168 lines
5.8 KiB
Java
Raw Normal View History

2014-04-19 02:30:29 -04:00
package net.filebot.web;
2009-05-17 13:22:44 -04:00
import static org.junit.Assert.*;
import java.util.List;
import java.util.Locale;
2016-03-13 09:32:26 -04:00
import org.junit.Test;
public class TheTVDBClientTest {
2016-05-09 10:59:21 -04:00
static TheTVDBClient db = new TheTVDBClient("BA864DEE427E384A");
2016-03-26 13:40:54 -04:00
SearchResult buffy = new SearchResult(70327, "Buffy the Vampire Slayer");
SearchResult wonderfalls = new SearchResult(78845, "Wonderfalls");
SearchResult firefly = new SearchResult(78874, "Firefly");
@Test
public void search() throws Exception {
// test default language and query escaping (blanks)
2016-05-09 10:59:21 -04:00
List<SearchResult> results = db.search("babylon 5", Locale.ENGLISH);
assertEquals(2, results.size());
2016-03-26 13:40:54 -04:00
SearchResult first = results.get(0);
assertEquals("Babylon 5", first.getName());
2016-03-26 13:40:54 -04:00
assertEquals(70726, first.getId());
}
@Test
public void searchGerman() throws Exception {
2016-07-30 05:35:12 -04:00
List<SearchResult> results = db.search("Buffy", Locale.GERMAN);
2016-03-26 13:40:54 -04:00
SearchResult first = results.get(0);
2016-07-30 05:35:12 -04:00
assertEquals("Buffy", first.getName());
2016-03-26 13:40:54 -04:00
assertEquals(70327, first.getId());
}
@Test
public void getEpisodeListAll() throws Exception {
2016-05-09 10:59:21 -04:00
List<Episode> list = db.getEpisodeList(buffy, SortOrder.Airdate, Locale.ENGLISH);
2016-05-05 09:50:47 -04:00
assertEquals(145, list.size());
2010-02-04 09:30:39 -05:00
// check ordinary episode
Episode first = list.get(0);
assertEquals("Buffy the Vampire Slayer", first.getSeriesName());
assertEquals("1997-03-10", first.getSeriesInfo().getStartDate().toString());
2010-02-04 09:30:39 -05:00
assertEquals("Welcome to the Hellmouth (1)", first.getTitle());
assertEquals("1", first.getEpisode().toString());
assertEquals("1", first.getSeason().toString());
assertEquals("1", first.getAbsolute().toString());
assertEquals("1997-03-10", first.getAirdate().toString());
2010-02-04 09:30:39 -05:00
// check special episode
Episode last = list.get(list.size() - 1);
assertEquals("Buffy the Vampire Slayer", last.getSeriesName());
assertEquals("Unaired Pilot", last.getTitle());
2016-05-05 09:50:47 -04:00
assertEquals(null, last.getSeason());
2010-10-24 09:26:30 -04:00
assertEquals(null, last.getEpisode());
assertEquals(null, last.getAbsolute());
2010-10-24 09:26:30 -04:00
assertEquals("1", last.getSpecial().toString());
assertEquals(null, last.getAirdate());
}
@Test
public void getEpisodeListSingleSeason() throws Exception {
2016-05-09 10:59:21 -04:00
List<Episode> list = db.getEpisodeList(wonderfalls, SortOrder.Airdate, Locale.ENGLISH);
Episode first = list.get(0);
assertEquals("Wonderfalls", first.getSeriesName());
assertEquals("2004-03-12", first.getSeriesInfo().getStartDate().toString());
assertEquals("Wax Lion", first.getTitle());
assertEquals("1", first.getEpisode().toString());
assertEquals("1", first.getSeason().toString());
assertEquals(null, first.getAbsolute()); // should be "1" but data has not yet been entered
assertEquals("2004-03-12", first.getAirdate().toString());
assertEquals("296337", first.getId().toString());
}
@Test
public void getEpisodeListIllegalSeries() throws Exception {
List<Episode> list = db.getEpisodeList(new SearchResult(313193, "*** DOES NOT EXIST ***"), SortOrder.Airdate, Locale.ENGLISH);
assertTrue(list.isEmpty());
}
2010-11-15 05:06:24 -05:00
@Test
public void getEpisodeListNumbering() throws Exception {
2016-05-09 10:59:21 -04:00
List<Episode> list = db.getEpisodeList(firefly, SortOrder.DVD, Locale.ENGLISH);
2010-11-15 05:06:24 -05:00
Episode first = list.get(0);
assertEquals("Firefly", first.getSeriesName());
assertEquals("2002-09-20", first.getSeriesInfo().getStartDate().toString());
2010-11-15 05:06:24 -05:00
assertEquals("Serenity", first.getTitle());
assertEquals("1", first.getEpisode().toString());
assertEquals("1", first.getSeason().toString());
assertEquals("1", first.getAbsolute().toString());
assertEquals("2002-12-20", first.getAirdate().toString());
2010-11-15 05:06:24 -05:00
}
public void getEpisodeListLink() {
2016-05-09 10:59:21 -04:00
assertEquals("http://www.thetvdb.com/?tab=seasonall&id=78874", db.getEpisodeListLink(firefly).toString());
}
@Test
public void lookupByID() throws Exception {
2016-05-09 10:59:21 -04:00
SearchResult series = db.lookupByID(78874, Locale.ENGLISH);
assertEquals("Firefly", series.getName());
2016-03-26 13:40:54 -04:00
assertEquals(78874, series.getId());
}
@Test
public void lookupByIMDbID() throws Exception {
2016-05-09 10:59:21 -04:00
SearchResult series = db.lookupByIMDbID(303461, Locale.ENGLISH);
assertEquals("Firefly", series.getName());
2016-03-26 13:40:54 -04:00
assertEquals(78874, series.getId());
}
@Test
public void getSeriesInfo() throws Exception {
2016-05-09 10:59:21 -04:00
TheTVDBSeriesInfo it = db.getSeriesInfo(80348, Locale.ENGLISH);
assertEquals(80348, it.getId(), 0);
2013-03-18 01:23:41 -04:00
assertEquals("Action", it.getGenres().get(0));
assertEquals("en", it.getLanguage());
assertEquals("45", it.getRuntime().toString());
2011-12-21 03:46:19 -05:00
assertEquals("Chuck", it.getName());
assertEquals(9.0, it.getRating(), 0.5);
assertEquals(1000, it.getRatingCount(), 100);
assertEquals("tt0934814", it.getImdbId());
assertEquals("Friday", it.getAirsDayOfWeek());
assertEquals("8:00 PM", it.getAirsTime());
2016-07-30 05:35:12 -04:00
assertEquals(500, it.getOverview().length(), 100);
assertEquals("http://thetvdb.com/banners/graphical/80348-g26.jpg", it.getBannerUrl().toString());
}
2011-12-19 21:37:36 -05:00
@Test
2016-05-08 08:31:06 -04:00
public void getArtwork() throws Exception {
2016-05-09 10:59:21 -04:00
Artwork i = db.getArtwork(buffy.getId(), "fanart", Locale.ENGLISH).get(0);
2016-05-05 09:50:47 -04:00
assertEquals("[fanart, 1280x720]", i.getTags().toString());
assertEquals("http://thetvdb.com/banners/fanart/original/70327-23.jpg", i.getUrl().toString());
assertTrue(i.matches("fanart", "1280x720"));
assertFalse(i.matches("fanart", "1280x720", "1"));
2016-05-08 08:31:06 -04:00
assertEquals(8.0, i.getRating(), 1.0);
2011-12-19 21:37:36 -05:00
}
2016-05-08 11:24:15 -04:00
@Test
public void getLanguages() throws Exception {
2016-05-09 10:59:21 -04:00
List<String> languages = db.getLanguages();
2016-05-08 11:24:15 -04:00
assertEquals("[zh, en, sv, no, da, fi, nl, de, it, es, fr, pl, hu, el, tr, ru, he, ja, pt, cs, sl, hr, ko]", languages.toString());
}
2016-05-09 10:59:21 -04:00
@Test
public void getActors() throws Exception {
Person p = db.getActors(firefly.getId(), Locale.ENGLISH).get(0);
assertEquals("Alan Tudyk", p.getName());
assertEquals("Hoban 'Wash' Washburne", p.getCharacter());
assertEquals("Actor", p.getJob());
2016-05-09 10:59:21 -04:00
assertEquals(null, p.getDepartment());
assertEquals("0", p.getOrder().toString());
assertEquals("http://thetvdb.com/banners/actors/68409.jpg", p.getImage().toString());
}
}