Exemplo n.º 1
0
        // happy path
        public async Task WhenCalledOnValidRatedMovie_ReturnsState()
        {
            bool    isFavorite  = false;
            bool    onWatchlist = false;
            decimal rating      = 9m;

            await _client.RateMovie(_settings.SessionId, rating, _movie);

            // Server side (TMDB WebAPI) needs this delay to propagate changes...
            await Task.Delay(2000);

            GetAccountMovieStatesResult response = await _client.GetAccountMovieStates(_settings.SessionId, mediaId : _movie, guestSessionId : null, retryCount : 0);

            _output.WriteLine($"TMDB server's response code {response.HttpStatusCode}");
            _output.WriteLine($"TMDB server's response message {response.Json}");

            AccountMovieStates states = response.DeserializeJsonIntoModel();

            PrintAccountMovieStates(states);

            Assert.True(response.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.True(states.IsFavorite == isFavorite);
            Assert.True(states.Rating.Value == rating);
            Assert.True(states.OnWatchlist == onWatchlist);
        }
Exemplo n.º 2
0
        // failure path
        public async Task WhenCalledWithInvalidMovieId_Returns404()
        {
            GetAccountMovieStatesResult response = await _client.GetAccountMovieStates(_settings.SessionId, mediaId : _invalidMovie, guestSessionId : null, retryCount : 0);

            _output.WriteLine($"TMDB server's response code {response.HttpStatusCode}");

            Assert.True(response.HttpStatusCode == System.Net.HttpStatusCode.NotFound);
        }
Exemplo n.º 3
0
        // happy path
        public async Task WhenCalledOnValidMovie_ReturnsState()
        {
            bool isFavorite  = false;
            bool onWatchlist = false;

            GetAccountMovieStatesResult response = await _client.GetAccountMovieStates(_settings.SessionId, mediaId : _movie, guestSessionId : null, retryCount : 0);

            _output.WriteLine($"TMDB server's response code {response.HttpStatusCode}");
            _output.WriteLine($"TMDB server's response message {response.Json}");

            AccountMovieStates states = response.DeserializeJsonIntoModel();

            PrintAccountMovieStates(states);

            Assert.True(response.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.True(states.IsFavorite == isFavorite);
            Assert.True(states.Rating == null);
            Assert.True(states.OnWatchlist == onWatchlist);
        }
Exemplo n.º 4
0
        public async Task <GetAccountMovieStatesResult> GetAccountMovieStates(string sessionId, int mediaId, string guestSessionId = null, int retryCount = 0, int delayMilliseconds = 1000)
        {
            if (!string.IsNullOrEmpty(guestSessionId))
            {
                throw new NotImplementedException($"Guest session is not supported by the method: {nameof(GetAccountMovieStates)}, parameter: {nameof(guestSessionId)}={guestSessionId}");
            }

            string baseUrl = BASE_Address + BASE_Path + MOVIE_DETAILS_Path + "/" + mediaId + ACCOUNT_STATES_Path;

            var query = new Dictionary <string, string>();

            query.Add(API_KEY_Key, ApiKey);
            query.Add(SESSION_ID_Key, sessionId);

            string requestUri = QueryHelpers.AddQueryString(baseUrl, query);

            GetAccountMovieStatesResult result = await GetResponse <GetAccountMovieStatesResult>(retryCount, delayMilliseconds, requestUri);

            return(result);
        }