public void FindEntityAsync_EntityNotFoundInDataStore_ThrowsObjectNotFoundException() { // Arrange var repository = new TeamSeasonRepository(); var dbContext = A.Fake <ProFootballEntities>(); var teamName = "Team"; var seasonID = 2017; TeamSeason teamSeason = null; A.CallTo(() => dbContext.TeamSeasons.FindAsync(A <string> .Ignored, A <int> .Ignored)).Returns(teamSeason); // Act TeamSeason result = null; Assert.ThrowsAsync <ObjectNotFoundException>(async() => { result = await repository.FindEntityAsync(dbContext, teamName, seasonID); }); // Assert A.CallTo(() => dbContext.TeamSeasons.FindAsync(teamName, seasonID)).MustHaveHappenedOnceExactly(); Assert.IsNull(result); }
public async Task FindEntityAsync_EntityFoundInDataStore_ReturnsEntity() { // Arrange var repository = new TeamSeasonRepository(); var dbContext = A.Fake <ProFootballEntities>(); var teamName = "Team"; var seasonID = 2017; TeamSeason teamSeason = new TeamSeason(); A.CallTo(() => dbContext.TeamSeasons.FindAsync(A <string> .Ignored, A <int> .Ignored)).Returns(teamSeason); // Act var result = await repository.FindEntityAsync(dbContext, teamName, seasonID); // Assert A.CallTo(() => dbContext.TeamSeasons.FindAsync(teamName, seasonID)).MustHaveHappenedOnceExactly(); Assert.AreSame(teamSeason, result); }
public void FindEntityAsync_InvalidOperationExceptionCaught_ThrowsObjectNotFoundException() { // Arrange var repository = new TeamSeasonRepository(); var dbContext = A.Fake <ProFootballEntities>(); var teamName = "Team"; var seasonID = 2017; A.CallTo(() => dbContext.TeamSeasons.FindAsync(A <string> .Ignored, A <int> .Ignored)) .Throws <InvalidOperationException>(); // Act TeamSeason result = null; Assert.ThrowsAsync <ObjectNotFoundException>(async() => { result = await repository.FindEntityAsync(dbContext, teamName, seasonID); }); // Assert Assert.IsNull(result); }