public async Task DeleteLeagueSeason_WhenLeagueSeasonIsFoundAndNotDeleted_ShouldReturnBadRequest() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = new LeagueSeason(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason); var sharedRepository = A.Fake <ISharedRepository>(); A.CallTo(() => sharedRepository.SaveChangesAsync()).Returns(0); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; // Act var result = await testController.DeleteLeagueSeason(id); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.Result.ShouldBeOfType <BadRequestResult>(); }
public async Task PutLeagueSeason_WhenLeagueSeasonIsFoundAndSaved_ShouldReturnModelOfLeagueSeason() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = new LeagueSeason(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason); var sharedRepository = A.Fake <ISharedRepository>(); A.CallTo(() => sharedRepository.SaveChangesAsync()).Returns(1); var mapper = A.Fake <IMapper>(); var returnModel = new LeagueSeasonModel(); A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).Returns(returnModel); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; var model = new LeagueSeasonModel(); // Act var result = await testController.PutLeagueSeason(id, model); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map(model, leagueSeason)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).MustHaveHappenedOnceExactly(); result.Value.ShouldBe(returnModel); }
public async Task Details_WhenIdIsNotNullAndLeagueSeasonFound_ShouldReturnLeagueSeasonDetailsView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = new LeagueSeason(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int?id = 0; // Act var result = await testController.Details(id); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id.Value)).MustHaveHappenedOnceExactly(); leagueSeasonsDetailsViewModel.LeagueSeason.ShouldBe(leagueSeason); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(leagueSeasonsDetailsViewModel); }
public async Task GetLeagueSeason_WhenLeagueSeasonIsNotNull_ShouldReturnLeagueSeasonModelOfDesiredLeagueSeason() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = new LeagueSeason(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); LeagueSeasonModel?leagueSeasonModel = new LeagueSeasonModel(); A.CallTo(() => mapper.Map <LeagueSeasonModel>(A <LeagueSeason> .Ignored)).Returns(leagueSeasonModel); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; // Act var result = await testController.GetLeagueSeason(id); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <LeagueSeasonModel>(leagueSeason)).MustHaveHappenedOnceExactly(); result.Value.ShouldBeOfType <LeagueSeasonModel>(); }
public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndLeagueSeasonWithIdExists_ShouldRethrowException() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).Throws <DbUpdateConcurrencyException>(); A.CallTo(() => leagueSeasonRepository.LeagueSeasonExists(A <int> .Ignored)).Returns(true); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 1; var leagueSeason = new LeagueSeason { ID = 1 }; // Act var func = new Func <Task <IActionResult> >(async() => await testController.Edit(id, leagueSeason)); // Assert await func.ShouldThrowAsync <DbUpdateConcurrencyException>(); }
public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsNotValid_ShouldReturnLeagueSeasonEditView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 1; var leagueSeason = new LeagueSeason { ID = 1 }; testController.ModelState.AddModelError("LongName", "Please enter a long name."); // Act var result = await testController.Edit(id, leagueSeason); // Assert A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).MustNotHaveHappened(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened(); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(leagueSeason); }
public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsNotCaught_ShouldUpdateLeagueSeasonInDataStoreAndRedirectToIndexView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 1; var leagueSeason = new LeagueSeason { ID = 1 }; // Act var result = await testController.Edit(id, leagueSeason); // Assert A.CallTo(() => leagueSeasonRepository.Update(leagueSeason)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task EditPost_WhenIdEqualsLeagueSeasonIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndLeagueSeasonWithIdDoesNotExist_ShouldReturnNotFound() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); A.CallTo(() => leagueSeasonRepository.Update(A <LeagueSeason> .Ignored)).Throws <DbUpdateConcurrencyException>(); A.CallTo(() => leagueSeasonRepository.LeagueSeasonExists(A <int> .Ignored)).Returns(false); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 1; var leagueSeason = new LeagueSeason { ID = 1 }; // Act var result = await testController.Edit(id, leagueSeason); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public async Task PutLeagueSeason_WhenLeagueSeasonIsNotFound_ShouldReturnNotFoundResult() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = null; A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Returns(leagueSeason); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; var model = new LeagueSeasonModel(); // Act var result = await testController.PutLeagueSeason(id, model); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(id)).MustHaveHappenedOnceExactly(); result.Result.ShouldBeOfType <NotFoundObjectResult>(); ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find leagueSeason with ID of {id}"); }
public async Task GetLeagueSeason_WhenExceptionIsCaught_ShouldReturnInternalServerError() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); LeagueSeason?leagueSeason = new LeagueSeason(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonAsync(A <int> .Ignored)).Throws <Exception>(); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); LeagueSeasonModel?leagueSeasonModel = new LeagueSeasonModel(); A.CallTo(() => mapper.Map <LeagueSeasonModel>(A <LeagueSeason> .Ignored)).Returns(leagueSeasonModel); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); int id = 1; // Act var result = await testController.GetLeagueSeason(id); // Assert result.Result.ShouldBeOfType <ObjectResult>(); ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError); ((ObjectResult)result.Result).Value.ShouldBe("Database failure"); }
public void CreateGet_ShouldReturnLeagueSeasonCreateView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); // Act var result = testController.Create(); // Assert result.ShouldBeOfType <ViewResult>(); }
public async Task Details_WhenIdIsNull_ShouldReturnNotFound() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int?id = null; // Act var result = await testController.Details(id); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public async Task DeleteConfirmed_ShouldDeleteLeagueSeasonFromDataStoreAndRedirectToIndexView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 1; // Act var result = await testController.DeleteConfirmed(id); // Assert A.CallTo(() => leagueSeasonRepository.DeleteAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task CreatePost_WhenModelStateIsValid_ShouldAddLeagueSeasonToDataStoreAndRedirectToIndexView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); var leagueSeason = new LeagueSeason(); // Act var result = await testController.Create(leagueSeason); // Assert A.CallTo(() => leagueSeasonRepository.AddAsync(leagueSeason)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task EditPost_WhenIdDoesNotEqualLeagueSeasonId_ShouldReturnNotFound() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); int id = 0; var leagueSeason = new LeagueSeason { ID = 1 }; // Act var result = await testController.Edit(id, leagueSeason); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public async Task CreatePost_WhenModelStateIsNotValid_ShouldReturnLeagueSeasonCreateView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); var leagueSeason = new LeagueSeason(); testController.ModelState.AddModelError("LongName", "Please enter a long name."); // Act var result = await testController.Create(leagueSeason); // Assert A.CallTo(() => leagueSeasonRepository.AddAsync(leagueSeason)).MustNotHaveHappened(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened(); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(leagueSeason); }
public async Task GetLeagueSeasons_WhenNoExceptionIsCaught_ShouldGetLeagueSeasons() { // Arrange var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var leagueSeasons = new List <LeagueSeason>(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).Returns(leagueSeasons); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeagueSeasonsController(leagueSeasonRepository, sharedRepository, mapper, linkGenerator); // Act var result = await testController.GetLeagueSeasons(); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <LeagueSeasonModel[]>(leagueSeasons)).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <ActionResult <LeagueSeasonModel[]> >(); result.Value.ShouldBe(mapper.Map <LeagueSeasonModel[]>(leagueSeasons)); }
public async Task Index_ShouldReturnLeagueSeasonsIndexView() { // Arrange var leagueSeasonsIndexViewModel = A.Fake <ILeagueSeasonsIndexViewModel>(); var leagueSeasonsDetailsViewModel = A.Fake <ILeagueSeasonsDetailsViewModel>(); var leagueSeasonRepository = A.Fake <ILeagueSeasonRepository>(); var leagueSeasons = new List <LeagueSeason>(); A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).Returns(leagueSeasons); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new LeagueSeasonsController(leagueSeasonsIndexViewModel, leagueSeasonsDetailsViewModel, leagueSeasonRepository, sharedRepository); // Act var result = await testController.Index(); // Assert A.CallTo(() => leagueSeasonRepository.GetLeagueSeasonsAsync()).MustHaveHappenedOnceExactly(); leagueSeasonsIndexViewModel.LeagueSeasons.ShouldBe(leagueSeasons); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(leagueSeasonsIndexViewModel); }