Finished the ApiUrl class to be more generic for TMDb and IMDb ID values

master
Omertron 14 years ago
parent b4de24d0fa
commit d65745c1f0

@ -0,0 +1,231 @@
/*
* Copyright (c) 2004-2012 YAMJ Members
* http://code.google.com/p/moviejukebox/people/list
*
* Web: http://code.google.com/p/moviejukebox/
*
* This software is licensed under a Creative Commons License
* See this page: http://code.google.com/p/moviejukebox/wiki/License
*
* For any reuse or distribution, you must make clear to others the
* license terms of this work.
*/
package com.moviejukebox.themoviedb;
import com.moviejukebox.themoviedb.model.*;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import static org.junit.Assert.*;
import org.junit.*;
/**
* Test cases for TheMovieDb API
*
* @author stuart.boston
*/
public class TheMovieDbTest {
private static final Logger LOGGER = Logger.getLogger(TheMovieDbTest.class);
private static final String API_KEY = "5a1a77e2eba8984804586122754f969f";
private static TheMovieDb tmdb;
/*
* Test data
*/
private static final int ID_BLADE_RUNNER = 78;
private static final int ID_STAR_WARS_COLLECTION = 10;
public TheMovieDbTest() throws IOException {
tmdb = new TheMovieDb(API_KEY);
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of getConfiguration method, of class TheMovieDb.
*/
@Test
public void testConfiguration() throws IOException {
LOGGER.info("Test Configuration");
TmdbConfiguration tmdbConfig = tmdb.getConfiguration();
assertNotNull("Configuration failed", tmdbConfig);
assertTrue("No base URL", StringUtils.isNotBlank(tmdbConfig.getBaseUrl()));
assertTrue("No backdrop sizes", tmdbConfig.getBackdropSizes().size() > 0);
assertTrue("No poster sizes", tmdbConfig.getPosterSizes().size() > 0);
assertTrue("No profile sizes", tmdbConfig.getProfileSizes().size() > 0);
LOGGER.info(tmdbConfig.toString());
}
/**
* Test of searchMovie method, of class TheMovieDb.
*/
@Test
public void testSearchMovie() throws UnsupportedEncodingException {
LOGGER.info("searchMovie");
// Try a movie with less than 1 page of results
List<MovieDB> movieList = tmdb.searchMovie("Blade Runner", "", true);
assertTrue("No movies found, should be at least 1", movieList.size() > 0);
// Try a russian langugage movie
movieList = tmdb.searchMovie("О чём говорят мужчины", "ru", true);
assertTrue("No movies found, should be at least 1", movieList.size() > 0);
// Try a movie with more than 20 results
movieList = tmdb.searchMovie("Star Wars", "en", false);
assertTrue("Not enough movies found, should be 20", movieList.size() == 20);
}
/**
* Test of getMovieInfo method, of class TheMovieDb.
*/
@Test
public void testGetMovieInfo() {
LOGGER.info("getMovieInfo");
String language = "en";
MovieDB result = tmdb.getMovieInfo(ID_BLADE_RUNNER, language);
assertEquals("Incorrect movie information", "Blade Runner", result.getOriginalTitle());
}
/**
* Test of getMovieAlternativeTitles method, of class TheMovieDb.
*/
@Test
public void testGetMovieAlternativeTitles() {
LOGGER.info("getMovieAlternativeTitles");
String country = "";
List<AlternativeTitle> results = tmdb.getMovieAlternativeTitles(ID_BLADE_RUNNER, country);
assertTrue("No alternative titles found", results.size() > 0);
country = "US";
results = tmdb.getMovieAlternativeTitles(ID_BLADE_RUNNER, country);
assertTrue("No alternative titles found", results.size() > 0);
}
/**
* Test of getMovieCasts method, of class TheMovieDb.
*/
@Test
public void testGetMovieCasts() {
LOGGER.info("getMovieCasts");
List<Person> people = tmdb.getMovieCasts(ID_BLADE_RUNNER);
assertTrue("No cast information", people.size() > 0);
String name1 = "Harrison Ford";
String name2 = "Charles Knode";
boolean foundName1 = Boolean.FALSE;
boolean foundName2 = Boolean.FALSE;
for (Person person : people) {
if (!foundName1 && person.getName().equalsIgnoreCase(name1)) {
foundName1 = Boolean.TRUE;
}
if (!foundName2 && person.getName().equalsIgnoreCase(name2)) {
foundName2 = Boolean.TRUE;
}
}
assertTrue("Couldn't find " + name1, foundName1);
assertTrue("Couldn't find " + name2, foundName2);
}
/**
* Test of getMovieImages method, of class TheMovieDb.
*/
@Test
public void testGetMovieImages() {
LOGGER.info("getMovieImages");
String language = "";
List<Artwork> result = tmdb.getMovieImages(ID_BLADE_RUNNER, language);
assertFalse("No artwork found", result.isEmpty());
}
/**
* Test of getMovieKeywords method, of class TheMovieDb.
*/
@Test
public void testGetMovieKeywords() {
LOGGER.info("getMovieKeywords");
List<Keyword> result = tmdb.getMovieKeywords(ID_BLADE_RUNNER);
assertFalse("No keywords found", result.isEmpty());
}
/**
* Test of getMovieReleaseInfo method, of class TheMovieDb.
*/
@Test
public void testGetMovieReleaseInfo() {
LOGGER.info("getMovieReleaseInfo");
List<ReleaseInfo> result = tmdb.getMovieReleaseInfo(ID_BLADE_RUNNER, "");
assertFalse("Release information missing", result.isEmpty());
}
/**
* Test of getMovieTrailers method, of class TheMovieDb.
*/
@Test
public void testGetMovieTrailers() {
LOGGER.info("getMovieTrailers");
List<Trailer> result = tmdb.getMovieTrailers(ID_BLADE_RUNNER, "");
assertFalse("Movie trailers missing", result.isEmpty());
}
/**
* Test of getMovieTranslations method, of class TheMovieDb.
*/
@Test
public void testGetMovieTranslations() {
LOGGER.info("getMovieTranslations");
List<Translation> result = tmdb.getMovieTranslations(ID_BLADE_RUNNER);
assertFalse("No translations found", result.isEmpty());
}
/**
* Test of getCollectionInfo method, of class TheMovieDb.
*/
@Test
public void testGetCollectionInfo() {
LOGGER.info("getCollectionInfo");
String language = "";
CollectionInfo result = tmdb.getCollectionInfo(ID_STAR_WARS_COLLECTION, language);
assertFalse("No collection information", result.getParts().isEmpty());
}
@Test
public void testCreateImageUrl() {
LOGGER.info("createImageUrl");
MovieDB movie = tmdb.getMovieInfo(ID_BLADE_RUNNER, "");
String result = tmdb.createImageUrl(movie.getPosterPath(), "original").toString();
assertTrue("Error compiling image URL", !result.isEmpty());
}
/**
* Test of getMovieInfoImdb method, of class TheMovieDb.
*/
@Test
public void testGetMovieInfoImdb() {
LOGGER.info("getMovieInfoImdb");
MovieDB result = tmdb.getMovieInfoImdb("tt0076759", "en-US");
assertTrue("Error getting the movie from IMDB ID", result.getId() == 11);
}
}
Loading…
Cancel
Save