public async Task GetMovieDetails_WhenCorrectTitle_ShouldReturnMovie() { // Arrange var request = new MovieDetailsRequest(_omdbSettings.ApiKey, new MovieTitle("Batman")); // Act var response = await _client.GetMovieDetails(request); // Assert response.ShouldBeSuccessful(); }
public void GetMovieDetails_WhenApiKeyMissing_ThenThrowsException(string apiKey) { // Arrange var request = new MovieDetailsRequest(apiKey, new ImdbId(Guid.NewGuid().ToString())); // Act Action action = () => _httpClient.GetMovieDetails(request); // Assert action.ShouldThrow <MissingOmdbApiKeyException>(); }
public async Task <IMovieDetailsResponse> GetMovieDetails(long movieId) { var request = new MovieDetailsRequest(); request.Lang = _culture; request.MovieId = movieId; request.Expand = MovieListRequest.ExpandNames.IMAGES; request.TextFormat = TextFormatEnum.Plain; var res = await request.ExecuteAsync(); return(res); }
public async Task GetMovieDetails_WhenCorrectImdbId_ShouldReturnMovie() { // Arrange var request = new MovieDetailsRequest(_omdbSettings.ApiKey, new ImdbId("tt0096895")) { PlotType = PlotType.Full, }; // Act var response = await _client.GetMovieDetails(request); // Assert response.ShouldBeSuccessful(); }
public async Task SearchMoviesAndGetMovieDetails_PropertiesShouldMatch() { // Arrange & Act var searchRequest = new SearchMovieRequest(_omdbSettings.ApiKey, "Batman"); var searchResults = await _client.SearchMovies(searchRequest); var searchResult = searchResults.Search.ToList()[0]; var detailsRequest = new MovieDetailsRequest(_omdbSettings.ApiKey, new ImdbId(searchResult.ImdbId)); var detailsResult = await _client.GetMovieDetails(detailsRequest); // Assert detailsResult.ImdbId.ShouldBe(searchResult.ImdbId); detailsResult.Title.ShouldBe(searchResult.Title); detailsResult.Year.ShouldBe(searchResult.Year); }
public async Task should_get_movie_details() { var request = new MovieListRequest(); request.Lang = "ru"; var fieldBuilder = new FieldsBuilder(); request.Fields = fieldBuilder.WithField(MovieListRequest.FieldNames.ID).Build(); request.Location = Location.Spb; //then var res = await request.ExecuteAsync(); var first = res.Results.First(); var detailsRequest = new MovieDetailsRequest(); detailsRequest.MovieId = first.Id; var actual = await detailsRequest.ExecuteAsync(); Assert.IsNotNull(actual); Assert.AreEqual(actual.Id, first.Id); }
public virtual Task <MovieDetailsResponse> GetAsync(MovieDetailsRequest request) => Client.SendAsync <MovieDetailsResponse>(request);
public static Task <MovieDetailsResponse> GetMovieDetails(this HttpMessageInvoker client, MovieDetailsRequest request, CancellationToken cancellationToken = default) { var url = new OmdbApiUrlBuilder(request.ApiKey) .WithDetailsRequest(request) .Build(); return(Get <MovieDetailsResponse>(client, url, cancellationToken)); }
public OmdbApiUrlBuilder WithDetailsRequest(MovieDetailsRequest movieDetailsRequest) => WithImdbId(movieDetailsRequest.ImdbId) .WithMovieTitle(movieDetailsRequest.Title) .WithResultType(movieDetailsRequest.Type) .WithPlotType(movieDetailsRequest.PlotType) .WithYear(movieDetailsRequest.Year);