public async Task DeleteSeason_WhenSeasonIsFoundAndNotDeleted_ShouldReturnBadRequest() { // Arrange var seasonRepository = A.Fake <ISeasonRepository>(); Season?season = new Season(); A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).Returns(season); var sharedRepository = A.Fake <ISharedRepository>(); A.CallTo(() => sharedRepository.SaveChangesAsync()).Returns(0); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; // Act var result = await testController.DeleteSeason(id); // Assert A.CallTo(() => seasonRepository.GetSeasonAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.Result.ShouldBeOfType <BadRequestResult>(); }
public async Task DeleteSeason_WhenCalled_DeleteSeasonFromDb() { const int id = 1; var expectedSeason = new Season { Id = id }; _seasonService.Setup(s => s.GetByIdAsync(id)).ReturnsAsync(expectedSeason); var result = await _seasonsController.DeleteSeason(id); var okObjectResult = result as OkObjectResult; _seasonService.Verify(s => s.DeleteAsync(It.IsAny <Season>()), Times.Once); Assert.That(result, Is.TypeOf <OkObjectResult>()); Assert.That(okObjectResult.Value, Is.EqualTo(id)); }
public async Task DeleteSeason_WhenExceptionIsCaught_ShouldReturnInternalServerError() { // Arrange var seasonRepository = A.Fake <ISeasonRepository>(); A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).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); int id = 1; // Act var result = await testController.DeleteSeason(id); // Assert result.Result.ShouldBeOfType <ObjectResult>(); ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError); ((ObjectResult)result.Result).Value.ShouldBe("Database failure"); }
public async Task DeleteSeason_WhenSeasonIsNotFound_ShouldReturnNotFoundResult() { // Arrange var seasonRepository = A.Fake <ISeasonRepository>(); Season?season = null; A.CallTo(() => seasonRepository.GetSeasonAsync(A <int> .Ignored)).Returns(season); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new SeasonsController(seasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; // Act var result = await testController.DeleteSeason(id); // Assert A.CallTo(() => seasonRepository.GetSeasonAsync(id)).MustHaveHappenedOnceExactly(); result.Result.ShouldBeOfType <NotFoundObjectResult>(); ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find season with ID of {id}"); }