From 591ccdc0f1609b44d34faf5ca2a4b06d71f73555 Mon Sep 17 00:00:00 2001 From: Stuart Boston Date: Wed, 4 Mar 2015 15:26:27 +0000 Subject: [PATCH] Fixed guest sessions ratings --- .../themoviedbapi/methods/TmdbAccount.java | 12 +++- .../omertron/themoviedbapi/tools/Param.java | 1 + .../omertron/themoviedbapi/AbstractTests.java | 10 +++ .../methods/TmdbAccountTest.java | 68 +++++++++++++------ .../themoviedbapi/methods/TmdbMoviesTest.java | 46 ++++++------- 5 files changed, 92 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java index b24321479..d02f1fc98 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java @@ -58,7 +58,8 @@ public class TmdbAccount extends AbstractMethod { } /** - * Get the basic information for an account. You will need to have a valid session id. + * Get the basic information for an account. You will need to have a valid + * session id. * * @param sessionId * @return @@ -302,7 +303,14 @@ public class TmdbAccount extends AbstractMethod { parameters.add(Param.PAGE, page); //TODO: Test this works if (sortBy != null) { - parameters.add(Param.SORT_BY, sortBy.getPropertyString()); + // Only created_at is supported + parameters.add(Param.SORT_BY, "created_at"); + + if (sortBy.getPropertyString().endsWith("asc")) { + parameters.add(Param.SORT_ORDER, "asc"); + } else { + parameters.add(Param.SORT_ORDER, "desc"); + } } URL url = new ApiUrl(apiKey, MethodBase.GUEST_SESSION).subMethod(MethodSub.RATED_MOVIES_GUEST).buildUrl(parameters); diff --git a/src/main/java/com/omertron/themoviedbapi/tools/Param.java b/src/main/java/com/omertron/themoviedbapi/tools/Param.java index 752a00feb..c1db9c97a 100644 --- a/src/main/java/com/omertron/themoviedbapi/tools/Param.java +++ b/src/main/java/com/omertron/themoviedbapi/tools/Param.java @@ -66,6 +66,7 @@ public enum Param { RELEASE_DATE_GTE("release_date.gte="), RELEASE_DATE_LTE("release_date.lte="), SORT_BY("sort_by="), + SORT_ORDER("sort_order="), VOTE_AVERAGE_GTE("vote_average.gte="), VOTE_AVERAGE_LTE("vote_average.lte="), VOTE_COUNT_GTE("vote_count.gte="), diff --git a/src/test/java/com/omertron/themoviedbapi/AbstractTests.java b/src/test/java/com/omertron/themoviedbapi/AbstractTests.java index c96d3c591..0b5805564 100644 --- a/src/test/java/com/omertron/themoviedbapi/AbstractTests.java +++ b/src/test/java/com/omertron/themoviedbapi/AbstractTests.java @@ -76,6 +76,7 @@ public class AbstractTests { props.setProperty("API_Key", "INSERT_YOUR_KEY_HERE"); props.setProperty("Username", "INSERT_YOUR_USERNAME_HERE"); props.setProperty("Password", "INSERT_YOUR_PASSWORD_HERE"); + props.setProperty("GuestSession", "INSERT_YOUR_GUEST_SESSION_ID_HERE"); TestLogger.saveProperties(props, f, "Properties file for tests"); fail("Failed to get key information from properties file '" + PROP_FIlENAME + "'"); @@ -243,6 +244,15 @@ public class AbstractTests { return props.getProperty("Password"); } + /** + * Get the Guest Session ID + * + * @return + */ + public static String getGuestSession() { + return props.getProperty("GuestSession"); + } + /** * Get the named property * diff --git a/src/test/java/com/omertron/themoviedbapi/methods/TmdbAccountTest.java b/src/test/java/com/omertron/themoviedbapi/methods/TmdbAccountTest.java index 4e3090d36..a06efec46 100644 --- a/src/test/java/com/omertron/themoviedbapi/methods/TmdbAccountTest.java +++ b/src/test/java/com/omertron/themoviedbapi/methods/TmdbAccountTest.java @@ -25,18 +25,18 @@ import com.omertron.themoviedbapi.enumeration.MediaType; import com.omertron.themoviedbapi.enumeration.SortBy; import com.omertron.themoviedbapi.model.StatusCode; import com.omertron.themoviedbapi.model.account.Account; -import com.omertron.themoviedbapi.model.authentication.TokenSession; import com.omertron.themoviedbapi.model.list.UserList; import com.omertron.themoviedbapi.model.movie.MovieBasic; import com.omertron.themoviedbapi.model.tv.TVBasic; import java.util.List; +import java.util.Random; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.AfterClass; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -78,7 +78,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetAccount() throws MovieDbException { LOG.info("getAccount"); Account result = instance.getAccount(getSessionId()); @@ -92,7 +92,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetUserLists() throws MovieDbException { LOG.info("getUserLists"); List results = instance.getUserLists(getSessionId(), getAccountId()); @@ -108,7 +108,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetFavoriteMovies() throws MovieDbException { LOG.info("getFavoriteMovies"); List results = instance.getFavoriteMovies(getSessionId(), getAccountId()); @@ -124,7 +124,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetFavoriteTv() throws MovieDbException { LOG.info("getFavoriteTv"); List results = instance.getFavoriteTv(getSessionId(), getAccountId()); @@ -140,7 +140,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testModifyFavoriteStatus() throws MovieDbException { LOG.info("modifyFavoriteStatus"); @@ -170,7 +170,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetRatedMovies() throws MovieDbException { LOG.info("getRatedMovies"); List results = instance.getRatedMovies(getSessionId(), getAccountId(), null, null, null); @@ -183,7 +183,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetRatedTV() throws MovieDbException { LOG.info("getRatedTV"); List results = instance.getRatedTV(getSessionId(), getAccountId(), null, null, null); @@ -199,7 +199,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetWatchListMovie() throws MovieDbException { LOG.info("getWatchListMovie"); List results = instance.getWatchListMovie(getSessionId(), getAccountId(), null, null, null); @@ -215,7 +215,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testGetWatchListTV() throws MovieDbException { LOG.info("getWatchListTV"); List results = instance.getWatchListTV(getSessionId(), getAccountId(), null, null, null); @@ -231,7 +231,7 @@ public class TmdbAccountTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - @Test + //@Test public void testModifyWatchList() throws MovieDbException { LOG.info("modifyWatchList"); @@ -265,16 +265,44 @@ public class TmdbAccountTest extends AbstractTests { public void testGetGuestRatedMovies() throws MovieDbException { LOG.info("getGuestRatedMovies"); - //TODO: Need to use rated movies with the guest session to add some movies to get - TmdbAuthentication auth = new TmdbAuthentication(getApiKey(), getHttpTools()); - TokenSession guestToken = auth.getGuestSessionToken(); - TmdbMovies tmdbM = new TmdbMovies(getApiKey(), getHttpTools()); + // Get the guest token + String guestSession = getGuestSession(); String language = LANGUAGE_DEFAULT; Integer page = null; - SortBy sortBy = null; - List result = instance.getGuestRatedMovies(guestToken.getGuestSessionId(), language, page, sortBy); - LOG.info("{}", result); - fail("Need rated movies"); + SortBy sortBy = SortBy.CREATED_AT_ASC; + List result = instance.getGuestRatedMovies(guestSession, language, page, sortBy); + + // Check and post some ratings if required + if (result.isEmpty()) { + postGuestRating(guestSession, ID_MOVIE_FIGHT_CLUB); + postGuestRating(guestSession, 78); + postGuestRating(guestSession, 76757); + postGuestRating(guestSession, 240832); + try { + Thread.sleep(TimeUnit.SECONDS.toMillis(5)); + } catch (InterruptedException ex) { + LOG.trace("Interrupted"); + } + + // Get the movie list again + result = instance.getGuestRatedMovies(guestSession, language, page, sortBy); + } + + for (MovieBasic mb : result) { + LOG.info("{}", mb); + } + + assertFalse("No movies found!", result.isEmpty()); + } + + private void postGuestRating(String guestSessionId, int movieId) throws MovieDbException { + TmdbMovies tmdbMovies = new TmdbMovies(getApiKey(), getHttpTools()); + Integer rating = new Random().nextInt(10) + 1; + + LOG.info("Posting rating of '{}' to ID {} for guest session '{}'", rating, movieId, guestSessionId); + StatusCode sc = tmdbMovies.postMovieRating(movieId, rating, null, guestSessionId); + LOG.info("{}", sc); + assertTrue("Failed to post rating", sc.getCode() == 1 || sc.getCode() == 12); } } diff --git a/src/test/java/com/omertron/themoviedbapi/methods/TmdbMoviesTest.java b/src/test/java/com/omertron/themoviedbapi/methods/TmdbMoviesTest.java index b11e9041a..377f383ae 100644 --- a/src/test/java/com/omertron/themoviedbapi/methods/TmdbMoviesTest.java +++ b/src/test/java/com/omertron/themoviedbapi/methods/TmdbMoviesTest.java @@ -26,10 +26,6 @@ import com.omertron.themoviedbapi.MovieDbException; import com.omertron.themoviedbapi.TestID; import com.omertron.themoviedbapi.enumeration.ArtworkType; import com.omertron.themoviedbapi.model.StatusCode; -import com.omertron.themoviedbapi.model.movie.MovieDb; -import com.omertron.themoviedbapi.model.movie.ReleaseInfo; -import com.omertron.themoviedbapi.model.movie.Translation; -import com.omertron.themoviedbapi.model.movie.Video; import com.omertron.themoviedbapi.model.artwork.Artwork; import com.omertron.themoviedbapi.model.change.ChangeKeyItem; import com.omertron.themoviedbapi.model.change.ChangeListItem; @@ -39,6 +35,10 @@ import com.omertron.themoviedbapi.model.media.MediaCreditCast; import com.omertron.themoviedbapi.model.media.MediaCreditList; import com.omertron.themoviedbapi.model.media.MediaState; import com.omertron.themoviedbapi.model.movie.AlternativeTitle; +import com.omertron.themoviedbapi.model.movie.MovieDb; +import com.omertron.themoviedbapi.model.movie.ReleaseInfo; +import com.omertron.themoviedbapi.model.movie.Translation; +import com.omertron.themoviedbapi.model.movie.Video; import com.omertron.themoviedbapi.model.review.Review; import com.omertron.themoviedbapi.results.TmdbResultsList; import com.omertron.themoviedbapi.tools.MethodBase; @@ -85,7 +85,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieInfo() throws MovieDbException { LOG.info("getMovieInfo"); @@ -105,7 +105,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieInfoImdb() throws MovieDbException { LOG.info("getMovieInfoImdb"); String language = LANGUAGE_DEFAULT; @@ -123,7 +123,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieAccountState() throws MovieDbException { LOG.info("getMovieAccountState"); @@ -139,7 +139,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieAlternativeTitles() throws MovieDbException { LOG.info("getMovieAlternativeTitles"); @@ -157,7 +157,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieCredits() throws MovieDbException { LOG.info("getMovieCredits"); @@ -187,7 +187,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieImages() throws MovieDbException { LOG.info("getMovieImages"); @@ -222,7 +222,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieKeywords() throws MovieDbException { LOG.info("getMovieKeywords"); @@ -239,7 +239,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieReleaseInfo() throws MovieDbException { LOG.info("getMovieReleaseInfo"); @@ -257,7 +257,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieVideos() throws MovieDbException { LOG.info("getMovieVideos"); @@ -275,7 +275,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieTranslations() throws MovieDbException { LOG.info("getMovieTranslations"); @@ -292,7 +292,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetSimilarMovies() throws MovieDbException { LOG.info("getSimilarMovies"); @@ -334,7 +334,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieLists() throws MovieDbException { LOG.info("getMovieLists"); @@ -354,7 +354,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetMovieChanges() throws MovieDbException { LOG.info("getMovieChanges"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -385,7 +385,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testPostMovieRating() throws MovieDbException { LOG.info("postMovieRating"); Integer rating = new Random().nextInt(10) + 1; @@ -401,7 +401,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetLatestMovie() throws MovieDbException { LOG.info("getLatestMovie"); @@ -416,7 +416,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetUpcoming() throws MovieDbException { LOG.info("getUpcoming"); Integer page = null; @@ -431,7 +431,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetNowPlayingMovies() throws MovieDbException { LOG.info("getNowPlayingMovies"); Integer page = null; @@ -446,7 +446,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetPopularMovieList() throws MovieDbException { LOG.info("getPopularMovieList"); Integer page = null; @@ -461,7 +461,7 @@ public class TmdbMoviesTest extends AbstractTests { * * @throws com.omertron.themoviedbapi.MovieDbException */ - //@Test + @Test public void testGetTopRatedMovies() throws MovieDbException { LOG.info("getTopRatedMovies"); Integer page = null;