public void GolfClubMembershipApplicationService_RequestClubMembership_ClubNotCreated_ErrorThrown() { Mock <IAggregateRepository <GolfClubAggregate> > golfClubRepository = new Mock <IAggregateRepository <GolfClubAggregate> >(); golfClubRepository.Setup(g => g.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(GolfClubTestData.GetEmptyGolfClubAggregate()); Mock <IAggregateRepository <PlayerAggregate> > playerRepository = new Mock <IAggregateRepository <PlayerAggregate> >(); playerRepository.Setup(p => p.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(PlayerTestData.GetRegisteredPlayerAggregate()); Mock <IAggregateRepository <GolfClubMembershipAggregate> > golfClubMembershipRepository = new Mock <IAggregateRepository <GolfClubMembershipAggregate> >(); golfClubMembershipRepository.Setup(g => g.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)).ReturnsAsync(GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate()); GolfClubMembershipApplicationService service = new GolfClubMembershipApplicationService(golfClubRepository.Object, playerRepository.Object, golfClubMembershipRepository.Object); Should.Throw <InvalidDataException>(async() => await service.RequestClubMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.AggregateId, CancellationToken.None)); golfClubMembershipRepository.Verify( x => x.SaveChanges(It.IsAny <GolfClubMembershipAggregate>(), CancellationToken.None), Times.Never); }
public void GolfClubAggregate_AddTournamentDivision_DivisionAdded() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); TournamentDivisionDataTransferObject tournamentDivision = GolfClubTestData.GetTournamentDivision1(); Should.NotThrow(() => { aggregate.AddTournamentDivision(tournamentDivision); }); }
public async Task GolfClubMembershipApplicationService_RequestClubMembership_MembershipRequestProcessed() { Mock <IAggregateRepository <GolfClubAggregate> > golfClubRepository = new Mock <IAggregateRepository <GolfClubAggregate> >(); golfClubRepository.Setup(g => g.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(GolfClubTestData.GetCreatedGolfClubAggregate()); Mock <IAggregateRepository <PlayerAggregate> > playerRepository = new Mock <IAggregateRepository <PlayerAggregate> >(); playerRepository.Setup(p => p.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(PlayerTestData.GetRegisteredPlayerAggregate()); Mock <IAggregateRepository <GolfClubMembershipAggregate> > golfClubMembershipRepository = new Mock <IAggregateRepository <GolfClubMembershipAggregate> >(); golfClubMembershipRepository.Setup(g => g.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)).ReturnsAsync(GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate()); GolfClubMembershipApplicationService service = new GolfClubMembershipApplicationService(golfClubRepository.Object, playerRepository.Object, golfClubMembershipRepository.Object); await service.RequestClubMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.AggregateId, CancellationToken.None); golfClubMembershipRepository.Verify( x => x.SaveChanges(It.IsAny <GolfClubMembershipAggregate>(), CancellationToken.None), Times.Once); }
public void GolfClubAggregate_AddTournamentDivision_ClubNotCreated_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetEmptyGolfClubAggregate(); TournamentDivisionDataTransferObject tournamentDivision = GolfClubTestData.GetTournamentDivision1(); Should.Throw <InvalidOperationException>(() => { aggregate.AddTournamentDivision(tournamentDivision); }); }
public void GolfClubAggregate_GetMeasuredCourse_MeasuredCourseWithHolesReturned() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); MeasuredCourseDataTransferObject measuredCourse = aggregate.GetMeasuredCourse(measuredCourseDataTransferObject.MeasuredCourseId); measuredCourse.ShouldNotBeNull(); measuredCourse.Name.ShouldBe(measuredCourseDataTransferObject.Name); measuredCourse.StandardScratchScore.ShouldBe(measuredCourseDataTransferObject.StandardScratchScore); measuredCourse.TeeColour.ShouldBe(measuredCourseDataTransferObject.TeeColour); measuredCourse.Holes.Count.ShouldBe(measuredCourseDataTransferObject.Holes.Count); IOrderedEnumerable <HoleDataTransferObject> resultHoles = measuredCourse.Holes.OrderBy(m => m.HoleNumber); foreach (HoleDataTransferObject holeDataTransferObject in resultHoles) { HoleDataTransferObject orignalHole = measuredCourseDataTransferObject.Holes.Single(h => h.HoleNumber == holeDataTransferObject.HoleNumber); holeDataTransferObject.HoleNumber.ShouldBe(orignalHole.HoleNumber); holeDataTransferObject.LengthInMeters.ShouldBe(orignalHole.LengthInMeters); holeDataTransferObject.LengthInYards.ShouldBe(orignalHole.LengthInYards); holeDataTransferObject.Par.ShouldBe(orignalHole.Par); holeDataTransferObject.StrokeIndex.ShouldBe(orignalHole.StrokeIndex); } }
public void GolfClubAggregate_AddTournamentDivision_NullTournamentDivision_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); TournamentDivisionDataTransferObject tournamentDivision = null; Should.Throw <ArgumentNullException>(() => { aggregate.AddTournamentDivision(tournamentDivision); }); }
public void GolfClubAggregate_AddMeasuredCourse_ClubNotCreated_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetEmptyGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); Should.Throw <InvalidOperationException>(() => { aggregate.AddMeasuredCourse(measuredCourseDataTransferObject); }); }
public void GolfClubAggregate_AddMeasuredCourse_InvalidNumberOfHoles_ErrorThrown(Int32 numberHoles) { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(numberHoles); Should.Throw <InvalidDataException>(() => { aggregate.AddMeasuredCourse(measuredCourseDataTransferObject); }); }
public void GolfClubAggregate_GetMeasuredCourse_MeasuredCourseNotFound_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); Should.Throw <NotFoundException>(() => { aggregate.GetMeasuredCourse(GolfClubTestData.InvalidMeasuredCourseId); }); }
public void GolfClubAggregate_GetMeasuredCourses_NoCourses_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); Should.Throw <NotFoundException>(() => { aggregate.GetMeasuredCourses(); }); }
public void GolfClubAggregate_AddMeasuredCourse_InvalidHoleData_MissingHoleNumber_ErrorThrown(Int32 holeNumber) { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAddWithMissingHoles(holeNumber); Should.Throw <InvalidDataException>(() => { aggregate.AddMeasuredCourse(measuredCourseDataTransferObject); }); }
public void GolfClubAggregate_CreateGolfClubAdministratorSecurityUser_GolfClubAdministratorSecurityUserCreated() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); aggregate.CreateGolfClubAdministratorSecurityUser(GolfClubTestData.GolfClubAdministratorSecurityUserId); aggregate.GolfClubAdministratorSecurityUserId.ShouldBe(GolfClubTestData.GolfClubAdministratorSecurityUserId); aggregate.HasAdminSecurityUserBeenCreated.ShouldBeTrue(); }
public void GolfClubAggregate_AddTournamentDivision_DuplicateDivision_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); TournamentDivisionDataTransferObject tournamentDivision = GolfClubTestData.GetTournamentDivision1(); aggregate.AddTournamentDivision(tournamentDivision); Should.Throw <InvalidOperationException>(() => { aggregate.AddTournamentDivision(tournamentDivision); }); }
public void GolfClubAggregate_AddMeasuredCourse_InvalidHoleData_InvalidData_ErrorThrown(Int32 lengthInYards, Int32 par) { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); measuredCourseDataTransferObject.Holes.First().LengthInYards = lengthInYards; measuredCourseDataTransferObject.Holes.First().Par = par; Should.Throw <InvalidDataException>(() => { aggregate.AddMeasuredCourse(measuredCourseDataTransferObject); }); }
public void GolfClubAggregate_GetMeasuredCourses_MeasuredCoursesReturned() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); List <MeasuredCourseDataTransferObject> measuredCourses = aggregate.GetMeasuredCourses(); measuredCourses.ShouldNotBeEmpty(); measuredCourses.First().MeasuredCourseId.ShouldBe(measuredCourseDataTransferObject.MeasuredCourseId); measuredCourses.First().Name.ShouldBe(measuredCourseDataTransferObject.Name); measuredCourses.First().TeeColour.ShouldBe(measuredCourseDataTransferObject.TeeColour); measuredCourses.First().StandardScratchScore.ShouldBe(measuredCourseDataTransferObject.StandardScratchScore); }
public void GolfClubAggregate_AddTournamentDivision_InvalidDivisionData_ErrorThrown(Int32 division, Int32 startHandicap, Int32 endHandicap, Type exceptionType) { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); TournamentDivisionDataTransferObject tournamentDivision = new TournamentDivisionDataTransferObject { Division = division, EndHandicap = endHandicap, StartHandicap = startHandicap }; Should.Throw(() => { aggregate.AddTournamentDivision(tournamentDivision); }, exceptionType); }
public void GolfClubAggregate_AddMeasuredCourse_InvalidCourseData_ErrorThrown(Boolean validMeasuredCourseId, String name, String teeColour, Int32 standardScratchScore) { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); MeasuredCourseDataTransferObject measuredCourseDataTransferObject = GolfClubTestData.GetMeasuredCourseToAdd(); measuredCourseDataTransferObject.MeasuredCourseId = validMeasuredCourseId ? GolfClubTestData.MeasuredCourseId : Guid.Empty; measuredCourseDataTransferObject.Name = name; measuredCourseDataTransferObject.TeeColour = teeColour; measuredCourseDataTransferObject.StandardScratchScore = standardScratchScore; Should.Throw <ArgumentNullException>(() => { aggregate.AddMeasuredCourse(measuredCourseDataTransferObject); }); }
public void GolfClubCommandHandler_HandleCommand_RequestClubMembershipCommand_CommandHandled() { Mock <IAggregateRepository <GolfClubAggregate> > repository = new Mock <IAggregateRepository <GolfClubAggregate> >(); Mock <ISecurityService> oAuth2SecurityService = new Mock <ISecurityService>(); Mock <IGolfClubMembershipApplicationService> golfClubMembershipApplicationService = new Mock <IGolfClubMembershipApplicationService>(); golfClubMembershipApplicationService.Setup(x => x.RequestClubMembership(It.IsAny <Guid>(), It.IsAny <Guid>(), CancellationToken.None)) .Returns(Task.CompletedTask); GolfClubCommandHandler handler = new GolfClubCommandHandler(repository.Object, oAuth2SecurityService.Object, golfClubMembershipApplicationService.Object); RequestClubMembershipCommand command = GolfClubTestData.GetRequestClubMembershipCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public void GolfClubAggregate_AddTournamentDivision_DivisionStartHandicapClashesWithExistingRange_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse(); TournamentDivisionDataTransferObject tournamentDivision = GolfClubTestData.GetTournamentDivision1(); aggregate.AddTournamentDivision(tournamentDivision); TournamentDivisionDataTransferObject tournamentDivisionInvalid = new TournamentDivisionDataTransferObject { Division = 2, EndHandicap = 12, StartHandicap = GolfClubTestData.GetTournamentDivision1().StartHandicap }; Should.Throw <InvalidDataException>(() => { aggregate.AddTournamentDivision(tournamentDivisionInvalid); }); }
public void GolfClubCommandHandler_HandleCommand_CreateMatchSecretaryCommand_CommandHandled() { Mock <IAggregateRepository <GolfClubAggregate> > repository = new Mock <IAggregateRepository <GolfClubAggregate> >(); repository.Setup(r => r.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)).ReturnsAsync(GolfClubTestData.GetCreatedGolfClubAggregate); Mock <ISecurityService> oAuth2SecurityService = new Mock <ISecurityService>(); Mock <IGolfClubMembershipApplicationService> golfClubMembershipApplicationService = new Mock <IGolfClubMembershipApplicationService>(); GolfClubCommandHandler handler = new GolfClubCommandHandler(repository.Object, oAuth2SecurityService.Object, golfClubMembershipApplicationService.Object); oAuth2SecurityService .Setup(o => o.RegisterUser(It.IsAny <RegisterUserRequest>(), CancellationToken.None)) .ReturnsAsync(GolfClubTestData.GetRegisterUserResponse()); CreateMatchSecretaryCommand command = GolfClubTestData.GetCreateMatchSecretaryCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public void TournamentCommandHandler_HandleCommand_CreateTournamentCommand_CommandHandled() { Mock <IAggregateRepository <GolfClubAggregate> > golfClubRepository = new Mock <IAggregateRepository <GolfClubAggregate> >(); golfClubRepository.Setup(c => c.GetLatestVersion(It.IsAny <Guid>(), It.IsAny <CancellationToken>())) .ReturnsAsync(GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse()); Mock <IAggregateRepository <TournamentAggregate> > tournamentRepository = new Mock <IAggregateRepository <TournamentAggregate> >(); tournamentRepository.Setup(t => t.GetLatestVersion(It.IsAny <Guid>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TournamentTestData.GetEmptyTournamentAggregate); Mock <ITournamentApplicationService> tournamentApplicationService = new Mock <ITournamentApplicationService>(); TournamentCommandHandler handler = new TournamentCommandHandler(golfClubRepository.Object, tournamentRepository.Object, tournamentApplicationService.Object); CreateTournamentCommand command = TournamentTestData.GetCreateTournamentCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public void PlayerCommandHandler_HandleCommand_RegisterPlayerCommand_CommandHandled() { Mock <IAggregateRepository <PlayerAggregate> > playerRepository = new Mock <IAggregateRepository <PlayerAggregate> >(); playerRepository.Setup(c => c.GetLatestVersion(It.IsAny <Guid>(), It.IsAny <CancellationToken>())) .ReturnsAsync(PlayerTestData.GetEmptyPlayerAggregate()); Mock <ISecurityService> oAuth2SecurityService = new Mock <ISecurityService>(); oAuth2SecurityService .Setup(o => o.RegisterUser(It.IsAny <RegisterUserRequest>(), CancellationToken.None)) .ReturnsAsync(PlayerTestData.GetRegisterUserResponse()); Mock <IAggregateRepository <GolfClubAggregate> > clubRepository = new Mock <IAggregateRepository <GolfClubAggregate> >(); clubRepository.Setup(c => c.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(GolfClubTestData.GetGolfClubAggregateWithMeasuredCourse()); PlayerCommandHandler handler = new PlayerCommandHandler(playerRepository.Object, oAuth2SecurityService.Object, clubRepository.Object); RegisterPlayerCommand command = PlayerTestData.GetRegisterPlayerCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public void GolfClubAggregate_CreateGolfClubAdministratorSecurityUser_AdminSecurityUserAlreadyCreated_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregateWithGolfClubAdministratorUser(); Should.Throw <InvalidOperationException>(() => { aggregate.CreateGolfClubAdministratorSecurityUser(GolfClubTestData.GolfClubAdministratorSecurityUserId); }); }
public void GolfClubAggregate_CreateGolfClubAdministratorSecurityUser_InvalidData_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); Should.Throw <ArgumentNullException>(() => { aggregate.CreateGolfClubAdministratorSecurityUser(Guid.Empty); }); }
public void GolfClubAggregate_CreateMatchSecretarySecurityUser_ClubNotCreated_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetEmptyGolfClubAggregate(); Should.Throw <InvalidOperationException>(() => { aggregate.CreateMatchSecretarySecurityUser(GolfClubTestData.MatchSecretarySecurityUserId); }); }
public void GolfClubAggregate_CreateMatchSecretarySecurityUser_DuplicateSecurityUserId() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregateWithMatchSecretaryUser(); Should.Throw <InvalidOperationException>(() => { aggregate.CreateMatchSecretarySecurityUser(GolfClubTestData.MatchSecretarySecurityUserId); }); }
public void GolfClubAggregate_CreateMatchSecretarySecurityUser_InvalidData_ErrorThrown() { GolfClubAggregate aggregate = GolfClubTestData.GetEmptyGolfClubAggregate(); Should.Throw <ArgumentNullException>(() => { aggregate.CreateMatchSecretarySecurityUser(Guid.Empty); }); }
public void GolfClubAggregate_CreateMatchSecretarySecurityUser_MatchSecretaryUserAdded() { GolfClubAggregate aggregate = GolfClubTestData.GetCreatedGolfClubAggregate(); Should.NotThrow(() => { aggregate.CreateMatchSecretarySecurityUser(GolfClubTestData.MatchSecretarySecurityUserId); }); }