public void TournamentAggregate_ProduceResult_ResultIsProduced() { TournamentAggregate tournamentAggregate = TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate(20, 15, 23, 16, 0, 5); tournamentAggregate.ProduceResult(); tournamentAggregate.HasResultBeenProduced.ShouldBeTrue(); List <PlayerScoreRecordDataTransferObject> scores = tournamentAggregate.GetScores(); scores.Any(s => s.Last9HolesScore == 0).ShouldBeFalse(); scores.Any(s => s.Last6HolesScore == 0).ShouldBeFalse(); scores.Any(s => s.Last3HolesScore == 0).ShouldBeFalse(); scores.Any(s => s.TournamentDivision == 0).ShouldBeFalse(); scores.Any(s => s.Position == 0).ShouldBeFalse(); scores.Any(s => s.MeasuredCourseId == Guid.Empty).ShouldBeFalse(); scores.Any(s => s.PlayerId == Guid.Empty).ShouldBeFalse(); scores.Any(s => s.NetScore == 0).ShouldBeFalse(); scores.Any(s => s.GrossScore == 0).ShouldBeFalse(); scores.Any(s => s.PlayingHandicap < 0).ShouldBeFalse(); scores.Any(s => s.PlayingHandicap > 36).ShouldBeFalse(); scores.Any(s => s.TournamentId == Guid.Empty).ShouldBeFalse(); scores.Any(s => s.ScoreDate == DateTime.MinValue).ShouldBeFalse(); scores.Any(s => s.GolfClubId == Guid.Empty).ShouldBeFalse(); scores.Any(s => s.HandicapCategory == 0).ShouldBeFalse(); scores.Any(s => s.HoleScores.Count() != 18).ShouldBeFalse(); scores.Any(s => s.CSS == 0).ShouldBeFalse(); }
public void TournamentCommandHandler_HandleCommand_ProduceTournamentResultCommand_CommandHandled() { Mock <IAggregateRepository <GolfClubAggregate> > golfClubRepository = new Mock <IAggregateRepository <GolfClubAggregate> >(); Mock <IAggregateRepository <TournamentAggregate> > tournamentRepository = new Mock <IAggregateRepository <TournamentAggregate> >(); tournamentRepository.Setup(t => t.GetLatestVersion(It.IsAny <Guid>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate(1, 2, 2, 2, 5, 3)); Mock <ITournamentApplicationService> tournamentApplicationService = new Mock <ITournamentApplicationService>(); TournamentCommandHandler handler = new TournamentCommandHandler(golfClubRepository.Object, tournamentRepository.Object, tournamentApplicationService.Object); ProduceTournamentResultCommand command = TournamentTestData.GetProduceTournamentResultCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public void TournamentAggregate_ProduceResult_UnsupportedFormat_ErrorThrown() { TournamentAggregate tournamentAggregate = TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate(20, 15, 23, 16, 0, 5, TournamentFormat.Stableford); Should.Throw <NotSupportedException>(() => tournamentAggregate.ProduceResult()); }