BusinessLogic.Tests.UnitTests.LogicTests.PlayersTests.PlayerRetrieverTests.GetAllPlayersWithNemesisInfoTests.ItReturnsPlayersOrderedByActiveAscThenTotalPointsDescThenNameAscending C# (CSharp) Method

ItReturnsPlayersOrderedByActiveAscThenTotalPointsDescThenNameAscending() private method

        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;
            }
        }