public void ItFiltersPlayedGamesThatHappenedBeforeTheFromDate()
{
var autoMocker = new RhinoAutoMocker<PlayerRetriever>();
autoMocker.PartialMockTheClassUnderTest();
var gamingGroupId = 1;
var fromDate = new DateTime(2015, 6, 1);
var expectedNemePointsAwardedForEachGame = 50;
var queryable = new List<Player>
{
new Player
{
GamingGroupId = gamingGroupId,
PlayerGameResults = new List<PlayerGameResult>
{
new PlayerGameResult
{
GameRank = 2,
PlayedGame = new PlayedGame
{
DatePlayed = fromDate.AddDays(-1)
},
NemeStatsPointsAwarded = expectedNemePointsAwardedForEachGame
},
new PlayerGameResult
{
GameRank = 1,
PlayedGame = new PlayedGame
{
DatePlayed = fromDate.AddDays(1)
},
NemeStatsPointsAwarded = expectedNemePointsAwardedForEachGame
},
new PlayerGameResult
{
GameRank = 1,
PlayedGame = new PlayedGame
{
DatePlayed = fromDate.AddDays(-1)
},
NemeStatsPointsAwarded = expectedNemePointsAwardedForEachGame
}
},
ChampionedGames = new List<Champion>()
}
}.AsQueryable();
autoMocker.Get<IDataContext>().Expect(mock => mock.GetQueryable<Player>())
.Return(queryable);
autoMocker.ClassUnderTest.Expect(mock => mock.PopulateNemePointsSummary(Arg<int>.Is.Anything, Arg<List<PlayerWithNemesis>>.Is.Anything, Arg<IDateRangeFilter>.Is.Anything));
var dateRangeFilter = new BasicDateRangeFilter
{
FromDate = fromDate
};
var players = autoMocker.ClassUnderTest.GetAllPlayersWithNemesisInfo(gamingGroupId, dateRangeFilter);
Assert.That(players.Count, Is.EqualTo(1));
var player = players.First();
Assert.That(player.GamesLost, Is.EqualTo(0));
Assert.That(player.GamesWon, Is.EqualTo(1));
}