Exemplo n.º 1
0
        public void Standings_LastUpdateTimeExists_StandingsReturnLastUpdateTime()
        {
            // Arrange
            var LAST_UPDATE_TIME = new DateTime(2017, 4, 5, 12, 4, 23);

            var testPivotStandings = new PivotStandingsTestFixture().WithMultipleDivisionsAllPossibleScores()
                                     .WithLastUpdateTime(LAST_UPDATE_TIME).Build();
            var testStandings = new StandingsTestFixture().WithMultipleDivisionsAllPossibleScores()
                                .WithLastUpdateTime(LAST_UPDATE_TIME).Build();

            var expected = new StandingsViewModelBuilder().WithMultipleDivisionsAllPossibleScores()
                           .WithLastUpdateTime(LAST_UPDATE_TIME).Build();

            SetupIsStandingsAvailableTrue(TOURNAMENT_ID);
            SetupGameReportGetStandings(TOURNAMENT_ID, testStandings);
            SetupGameReportGetPivotStandings(TOURNAMENT_ID, testPivotStandings);

            var sut = BuildSUT();

            // Act
            var actual = TestExtensions.GetModel <StandingsViewModel>(sut.Standings(TOURNAMENT_ID, TOURNAMENT_NAME));

            // Assert
            TestHelper.AreEqual(expected, actual, new StandingsViewModelComparer());
        }
Exemplo 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");
        }
        public void Standings_StandingsRequested_StandingsReturned()
        {
            // Arrange
            var testStandings = new StandingsTestFixture().WithMultipleDivisionsAllPossibleScores().Build();

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

            MockGetStandings(TOURNAMENT_ID, testStandings);

            var sut = BuildSUT();

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

            // Assert
            TestHelper.AreEqual(expected, actual, new DivisionStandingsViewModelComparer());
        }
Exemplo n.º 4
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");
        }
Exemplo n.º 5
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.");
        }
Exemplo n.º 6
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.");
        }
Exemplo n.º 7
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");
        }
Exemplo n.º 8
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.");
        }
Exemplo n.º 9
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.");
        }
Exemplo n.º 10
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.");
        }
Exemplo n.º 11
0
        public void Standings_StandingsRequested_StandingsReturned()
        {
            // Arrange
            var testPivotStandings = new PivotStandingsTestFixture().WithMultipleDivisionsAllPossibleScores().Build();
            var testStandings      = new StandingsTestFixture().WithMultipleDivisionsAllPossibleScores().Build();

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

            SetupIsStandingsAvailableTrue(TOURNAMENT_ID);
            SetupGameReportGetStandings(TOURNAMENT_ID, testStandings);
            SetupGameReportGetPivotStandings(TOURNAMENT_ID, testPivotStandings);

            var sut = BuildSUT();

            // Act
            var actual = TestExtensions.GetModel <StandingsViewModel>(sut.Standings(TOURNAMENT_ID, TOURNAMENT_NAME));

            // Assert
            TestHelper.AreEqual(expected, actual, new StandingsViewModelComparer());
        }
        public void Standings_LastUpdateTimeExists_StandingsReturnLastUpdateTime()
        {
            // Arrange
            var LAST_UPDATE_TIME = new DateTime(2017, 4, 5, 12, 4, 23);

            var testStandings = new StandingsTestFixture().WithMultipleDivisionsAllPossibleScores()
                                .WithLastUpdateTime(LAST_UPDATE_TIME).Build();

            var expected = new DivisionStandingsViewModelTestFixture().WithMultipleDivisionsAllPossibleScores()
                           .WithLastUpdateTime(LAST_UPDATE_TIME).Build();

            MockGetStandings(TOURNAMENT_ID, testStandings);

            var sut = BuildSUT();

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

            // Assert
            TestHelper.AreEqual(expected, actual, new DivisionStandingsViewModelComparer());
        }
Exemplo n.º 13
0
        public void GetStandings_OneTeamHasTechnicalDefeatInSet_BallsDontCount()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithTechnicalDefeatInSet().Build();
            var teamsTestData       = TeamsInSingleDivisionSingleGroup();

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

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

            var sut = BuildSUT();

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

            // Assert
            AssertStandingsAreEqual(
                expected,
                actual,
                "When team has got technical defeat in set balls from this set should not be accounted in the statistics");
        }
Exemplo n.º 14
0
        public void GetMultipleDivisionStandings_NoGameResults_StandingsAreEmpty()
        {
            // Arrange
            var gameResultsTestData = new GameResultsTestFixture().WithNoGameResults().Build();
            var teamsTestData       = TeamsInTwoDivisionTwoGroups();
            var testTour            = CreateTwoDivisionsTournament(TOURNAMENT_ID);

            var expected = new StandingsTestFixture().WithMultipleDivisionsEmptyStandings().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");
        }