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); }