public async Task FindEntityAsync_ObjectNotFoundException_MethodAborts() { // Arrange var service = new SharedService(_dataMapper, _seasonRepository, _teamSeasonRepository); var teamName = "Team"; var seasonID = 2017; var dbContext = A.Fake <ProFootballEntities>(); var teamSeason = new TeamSeason(); A.CallTo(() => _teamSeasonRepository.FindEntityAsync(dbContext, A <string> .Ignored, A <int> .Ignored)) .Throws <ObjectNotFoundException>(); var teamSeasonViewModel = new TeamSeasonViewModel(); A.CallTo(() => _dataMapper.MapToTeamSeasonViewModel(A <TeamSeason> .Ignored)).Returns(teamSeasonViewModel); // Act var result = await service.FindEntityAsync(teamName, seasonID, dbContext); // Assert A.CallTo(() => _dataMapper.MapToTeamSeasonViewModel(teamSeason)).MustNotHaveHappened(); Assert.IsNull(result); }
public async Task FindEntityAsync_HappyPath() { // Arrange var service = new SharedService(_dataMapper, _seasonRepository, _teamSeasonRepository); var teamName = "Team"; var seasonID = 2017; var dbContext = A.Fake <ProFootballEntities>(); var teamSeason = new TeamSeason(); A.CallTo(() => _teamSeasonRepository.FindEntityAsync(dbContext, A <string> .Ignored, A <int> .Ignored)) .Returns(teamSeason); var teamSeasonViewModel = new TeamSeasonViewModel(); A.CallTo(() => _dataMapper.MapToTeamSeasonViewModel(A <TeamSeason> .Ignored)).Returns(teamSeasonViewModel); // Act var result = await service.FindEntityAsync(teamName, seasonID, dbContext); // Assert A.CallTo(() => _teamSeasonRepository.FindEntityAsync(dbContext, teamName, seasonID)) .MustHaveHappenedOnceExactly(); A.CallTo(() => _dataMapper.MapToTeamSeasonViewModel(teamSeason)).MustHaveHappenedOnceExactly(); Assert.AreSame(teamSeasonViewModel, result); }
public async Task PredictGamePost_HappyPath() { // Arrange var controller = new GamePredictorController(_service, _sharedService); var guestName = "Guest"; var guestSeasonID = 2017; var hostName = "Host"; var hostSeasonID = 2016; GamePredictorService.GuestSeasonID = guestSeasonID; GamePredictorService.HostSeasonID = hostSeasonID; var matchup = new GamePredictionViewModel { GuestName = guestName, GuestSeasonID = guestSeasonID, HostName = hostName, HostSeasonID = hostSeasonID }; var seasons = new List <SeasonViewModel>(); A.CallTo(() => _sharedService.GetSeasonsOrderedAsync(null)).Returns(seasons); var guestSeason = new TeamSeasonViewModel { TeamName = guestName, SeasonID = guestSeasonID }; A.CallTo(() => _sharedService.FindEntityAsync(matchup.GuestName, matchup.GuestSeasonID, null)) .Returns(guestSeason); var guestSeasons = new List <TeamSeasonViewModel>(); A.CallTo(() => _service.GetEntities((int)GamePredictorService.GuestSeasonID, null)) .Returns(guestSeasons); var hostSeason = new TeamSeasonViewModel { TeamName = hostName, SeasonID = hostSeasonID }; A.CallTo(() => _sharedService.FindEntityAsync(matchup.HostName, matchup.HostSeasonID, null)) .Returns(hostSeason); var hostSeasons = new List <TeamSeasonViewModel>(); A.CallTo(() => _service.GetEntities((int)GamePredictorService.HostSeasonID, null)) .Returns(hostSeasons); // Act var result = await controller.PredictGame(matchup); // Assert A.CallTo(() => _sharedService.GetSeasonsOrderedAsync(null)).MustHaveHappenedOnceExactly(); Assert.IsInstanceOf <ViewResult>(result); var resultAsViewResult = result as ViewResult; var viewBag = resultAsViewResult.ViewBag; A.CallTo(() => _sharedService.FindEntityAsync(matchup.GuestName, matchup.GuestSeasonID, null)) .MustHaveHappenedOnceExactly(); var viewBagGuestSeasonID = viewBag.GuestSeasonID; Assert.IsInstanceOf <SelectList>(viewBagGuestSeasonID); Assert.AreSame(seasons, viewBagGuestSeasonID.Items); Assert.AreEqual("ID", viewBagGuestSeasonID.DataValueField); Assert.AreEqual("ID", viewBagGuestSeasonID.DataTextField); Assert.AreEqual(guestSeason.SeasonID, viewBagGuestSeasonID.SelectedValues[0]); A.CallTo(() => _service.GetEntities((int)GamePredictorService.GuestSeasonID, null)) .MustHaveHappenedOnceExactly(); var viewBagGuestName = viewBag.GuestName; Assert.IsInstanceOf <SelectList>(viewBagGuestName); Assert.AreSame(guestSeasons, viewBagGuestName.Items); Assert.AreEqual("TeamName", viewBagGuestName.DataValueField); Assert.AreEqual("TeamName", viewBagGuestName.DataTextField); Assert.AreEqual(guestSeason.TeamName, viewBagGuestName.SelectedValues[0]); A.CallTo(() => _sharedService.FindEntityAsync(matchup.HostName, matchup.HostSeasonID, null)) .MustHaveHappenedOnceExactly(); var viewBagHostSeasonID = viewBag.HostSeasonID; Assert.IsInstanceOf <SelectList>(viewBagHostSeasonID); Assert.AreSame(seasons, viewBagHostSeasonID.Items); Assert.AreEqual("ID", viewBagHostSeasonID.DataValueField); Assert.AreEqual("ID", viewBagHostSeasonID.DataTextField); Assert.AreEqual(hostSeason.SeasonID, viewBagHostSeasonID.SelectedValues[0]); A.CallTo(() => _service.GetEntities((int)GamePredictorService.HostSeasonID, null)) .MustHaveHappenedOnceExactly(); var viewBagHostName = viewBag.HostName; Assert.IsInstanceOf <SelectList>(viewBagHostName); Assert.AreSame(hostSeasons, viewBagHostName.Items); Assert.AreEqual("TeamName", viewBagHostName.DataValueField); Assert.AreEqual("TeamName", viewBagHostName.DataTextField); Assert.AreEqual(hostSeason.TeamName, viewBagHostName.SelectedValues[0]); Assert.AreSame(matchup, resultAsViewResult.Model); }