public void GolfClubMembershipAggregate_RequestMembership_PlayerToYoung_RequestRejected() { GolfClubMembershipAggregate aggregate = GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate(); // Get the lowest valid age DateTime dateOfBirth = DateTime.Now.AddYears(-13); // Now add a day to make it invalid dateOfBirth = dateOfBirth.AddDays(1); aggregate.RequestMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.PlayerFullName, dateOfBirth, GolfClubMembershipTestData.PlayerGender, GolfClubMembershipTestData.RequestDateAndTime); MembershipDataTransferObject membership = aggregate.GetMembership(GolfClubMembershipTestData.PlayerId, dateOfBirth, GolfClubMembershipTestData.PlayerGender); membership.MembershipId.ShouldNotBe(Guid.Empty); membership.PlayerId.ShouldBe(GolfClubMembershipTestData.PlayerId); membership.PlayerFullName.ShouldBe(GolfClubMembershipTestData.PlayerFullName); membership.PlayerDateOfBirth.ShouldBe(dateOfBirth); membership.PlayerGender.ShouldBe(GolfClubMembershipTestData.PlayerGender); membership.RejectedDateAndTime.ShouldBe(GolfClubMembershipTestData.RequestDateAndTime); membership.AcceptedDateAndTime.ShouldBe(DateTime.MinValue); membership.RejectionReason.ShouldBe($"Player Id {GolfClubMembershipTestData.PlayerId} is too young."); membership.Status.ShouldBe(2); }
public void GolfClubMembershipAggregate_GetMemberships_NoMemberships_ErrorThrown() { GolfClubMembershipAggregate aggregate = GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate(); Should.Throw <NotFoundException>(() => { aggregate.GetMemberships(); }); }
public void GolfClubMembershipAggregate_GetMembership_NoMemberships_ErrorThrown() { GolfClubMembershipAggregate aggregate = GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate(); Should.Throw <NotFoundException>(() => { aggregate.GetMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.PlayerDateOfBirth, GolfClubMembershipTestData.PlayerGender); }); }
public void GolfClubMembershipAggregate_RequestMembership_InvalidData_ErrorThrown(Boolean validPlayerId, String playerFullName, Boolean validDateOfBirth, String playerGender, Type exceptionType) { Guid playerId = validPlayerId ? GolfClubMembershipTestData.PlayerId : Guid.Empty; DateTime dateOfBirth = validDateOfBirth ? GolfClubMembershipTestData.PlayerDateOfBirth : DateTime.MinValue; GolfClubMembershipAggregate aggregate = GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate(); Should.Throw(() => { aggregate.RequestMembership(playerId, playerFullName, dateOfBirth, playerGender, GolfClubMembershipTestData.RequestDateAndTime); }, exceptionType); }
public void GolfClubMembershipAggregate_RequestMembership_MembershipRequested() { GolfClubMembershipAggregate aggregate = GolfClubMembershipTestData.GetCreatedGolfClubMembershipAggregate(); aggregate.RequestMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.PlayerFullName, GolfClubMembershipTestData.PlayerDateOfBirth, GolfClubMembershipTestData.PlayerGender, GolfClubMembershipTestData.RequestDateAndTime); MembershipDataTransferObject membership = aggregate.GetMembership(GolfClubMembershipTestData.PlayerId, GolfClubMembershipTestData.PlayerDateOfBirth, GolfClubMembershipTestData.PlayerGender); membership.MembershipId.ShouldNotBe(Guid.Empty); membership.PlayerId.ShouldBe(GolfClubMembershipTestData.PlayerId); membership.PlayerFullName.ShouldBe(GolfClubMembershipTestData.PlayerFullName); membership.PlayerDateOfBirth.ShouldBe(GolfClubMembershipTestData.PlayerDateOfBirth); membership.PlayerGender.ShouldBe(GolfClubMembershipTestData.PlayerGender); membership.AcceptedDateAndTime.ShouldBe(GolfClubMembershipTestData.RequestDateAndTime); membership.AcceptedDateAndTime.ShouldNotBe(DateTime.MinValue); membership.MembershipNumber.ShouldBe("000001"); membership.Status.ShouldBe(1); }
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 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); }