public async Task ShouldCreateRegistration() { var registration = await DateOfBirth.Create(new DateTime(1980, 01, 01), _systemTimeProviderMock.Object) .OnSuccess(dob => Candidate.Create("John", "Smith", dob)) .OnSuccess(candidate => Registration.CreateAsync(new ExternalRegistrationId(), new ExamId(10), new OrderId(10), candidate, _systemTimeProviderMock.Object, _registrationRepositoryMock.Object)); registration.IsSuccess.Should().BeTrue(); }
public static Result <CreateRegistrationCommand> Create(CreateRegistrationRequest request, ISystemTimeProvider systemTimeProvider, IExamExistenceValidator examExistenceValidator) { var candidateResult = DateOfBirth.Create(request.DateOfBirth, systemTimeProvider) .OnSuccess(dateOfBirth => Candidate.Create(request.FirstName, request.LastName, dateOfBirth)); var examResult = ExamId.Create(request.ExamId, examExistenceValidator); var buyerResult = ContactData.Create(request.Buyer?.Name, request.Buyer?.StreetAddress, request.Buyer?.City, request.Buyer?.ZipCode); return(Result.Combine(candidateResult, examResult, buyerResult) .OnSuccess(() => new CreateRegistrationCommand(candidateResult.Value, examResult.Value, buyerResult.Value))); }
public async Task ShouldAddEventOnRegistrationCreation() { var registration = await DateOfBirth.Create(new DateTime(1980, 01, 01), _systemTimeProviderMock.Object) .OnSuccess(dob => Candidate.Create("John", "Smith", dob)) .OnSuccess(candidate => Registration.CreateAsync(new ExternalRegistrationId(), new ExamId(10), new OrderId(10), candidate, _systemTimeProviderMock.Object, _registrationRepositoryMock.Object)); registration.IsSuccess.Should().BeTrue(); registration.Value.HasDomainEvents.Should().BeTrue(); var flushed = registration.Value.FlushDomainEvents(); flushed.Count().Should().Be(1); }
private Result <Candidate> CreateCandidate(BulkUploadCandidate uploadCandidate, BulkUploadCandidateGuardian candidateGuardian) { Contracts.Require(uploadCandidate != null); Contracts.Require(candidateGuardian != null); var uc = uploadCandidate; var fullNameOrError = FullName.Create(uc.FirstName, uc.LastName); var dobOrError = DateOfBirth.Create(uc.DateOfBirth); var candidateNumberOrError = CandidateNumber.CreateOptional(uc.CandidateNumber); var phoneNumberOrError = PhoneNumber.CreateOptional(uc.MobilePhoneNumber); return(Result.Combine(fullNameOrError, dobOrError, candidateNumberOrError, phoneNumberOrError) .OnSuccess(() => Candidate.Create(fullNameOrError.Value, dobOrError.Value, uc.Gender)) .OnSuccess(x => x.SetCandidateNumber(candidateNumberOrError.Value)) .OnSuccess(x => x.SetUciNumber(uc.UCI)) .OnSuccess(x => x.SetPhoneNumber(phoneNumberOrError.Value))); }
public void ShouldCreateCandidateWithExpectedResult(string firstName, string lastName, DateOfBirth dateOfBirth, bool expectedResult) { var candidate = Candidate.Create(firstName, lastName, dateOfBirth); candidate.IsSuccess.Should().Be(expectedResult); }