public async Task GetTopRatedMovies_connection_error() { //Arrange var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .ThrowsAsync(new HttpRequestException()) .Verifiable(); var httpClient = new HttpClient(handlerMock.Object); var logger = new Mock <ILogger <MoviesOnlineRepository> >(); var repo = new MoviesOnlineRepository(httpClient, logger.Object); var page = 1; //Act var res = await repo.GetTopRatedMovies(page); //Assert Assert.IsNotNull(res); Assert.IsTrue(!res.Success); Assert.AreEqual(Constants.connection_error_message, res.ErrorMessage); }
public async Task GetTopRatedMovies_happy_path() { //Arrange var json = GetJson("topRatedMovies.json"); var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(json), }) .Verifiable(); var httpClient = new HttpClient(handlerMock.Object); var logger = new Mock <ILogger <MoviesOnlineRepository> >(); var repo = new MoviesOnlineRepository(httpClient, logger.Object); int page = 1; //Act var res = await repo.GetTopRatedMovies(page); //Assert Assert.IsNotNull(res); Assert.IsTrue(res.Success); Assert.AreEqual(res.BatchPage, page); Assert.AreEqual(res.BatchCount, 261); Assert.AreEqual(res.TotalMovies, 5206); Assert.AreEqual(res.MovieData.Count(), 20); var element = res.MovieData.First(); Assert.AreEqual(element.PosterPath, $"{Constants.image_base_url_200}/9O7gLzmreU0nGkIB6K3BsJbzvNv.jpg"); Assert.AreEqual(element.overview, "Framed in the 1940s for the double murder of his wife and her lover, upstanding banker Andy Dufresne begins a new life at the Shawshank prison, where he puts his accounting skills to work for an amoral warden. During his long stretch in prison, Dufresne comes to be admired by the other inmates -- including an older prisoner named Red -- for his integrity and unquenchable sense of hope."); Assert.AreEqual(element.ReleaseDate, DateTime.Parse("1994-09-10")); Assert.AreEqual(element.GenreIds.Length, 2); Assert.AreEqual(element.Id, 278); Assert.AreEqual(element.OriginalTitle, "The Shawshank Redemption"); Assert.AreEqual(element.Title, "The Shawshank Redemption"); Assert.AreEqual(element.BackdropPath, $"{Constants.image_base_url_200}/xBKGJQsAIeweesB79KC89FpBrVr.jpg"); Assert.AreEqual(element.Popularity, 6.741296f); Assert.AreEqual(element.VoteCount, 5238); Assert.AreEqual(element.VoteAverage, 8.32f); }