public async void GetDistinctMovieList_Must_Ignore_Exception_In_FilmWorldAPI_And_Return_Results_In_CinemaWorldAPI() { //Arrange // Create Error client var unAuthorisedResponseHttpMessageHandler = new Mock <HttpMessageHandler>(); unAuthorisedResponseHttpMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.InternalServerError }); var httpClient = new HttpClient(unAuthorisedResponseHttpMessageHandler.Object); IMovieAPIClient <FilmWorldClient> filmWorldClient = new FilmWorldClient(configuration.Object, httpClient, filmWorldClientlogger.Object); // Mock filmWorldClient with data Mock <IMovieAPIClient <CinemaWorldClient> > cinemaWorldClient = new Mock <IMovieAPIClient <CinemaWorldClient> >(); cinemaWorldClient.Setup(c => c.GetMovieList(It.IsAny <CancellationToken>())) .ReturnsAsync(testMovieList); sut = new MovieFinderService(cinemaWorldClient.Object, filmWorldClient, movieFinderServicelogger.Object); //Act var result = await sut.GetDistinctMovieList(); //Assert Assert.NotNull(result); Assert.IsType <List <Movie> >(result.ToList()); Assert.Equal(testMovieList.Select(m => m.ID).FirstOrDefault(), result.Select(r => r.ID).FirstOrDefault()); }
public void Constructor_With_APIURL_AND_APIKey() { //Arrange configuration = new Mock <IConfiguration>(); configuration.SetupGet(c => c["MovieFinder.APIURL"]) .Returns("http://testURL.com"); configuration.SetupGet(c => c["MovieFinder.APIKey"]) .Returns("API KEY Here"); Mock <HttpClient> client = new Mock <HttpClient>(); //Act IMovieAPIClient <FilmWorldClient> sut = new FilmWorldClient(configuration.Object, client.Object, filmWorldClientlogger.Object); //Assert Assert.NotNull(sut); }
public async void GetCheapestMovieDetailsByTitle_Must_Ignore_Exception_In_FilmWorldAPI_And_Return_Results_In_CinemaWorldAPI() { //Arrange // Create Error client var unAuthorisedResponseHttpMessageHandler = new Mock <HttpMessageHandler>(); unAuthorisedResponseHttpMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.InternalServerError }); var httpClient = new HttpClient(unAuthorisedResponseHttpMessageHandler.Object); IMovieAPIClient <FilmWorldClient> filmWorldClient = new FilmWorldClient(configuration.Object, httpClient, filmWorldClientlogger.Object); // Mock filmWorldClient with data Mock <IMovieAPIClient <CinemaWorldClient> > cinemaWorldClient = new Mock <IMovieAPIClient <CinemaWorldClient> >(); cinemaWorldClient.Setup(c => c.GetMovieList(It.IsAny <CancellationToken>())) .ReturnsAsync(testMovieList); cinemaWorldClient.Setup(c => c.GetMovieDetails(It.IsAny <CancellationToken>(), It.IsAny <string>())) .ReturnsAsync(cinemaWorldMovieDetail); sut = new MovieFinderService(cinemaWorldClient.Object, filmWorldClient, movieFinderServicelogger.Object); //Act var result = await sut.GetCheapestMovieDetailsByTitle("Test movie"); //Assert Assert.NotNull(result); Assert.IsType <MovieDetail>(result); Assert.Equal(cinemaWorldMovieDetail.Title, result.Title); Assert.Equal(cinemaWorldMovieDetail.Price, result.Price); // Should return FilmWorldMovieDetail, Price = 100 }