public async Task PutLeague_WhenLeagueIsNotFound_ShouldReturnNotFoundResult() { // Arrange var leagueRepository = A.Fake <ILeagueRepository>(); League?league = null; A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Returns(league); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator); int id = 1; var model = new LeagueModel(); // Act var result = await testController.PutLeague(id, model); // Assert A.CallTo(() => leagueRepository.GetLeagueAsync(id)).MustHaveHappenedOnceExactly(); result.Result.ShouldBeOfType <NotFoundObjectResult>(); ((NotFoundObjectResult)result.Result).Value.ShouldBe($"Could not find league with ID of {id}"); }
public async Task PutLeague_WhenLeagueIsFoundAndNotSaved_ShouldReturnBadRequestResult() { // Arrange var leagueRepository = A.Fake <ILeagueRepository>(); League?league = new League(); A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Returns(league); var sharedRepository = A.Fake <ISharedRepository>(); A.CallTo(() => sharedRepository.SaveChangesAsync()).Returns(0); var mapper = A.Fake <IMapper>(); var returnModel = new LeagueModel(); A.CallTo(() => mapper.Map <LeagueModel>(league)).Returns(returnModel); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator); int id = 1; var model = new LeagueModel(); // Act var result = await testController.PutLeague(id, model); // Assert A.CallTo(() => leagueRepository.GetLeagueAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map(model, league)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <LeagueModel>(league)).MustNotHaveHappened(); result.Result.ShouldBeOfType <BadRequestResult>(); }
public void TestUpdateLeagueSuccess() { var league = new League { Type = "Soccer", Name = "West Chester coed over 30", Address = new Address { street = "400 Boot Rd", city = "Downingtown", state = "PA", zip = "19053" }, Image = "http://editor.swagger.io/photos" }; var databaseFactory = new TestDatabaseFactory(); var leagueController = new LeaguesController(databaseFactory); SetupControllerForTests(leagueController); // Add new league var response = leagueController.PostLeague(league); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created), "The expected status code is 201 created"); // Get the newly created league var leagues = leagueController.Get(league.Type, league.Name); Assert.That(leagues.Count, Is.EqualTo(1), "The number of leagues shoud be one"); var createdLeague = leagues[0]; // Modify league name createdLeague.Name = createdLeague.Name + "_Updated"; // Update league var ret = leagueController.PutLeague(createdLeague.Id, createdLeague); // Get updated league leagues = leagueController.Get(league.Type, league.Name); Assert.That(leagues.Count, Is.EqualTo(1), "The number of leagues should be one"); var modifiedLeague = leagues[0]; Assert.That(modifiedLeague.Id, Is.EqualTo(createdLeague.Id), "The league Id should remain the same"); Assert.That(modifiedLeague.Name, Is.EqualTo(createdLeague.Name), "The league name should remain the same"); }
public async Task PutLeague_WhenExceptionIsCaught_ShouldReturnInternalServerError() { // Arrange var leagueRepository = A.Fake <ILeagueRepository>(); A.CallTo(() => leagueRepository.GetLeagueAsync(A <int> .Ignored)).Throws <Exception>(); var sharedRepository = A.Fake <ISharedRepository>(); var mapper = A.Fake <IMapper>(); var linkGenerator = A.Fake <LinkGenerator>(); var testController = new LeaguesController(leagueRepository, sharedRepository, mapper, linkGenerator); int id = 1; var model = new LeagueModel(); // Act var result = await testController.PutLeague(id, model); // Assert result.Result.ShouldBeOfType <ObjectResult>(); ((ObjectResult)result.Result).StatusCode.ShouldBe(StatusCodes.Status500InternalServerError); ((ObjectResult)result.Result).Value.ShouldBe("Database failure"); }