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