public void ItReturnsTheLastGamingGroupGamePlayed()
{
autoMocker.Get<IDataContext>().Expect(mock => mock.GetQueryable<Player>()).Return(new List<Player>
{
expectedPlayer
}.AsQueryable());
autoMocker.ClassUnderTest.Expect(mock => mock.GetGameDefinitionTotals(expectedPlayer.Id))
.Return(new GameDefinitionTotals());
var expectedBggGameDefinitionId = 2;
var expectedPlayedGame = MockRepository.GeneratePartialMock<PlayedGame>();
expectedPlayedGame.DatePlayed = new DateTime();
expectedPlayedGame.GameDefinitionId = 1;
expectedPlayedGame.WinnerType = WinnerTypes.PlayerWin;
expectedPlayedGame.GameDefinition = new GameDefinition
{
Name = "some game definition name",
BoardGameGeekGameDefinitionId = expectedBggGameDefinitionId,
BoardGameGeekGameDefinition = new BoardGameGeekGameDefinition
{
Name = "bgg name",
Thumbnail = "some thumbnail",
Id = expectedBggGameDefinitionId
}
};
var playedGames = new List<PlayedGame>
{
expectedPlayedGame
};
var expectedWinningPlayer = new Player
{
Id = 93,
Name = "some winning player name"
};
expectedPlayedGame.Expect(mock => mock.WinningPlayer).Repeat.Any().Return(expectedWinningPlayer);
autoMocker.Get<IPlayedGameRetriever>().Expect(mock => mock.GetRecentGames(1, expectedPlayer.GamingGroupId))
.Return(playedGames);
var result = autoMocker.ClassUnderTest.GetPlayerQuickStatsForUser(userId, gamingGroupId);
var lastGamingGroupGame = result.LastGamingGroupGame;
Assert.That(lastGamingGroupGame, Is.Not.Null);
Assert.That(lastGamingGroupGame.DatePlayed, Is.EqualTo(expectedPlayedGame.DatePlayed));
Assert.That(lastGamingGroupGame.GameDefinitionId, Is.EqualTo(expectedPlayedGame.GameDefinitionId));
Assert.That(lastGamingGroupGame.GameDefinitionName, Is.EqualTo(expectedPlayedGame.GameDefinition.Name));
Assert.That(lastGamingGroupGame.PlayedGameId, Is.EqualTo(expectedPlayedGame.Id));
var expectedBggUri = BoardGameGeekUriBuilder.BuildBoardGameGeekGameUri(expectedBggGameDefinitionId);
Assert.That(lastGamingGroupGame.BoardGameGeekUri, Is.EqualTo(expectedBggUri));
Assert.That(lastGamingGroupGame.ThumbnailImageUrl, Is.EqualTo(expectedPlayedGame.GameDefinition.BoardGameGeekGameDefinition.Thumbnail));
Assert.That(lastGamingGroupGame.WinnerType, Is.EqualTo(expectedPlayedGame.WinnerType));
Assert.That(lastGamingGroupGame.WinningPlayerName, Is.EqualTo(expectedWinningPlayer.Name));
Assert.That(lastGamingGroupGame.WinningPlayerId, Is.EqualTo(expectedWinningPlayer.Id));
}