package moviescraper.doctord.controller.siteparsingprofile.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import moviescraper.doctord.controller.siteparsingprofile.SiteParsingProfile;
import moviescraper.doctord.controller.siteparsingprofile.specific.TheMovieDatabaseParsingProfile;
import moviescraper.doctord.model.SearchResult;
import moviescraper.doctord.model.dataitem.Director;
import moviescraper.doctord.model.dataitem.Genre;
import moviescraper.doctord.model.dataitem.ID;
import moviescraper.doctord.model.dataitem.OriginalTitle;
import moviescraper.doctord.model.dataitem.Plot;
import moviescraper.doctord.model.dataitem.Rating;
import moviescraper.doctord.model.dataitem.ReleaseDate;
import moviescraper.doctord.model.dataitem.Set;
import moviescraper.doctord.model.dataitem.Studio;
import moviescraper.doctord.model.dataitem.Tagline;
import moviescraper.doctord.model.dataitem.Thumb;
import moviescraper.doctord.model.dataitem.Title;
import moviescraper.doctord.model.dataitem.Votes;
import moviescraper.doctord.model.dataitem.Year;
import org.jsoup.nodes.Document;
import org.junit.BeforeClass;
import org.junit.Test;
public class TheMovieDatabaseParsingProfileTest {
static File file = new File("C:/Temp/Pirates (2005).avi");
TheMovieDatabaseParsingProfile parser = new TheMovieDatabaseParsingProfile();
private static TheMovieDatabaseParsingProfile profile;
@BeforeClass
public static void initialize() {
profile = new TheMovieDatabaseParsingProfile();
String searchString = profile.createSearchString(file);
System.out.println("searchString = " + searchString);
try {
SearchResult[] searchResults = profile.getSearchResults(searchString);
Document document = SiteParsingProfile.downloadDocument(searchResults[0]);
System.out.println("document set to " + document.baseUri());
profile.setDocument(document);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void testTitle(){
Title testTitle = profile.scrapeTitle();
assertEquals("Wrong title", "Pirates", testTitle.getTitle());
}
@Test
public void originalTitle(){
OriginalTitle testOriginalTitle = profile.scrapeOriginalTitle();
assertEquals("Wrong title", "Pirates", testOriginalTitle.getOriginalTitle());
}
@Test
public void testSet(){
Set testSet = profile.scrapeSet();
assertEquals("Wrong set", "Pirates Collection", testSet.getSet());
}
@Test
public void testRating(){
Rating testRating = profile.scrapeRating();
System.out.println("rating was " + testRating);
assertTrue(Character.isDigit(testRating.getRatingOutOfTen().charAt(0)));
}
@Test
public void testPlot(){
Plot testPlot = profile.scrapePlot();
assertEquals("Wrong plot", "This electrifying, swashb", testPlot.getPlot().substring(0,25));
}
@Test
public void testRuntime(){
moviescraper.doctord.model.dataitem.Runtime testRuntime = profile.scrapeRuntime();
assertEquals("Wrong runtime", "129", testRuntime.getRuntime());
}
@Test
public void testID() {
ID scrapeID = profile.scrapeID();
System.out.println("scrapeID = " + scrapeID);
assertEquals("Found wrong ID", "13860", scrapeID.getId());
}
@Test
public void testVotes(){
Votes scrapeVotes = profile.scrapeVotes();
System.out.println("Votes = " + scrapeVotes);
assertTrue(!(scrapeVotes == Votes.BLANK_VOTES));
}
@Test
public void testYear() {
Year scrapeYear = profile.scrapeYear();
assertEquals("Found wrong year", "2005", scrapeYear.getYear());
}
@Test
public void testReleaseDate()
{
ReleaseDate releaseDate = profile.scrapeReleaseDate();
assertEquals("Found wrong release date ", "2005-09-26", releaseDate.getReleaseDate());
}
@Test
public void testTagline() {
Tagline scrapeTagline = profile.scrapeTagline();
assertEquals("Wrong tagline", "Swash and unbuckle...", scrapeTagline.getTagline());
}
@Test
public void testStudio() {
Studio scrapeStudio = profile.scrapeStudio();
assertEquals("Found wrong Studio", "Adam & Eve", scrapeStudio.getStudio());
}
@Test
public void testDirector(){
ArrayList<Director> scrapeDirectors = profile.scrapeDirectors();
assertEquals("Found wrong director", "Joone", scrapeDirectors.get(0).getName());
}
@Test
public void testGenre()
{
ArrayList<Genre> testGenre = profile.scrapeGenres();
System.out.println(testGenre);
assertTrue("There should be 3 genres", testGenre.size() == 3);
}
@Test
public void testActor()
{
//ArrayList<Actor> testActor = profile.scrapeActors();
}
@Test
public void testExtraFanart()
{
//Thumb [] extraFanart = profile.scrapeExtraFanart();
}
@Test
public void testPoster() throws IOException {
Thumb[] poster = profile.scrapePosters();
assertTrue("There should be 1 Poster or more.", poster.length > 1);
TestingHelper.showImage("Poster", poster[0].getThumbImage());
}
}