public void GetMultipleDivisionPivotStandings_GameResultsAllPossibleScores_CorrectStats()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture()
                                      .WithMultipleDivisionsAllPosibleScores()
                                      .Build();

            var teamsTestData = TeamsInTwoDivisionTwoGroups();
            var testTour      = CreateTwoDivisionsTournament(TOURNAMENT_ID);

            var expected = new PivotStandingsTestFixture()
                           .WithMultipleDivisionsAllPossibleScores()
                           .Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);
            MockTournamentByIdQuery(TOURNAMENT_ID, testTour);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetPivotStandings(TOURNAMENT_ID);

            // Assert
            AssertPivotStandingsAreEqual(
                expected,
                actual,
                "Standings should be properly calclulated for case of several divisions");
        }
Esempio n. 2
0
        public void GetStandings_HasGameResults_LastStandingsUpdateTimeIsReturned()
        {
            // Arrange
            var LAST_UPDATE_TIME = new DateTime(2017, 4, 7, 23, 7, 45);

            var gameResultsTestData = new GameResultsTestFixture().WithAllPossibleScores().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();
            var testTour            = CreateSingleDivisionTournament(TOURNAMENT_ID, LAST_UPDATE_TIME);

            var expected = new StandingsTestFixture()
                           .WithStandingsForAllPossibleScores()
                           .WithLastUpdateTime(LAST_UPDATE_TIME)
                           .Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);
            MockTournamentByIdQuery(TOURNAMENT_ID, testTour);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(
                expected,
                actual,
                "Standings should be properly calclulated for case of several divisions");
        }
Esempio n. 3
0
        public void GetStandings_OneTeamNoLostSetsNoLostBalls_GetsToTheTopWhenOrderedByBallsRatio()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithNoLostSetsNoLostBallsForOneTeam().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();
            var expected            = new StandingsTestFixture().WithMaxBallsRatioForOneTeam().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "Team with no lost balls should be considered higher comparing to other teams when ordering by balls ratio");
        }
Esempio n. 4
0
        public void GetStandings_GameResultsAllPossibleScores_CorrectGamesStats()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithAllPossibleScores().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var expected = new StandingsTestFixture().WithStandingsForAllPossibleScores().Build();

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertGamesAreEqual(expected, actual, "Games should be calculated properly.");
        }
Esempio n. 5
0
        public void GetStandings_NoResultsButGamesScheduled_StandingEntriesAreEmpty()
        {
            // Arrange
            var gameResultsData = new GameResultsTestFixture().WithNoGameResults().Build();
            var teamsTestData   = TeamsInSingleDivisionSingleGroup();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var expected = new StandingsTestFixture().WithNoResults().Build();

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "When there are games scheduled but no results standing entries should be empty.");
        }
Esempio n. 6
0
        public void GetStandings_AwayTeamHasPenalty_PenaltyDeductedFromTotalPoints()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithAwayTeamPenalty().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

            var expected = new StandingsTestFixture().WithTeamCPenalty().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "Total points should be reduced by penalty ammount for penalized team");
        }
Esempio n. 7
0
        public void GetStandings_NoGamesScheduled_EmptyEntryForEachTeamCreated()
        {
            // Arrange
            var gameResultsData = new GameResultsTestFixture().WithNoGamesScheduled().Build();
            var teamsTestData   = TeamsInSingleDivisionSingleGroup();

            var expected = new StandingsTestFixture().WithNoResults().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "For each team in tournament empty standings entry should be created.");
        }
Esempio n. 8
0
        public void GetStandings_SeveralTeamsWithSamePointsAndWonGames_TeamsOrderedBySetsRatio()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithResultsForSamePointsAndWonGames().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

            var expected = new StandingsTestFixture().WithSamePointsAndWonGames().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "Teams should be ordered by set ratios.");
        }
Esempio n. 9
0
        public void GetStandings_GameResultsAllPossibleScores_TeamsOrderedByPoints()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithResultsForUniquePoints().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

            var expected = new StandingsTestFixture().WithUniquePoints().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetStandings(TOURNAMENT_ID);

            // Assert
            AssertStandingsAreEqual(expected, actual, "Teams should be ordered by points.");
        }
        public void GetPivotStandings_OneTeamHasTechnicalDefeatInSet_BallDoesntCount()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithTechnicalDefeatInSet().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

            var expected = new PivotStandingsTestFixture().WithTechnicalDefeatInSet().Build();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var sut = BuildSUT();

            // Act
            var actual = sut.GetPivotStandings(TOURNAMENT_ID);

            // Assert
            AssertPivotStandingsAreEqual(expected, actual, "When team has got technical defeat in set balls from this set should not be accounted in the statistics");
        }
        public void GetPivotStandings_PlannedGamesWithoutResults_StandingsContainPlannedGames()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture()
                                      .WithNotAllGamesPlayed()
                                      .Build();

            var teamsTestData = TeamsInSingleDivisionSingleGroup();

            MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData);
            MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData);

            var expected = new PivotStandingsTestFixture()
                           .WithNotAllGamesPlayed()
                           .Build();

            var sut = BuildSUT();

            // Act
            var actual = sut.GetPivotStandings(TOURNAMENT_ID);

            // Assert
            AssertPivotStandingsAreEqual(expected, actual, "Points, games, sets and balls should be calculated properly.");
        }