public async void WhenParametersAreProvided_TheUrlIsProperlyPassed() { // Arrange var apiClientMock = new Mock <IApiClient>(); Uri uriSpy = null; apiClientMock.Setup(m => m.GetAsync <SearchMovieResponse>(It.IsAny <Uri>())) .Callback <Uri>(uri => { uriSpy = uri; }) .ReturnsAsync(_fixture.Create <SearchMovieResponse>()); string title = _fixture.Create <string>(); int releaseYear = _fixture.Create <DateTime>().Year; var sut = new TheMovieDbGateway(apiClientMock.Object); // Act await sut.MakeSearchMovieRequestAsync(title, releaseYear); // Assert uriSpy.ToString().Should().BeEquivalentTo("https://" + $"api.themoviedb.org/3/search/movie?query={title}&year={releaseYear}"); }
public async void WhenParametersAreProvided_TheUrlIsProperlyPassed() { // Arrange var apiClientMock = new Mock <IApiClient>(); Uri uriSpy = null; apiClientMock.Setup(m => m.GetAsync <DiscoverMoviesResponse>(It.IsAny <Uri>())) .Callback <Uri>(uri => { uriSpy = uri; }) .ReturnsAsync(_fixture.Create <DiscoverMoviesResponse>()); var from = _fixture.Create <DateTime>(); var to = _fixture.Create <DateTime>(); var withGenres = _fixture.Create <IEnumerable <int> >(); var withKeywords = _fixture.Create <IEnumerable <string> >(); var page = _fixture.Create <int>(); var sut = new TheMovieDbGateway(apiClientMock.Object); // Act await sut.MakeDiscoverMoviesRequestAsync(from, to, withGenres, withKeywords, page); // Assert uriSpy.ToString().Should().BeEquivalentTo($"https://" + $"api.themoviedb.org/3/discover/movie?include_adult=false&sort_by=popularidy.desc&primary_release_date.gte={from.ToString("yyyy-MM-dd")}" + $"&primary_release_date.lte={to.ToString("yyyy-MM-dd")}&" + $"with_genres={ string.Join("|", withGenres) }&" + $"with_keywords={string.Join("|", withKeywords)}&" + $"page={page}"); }
public async void WhenParametersAreProvided_TheUrlIsProperlyPassed() { // Arrange var apiClientMock = new Mock <IApiClient>(); Uri uriSpy = null; apiClientMock.Setup(m => m.GetAsync <Movie>(It.IsAny <Uri>())) .Callback <Uri>(uri => { uriSpy = uri; }) .ReturnsAsync(_fixture.Create <Movie>()); var movieId = _fixture.Create <int>(); var sut = new TheMovieDbGateway(apiClientMock.Object); // Act await sut.MakeMovieDetailRequestAsync(movieId, new[] { MovieDetailRequestIncludeTypes.Keywords }); // Assert uriSpy.ToString().Should().BeEquivalentTo("https://" + $"api.themoviedb.org/3/movie/{movieId}?append_to_response=keywords"); }