public void RemoveTeamSeason_HappyPath()
        {
            // Arrange
            var dbContext  = A.Fake <ProFootballEntities>();
            var repository = new TeamSeasonRepository(dbContext);

            var teamSeason = new TeamSeason();

            A.CallTo(() => dbContext.TeamSeasons.Remove(A <TeamSeason> .Ignored)).Returns(teamSeason);

            // Act
            var result = repository.RemoveEntity(teamSeason);

            // Assert
            A.CallTo(() => dbContext.TeamSeasons.Remove(teamSeason)).MustHaveHappenedOnceExactly();
            Assert.AreSame(teamSeason, result);
        }
        public void RemoveTeamSeason_ExceptionCaught_LogsAndRethrowsException()
        {
            // Arrange
            var dbContext  = A.Fake <ProFootballEntities>();
            var repository = new TeamSeasonRepository(dbContext);

            var teamSeason = new TeamSeason();

            A.CallTo(() => dbContext.TeamSeasons.Remove(A <TeamSeason> .Ignored)).Throws <Exception>();

            // Act
            TeamSeason result = null;

            Assert.Throws <Exception>(() => result = repository.RemoveEntity(teamSeason));

            // Assert
            Assert.IsNull(result);
        }