public void GetPivotStandings_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); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); MockTournamentByIdQuery(TOURNAMENT_ID, testTour); var expected = new PivotStandingsTestFixture() .WithStandingsForAllPossibleScores() .WithLastUpdateTime(LAST_UPDATE_TIME) .Build(); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "Points, games, sets and balls should be calculated properly."); }
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"); }
public void GetPivotStandings_OneTeamNoLostSetsNoLostBalls_GetsToTheTopWhenOrderedByBallsRatio() { // Arrange var gameResultsTestData = new GameResultsTestFixture().WithNoLostSetsNoLostBallsForOneTeam().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); var expected = new PivotStandingsTestFixture().WithMaxBallsRatioForOneTeam().Build(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "Team with no lost balls should be considered higher comparing to other teams when ordering by balls ratio"); }
public void GetPivotStandings_GameResultsAllPossibleScores_CorrectBallStats() { // Arrange var gameResultsTestData = new GameResultsTestFixture().WithAllPossibleScores().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var expected = new PivotStandingsTestFixture().WithStandingsForAllPossibleScores().Build(); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertBallsAreEqual(expected, actual, "Balls should be calculated properly."); }
public void GetPivotStandings_ScheduledGamesButNoResults_StandingEntriesAreEmpty() { // Arrange var gameResultsData = new GameResultsTestFixture().WithNoGameResults().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var expected = new PivotStandingsTestFixture().WithEmptyResults().Build(); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "When there are games scheduled but no results standing entries should be empty"); }
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_HomeTeamHasPenalty_PenaltyDeductedFromTotalPoints() { // Arrange var gameResultsTestData = new GameResultsTestFixture().WithHomeTeamPenalty().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); var expected = new PivotStandingsTestFixture().WithTeamAPenalty().Build(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "Total points should be reduced by penalty amount for penalized team"); }
public void GetPivotStandings_SeveralTeamsWithSamePointsAndWonGames_TeamsOrderedBySetsRatio() { // Arrange var gameResultsTestData = new GameResultsTestFixture().WithResultsForSamePointsAndWonGames().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); var expected = new PivotStandingsTestFixture().WithSamePointsAndWonGames().Build(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "Teams should be ordered by set ratios."); }
public void GetPivotStandings_NoGamesScheduled_EmptyEntryForEachTeamCreated() { // Arrange var gameResultsData = new GameResultsTestFixture().WithNoGamesScheduled().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); var expected = new PivotStandingsTestFixture().WithNoResults().Build(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "For each team in tournament empty standings entry should be created"); }
public void GetPivotStandings_GameResultsAllPossibleScores_TeamsOrderedByPoints() { // Arrange var gameResultsTestData = new GameResultsTestFixture().WithResultsForUniquePoints().Build(); var teamsTestData = TeamsInSingleDivisionSingleGroup(); var expected = new PivotStandingsTestFixture().WithUniquePoints().Build(); MockTournamentGameResultsQuery(TOURNAMENT_ID, gameResultsTestData); MockTournamentTeamsQuery(TOURNAMENT_ID, teamsTestData); var sut = BuildSUT(); // Act var actual = sut.GetPivotStandings(TOURNAMENT_ID); // Assert AssertPivotStandingsAreEqual(expected, actual, "Teams should be ordered by points."); }
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."); }