public async Task GetSeasons_WhenCalled_ReturnSeasonsFromDb() { var seasonQuery = new SeasonQuery { PageNumber = 1, PageSize = 10, SortBy = "name", IsSortAscending = true }; var expectedSeasons = new PaginatedList <Season> { Pagination = new Pagination { PageNumber = 1, PageSize = 10 }, Items = new List <Season>() { new Season { Id = 1 }, new Season { Id = 2 }, new Season { Id = 3 }, } }; _seasonService.Setup(s => s.GetAsync(seasonQuery)).ReturnsAsync(expectedSeasons); var result = await _seasonsController.GetSeasons(seasonQuery); var okObjectResult = result as OkObjectResult; var okObjectResultValue = okObjectResult.Value as PaginatedList <SeasonListDto>; Assert.That(result, Is.TypeOf <OkObjectResult>()); Assert.That(okObjectResultValue, Is.Not.Null); Assert.That(okObjectResultValue.Pagination.PageNumber, Is.EqualTo(1)); Assert.That(okObjectResultValue.Pagination.PageSize, Is.EqualTo(10)); Assert.That(okObjectResultValue.Items.Count(), Is.EqualTo(3)); }
public async Task GetSeasons_WhenExceptionIsCaught_ShouldReturnInternalServerError() { // Arrange var seasonRepository = A.Fake <ISeasonRepository>(); A.CallTo(() => seasonRepository.GetSeasonsAsync()).Throws <Exception>(); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator); // Act var result = await testController.GetSeasons(); // Assert result.Result.ShouldBeOfType <ObjectResult>(); ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError); ((ObjectResult)result.Result).Value.ShouldBe("Database failure"); }
public async Task GetSeasons_WhenNoExceptionIsCaught_ShouldGetSeasons() { // Arrange var seasonRepository = A.Fake <ISeasonRepository>(); var seasons = new List <Season>(); A.CallTo(() => seasonRepository.GetSeasonsAsync()).Returns(seasons); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator); // Act var result = await testController.GetSeasons(); // Assert A.CallTo(() => seasonRepository.GetSeasonsAsync()).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <SeasonModel[]>(seasons)).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <ActionResult <SeasonModel[]> >(); result.Value.ShouldBe(mapper.Map <SeasonModel[]>(seasons)); }