예제 #1
0
        public void GetLastEntryOfEachDay_WhenCalled_ShouldOnlyReturnLastPlotOfEachDay()
        {
            // Arrange
            var cut = new PlayerRankLogic(
                new PlayerRankHistoryRepository(GetOptionsWrapper()));
            var list   = new List <PlayerRankSeasonEntry>();
            var entry1 = CreateEntries("player1", 1, (1, 1520), (1, 1540), (1, 1560), (2, 1580), (2, 1560), (3, 1540),
                                       (3, 1520));
            var entry2 = CreateEntries("player2", 1, (1, 1480), (2, 1460), (2, 1440), (4, 1420), (4, 1400), (5, 1380),
                                       (7, 1400));

            list.Add(entry1);
            list.Add(entry2);

            // Act
            var result = cut.GetLastEntryOfEachDay(list);

            // Assert
            var player1 = result.SingleOrDefault(x => x.Email == entry1.Email);

            player1.RankPlots.Count.Should().Be(3);
            player1.RankPlots.Single(x => x.Date.Day == 1).EloRating.Should().Be(1560);
            player1.RankPlots.Single(x => x.Date.Day == 2).EloRating.Should().Be(1560);
            player1.RankPlots.Single(x => x.Date.Day == 3).EloRating.Should().Be(1520);
            var player2 = result.SingleOrDefault(x => x.Email == entry2.Email);

            player2.RankPlots.Count.Should().Be(5);
            player2.RankPlots.Single(x => x.Date.Day == 1).EloRating.Should().Be(1480);
            player2.RankPlots.Single(x => x.Date.Day == 2).EloRating.Should().Be(1440);
            player2.RankPlots.Single(x => x.Date.Day == 4).EloRating.Should().Be(1400);
            player2.RankPlots.Single(x => x.Date.Day == 5).EloRating.Should().Be(1380);
            player2.RankPlots.Single(x => x.Date.Day == 7).EloRating.Should().Be(1400);
        }
예제 #2
0
        public void FillOutPlayerRankBlanks_WhenCalled_ShouldGiveEveryPlayerPlotsForSameDays()
        {
            // Arrange
            var optionsWrapper = GetOptionsWrapper();
            var cut            = new PlayerRankLogic(
                new PlayerRankHistoryRepository(
                    optionsWrapper));
            var list   = new List <PlayerRankSeasonEntry>();
            var entry1 = CreateEntry1day("player1", 1, 1);
            var entry2 = CreateEntry1day("player2", 1, 2);

            list.Add(entry1);
            list.Add(entry2);

            // Act
            var result = cut.FillOutPlayerRankBlanks(list);

            // Assert
            var player1 = result.SingleOrDefault(x => x.Email == entry1.Email);

            player1.RankPlots.Count.Should().Be(2);
            var player2 = result.SingleOrDefault(x => x.Email == entry2.Email);

            player2.RankPlots.Count.Should().Be(2);
        }