public void ItReturnsPlayersOrderedByActiveAscThenTotalPointsDescThenNameAscending()
{
var players = autoMocker.ClassUnderTest.GetAllPlayersWithNemesisInfo(gamingGroupId);
var lastPlayerPoints = int.MaxValue;
var lastPlayerName = "0";
var lastActive = true;
foreach (var player in players)
{
if (lastActive == player.PlayerActive)
{
if (lastPlayerPoints.Equals(player.NemePointsSummary?.TotalPoints ?? 0))
{
Assert.LessOrEqual(lastPlayerName, player.PlayerName);
}
else
{
Assert.GreaterOrEqual(lastPlayerPoints, player.NemePointsSummary?.TotalPoints ?? 0);
}
}
else
{
//if the playerActive isn't the same as last active then it should be inactive since these come last
Assert.False(player.PlayerActive);
}
lastPlayerPoints = player.NemePointsSummary?.TotalPoints ?? 0;
lastPlayerName = player.PlayerName;
lastActive = player.PlayerActive;
}
}