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 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 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"); }
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."); }
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."); }
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"); }
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."); }
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."); }
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."); }