public void TournamentAggregate_RecordPlayerScore_TournamentNotCreated_ErrorThrown() { TournamentAggregate aggregate = TournamentTestData.GetEmptyTournamentAggregate(); Should.Throw <InvalidOperationException>(() => { aggregate.RecordPlayerScore(TournamentTestData.PlayerId, TournamentTestData.PlayingHandicap, TournamentTestData.HoleScores); }); }
public void TournamentAggregate_RecordPlayerScore_InvalidData_NotAllHoleScores_ErrorThrown() { TournamentAggregate aggregate = TournamentTestData.GetCreatedTournamentAggregateWithPlayerSignedUp(); Should.Throw <InvalidDataException>(() => { aggregate.RecordPlayerScore(TournamentTestData.PlayerId, TournamentTestData.PlayingHandicap, TournamentTestData.HoleScoresNotAllPresent); }); }
public void TournamentAggregate_RecordPlayerScore_InvalidData_NegativeHoleScores_ErrorThrown(Int32 holeNumber) { TournamentAggregate aggregate = TournamentTestData.GetCreatedTournamentAggregateWithPlayerSignedUp(); Should.Throw <InvalidDataException>(() => { aggregate.RecordPlayerScore(TournamentTestData.PlayerId, TournamentTestData.PlayingHandicap, TournamentTestData.HoleScoresNegativeScore(holeNumber)); }); }
public static TournamentAggregate GetCreatedTournamentWithScoresRecordedAggregate() { TournamentAggregate aggregate = TournamentAggregate.Create(TournamentTestData.AggregateId); aggregate.CreateTournament(TournamentTestData.TournamentDate, TournamentTestData.GolfClubId, TournamentTestData.MeasuredCourseId, TournamentTestData.MeasuredCourseSSS, TournamentTestData.Name, TournamentTestData.PlayerCategoryEnum, TournamentTestData.TournamentFormatEnum); aggregate.SignUpForTournament(TournamentTestData.PlayerId); aggregate.RecordPlayerScore(TournamentTestData.PlayerId, TournamentTestData.PlayingHandicap, TournamentTestData.HoleScores); return(aggregate); }
public void TournamentAggregate_RecordPlayerScore_InvalidData_ErrorThrown(Boolean validPlayerId, Int32 playingHandicap, Boolean validHoleScores, Type exceptionType) { TournamentAggregate aggregate = TournamentTestData.GetEmptyTournamentAggregate(); Guid playerId = validPlayerId ? TournamentTestData.PlayerId : Guid.Empty; Dictionary <Int32, Int32> holeScores = validHoleScores ? TournamentTestData.HoleScores : null; Should.Throw(() => { aggregate.RecordPlayerScore(playerId, playingHandicap, holeScores); }, exceptionType); }
/// <summary> /// Handles the command. /// </summary> /// <param name="command">The command.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> private async Task HandleCommand(RecordPlayerTournamentScoreCommand command, CancellationToken cancellationToken) { // Rehydrate the aggregate TournamentAggregate tournament = await this.TournamentRepository.GetLatestVersion(command.TournamentId, cancellationToken); tournament.RecordPlayerScore(command.PlayerId, command.RecordPlayerTournamentScoreRequest.PlayingHandicap, command.RecordPlayerTournamentScoreRequest.HoleScores); // Save the changes await this.TournamentRepository.SaveChanges(tournament, cancellationToken); }
public static TournamentAggregate GetCompletedTournamentAggregate(Int32 category1Scores = 1, Int32 category2Scores = 2, Int32 category3Scores = 7, Int32 category4Scores = 20, Int32 category5Scores = 5, Int32 bufferorbetter = 5) { TournamentAggregate aggregate = TournamentAggregate.Create(TournamentTestData.AggregateId); aggregate.CreateTournament(TournamentTestData.TournamentDate, TournamentTestData.GolfClubId, TournamentTestData.MeasuredCourseId, TournamentTestData.MeasuredCourseSSS, TournamentTestData.Name, TournamentTestData.PlayerCategoryEnum, TournamentTestData.TournamentFormatEnum); List <GeneratedPlayerScore> scoresToRecord = TournamentTestData.GenerateScores(category1Scores, category2Scores, category3Scores, category4Scores, category5Scores, bufferorbetter); foreach (GeneratedPlayerScore playerScoreForTest in scoresToRecord) { aggregate.SignUpForTournament(playerScoreForTest.PlayerId); aggregate.RecordPlayerScore(playerScoreForTest.PlayerId, playerScoreForTest.Handicap, playerScoreForTest.HoleScores); } aggregate.CompleteTournament(TournamentTestData.CompletedDateTime); return(aggregate); }
public void TournamentAggregate_RecordPlayerScore_PlayerScoreRecorded() { TournamentAggregate aggregate = TournamentTestData.GetCreatedTournamentAggregateWithPlayerSignedUp(); Should.NotThrow(() => { aggregate.RecordPlayerScore(TournamentTestData.PlayerId, TournamentTestData.PlayingHandicap, TournamentTestData.HoleScores); }); }