public async Task <CreateCustomerCommandResponse> Handle(CreateCustomerCommand request, CancellationToken cancellationToken) { var response = new CreateCustomerCommandResponse(); var validator = new CreateCustomerCommandValidator(); var result = await validator.ValidateAsync(request); if (result.Errors.Count > 0) { response.Success = false; response.ValidationErrors = new List <string>(); foreach (var error in result.Errors) { response.ValidationErrors.Add(error.ErrorMessage); } } if (result.Errors.Count > 0) { throw new ValidationException(result); } if (response.Success) { var customer = _mapper.Map <Customer>(request); customer = await _customerRepository.AddAsync(customer); response.Customer = _mapper.Map <CreateCustomerViewModel>(customer); } return(response); }
public CreateCustomerHandlerTest(QueryTestFixture fixture) { _unitOfWork = fixture.UnitOfWork; _bus = fixture.Bus; _notifications = fixture.Notifications; _validator = new CreateCustomerCommandValidator(); }
public void CreateCustomerCommand_EmptyFirstName_ReturnError() { var command = new CreateCustomerCommand() { FirstName = string.Empty, LastName = "Kent", Dob = new DateTime(1990, 1, 2) }; var validator = new CreateCustomerCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.FirstName, command); }
public void FailsIfEmailInvalid(string email, bool expectedValid) { var command = new CreateCustomerCommand { FirstName = "Herbert", LastName = "Scrackle", EmailAddress = email }; var sut = new CreateCustomerCommandValidator(); var result = sut.Validate(command); result.IsValid.Should().Be(expectedValid); }
public void FailsIfLastNameNotProvided(string lastName, bool expectedValid) { var command = new CreateCustomerCommand { FirstName = "Herbert", LastName = lastName, EmailAddress = "*****@*****.**" }; var sut = new CreateCustomerCommandValidator(); var result = sut.Validate(command); result.IsValid.Should().Be(expectedValid); }
public async Task ValidateAsync_InvalidCommand_ValidationResultIsNotValid() { // Arrange var validator = new CreateCustomerCommandValidator(); var command = new CreateCustomerCommand { Name = "John Doe" }; // Act var result = await validator.ValidateAsync(command); // Assert result.Should().NotBeNull(); result.IsValid.Should().BeFalse(); result.Errors.Should().NotBeEmpty(); }
public void ItShouldCreateIfNewCustomer() { Customer customer = null; var readStore = new Mock <ICustomerRepository>(); readStore.Setup(_ => _.GetCustomerById(It.IsAny <int>())).ReturnsAsync(customer); var sut = new CreateCustomerCommandValidator(readStore.Object); var result = sut.Validate(new CreateCustomerCommand { Id = 1, FirstName = "first", LastName = "last", }); result.IsValid.ShouldBe(true); }
public async Task ValidateAsync_ValidCommand_ValidationResultIsValid() { // Arrange var validator = new CreateCustomerCommandValidator(); var command = new CreateCustomerCommand { Name = "John Doe", Age = 30, PhoneNumber = 123456789, Website = "https://www.example.com" }; // Act var result = await validator.ValidateAsync(command); // Assert result.Should().NotBeNull(); result.IsValid.Should().BeTrue(); result.Errors.Should().BeEmpty(); }
public void ItShouldNotCreateIfExists() { var customer = new Customer { CustomerId = 1 }; var readStore = new Mock <ICustomerRepository>(); readStore.Setup(_ => _.GetCustomerById(It.IsAny <int>())).ReturnsAsync(customer); var sut = new CreateCustomerCommandValidator(readStore.Object); var result = sut.Validate(new CreateCustomerCommand { Id = 1, FirstName = "first", LastName = "last", }); result.IsValid.ShouldBe(false); result.Errors[0].ErrorMessage.ShouldBe("Customer already exists"); }
/// <summary> /// Returns true if ... is valid. /// </summary> /// <returns><c>true</c> if this instance is valid; otherwise, <c>false</c>.</returns> public override bool IsValid() { ValidationResult = new CreateCustomerCommandValidator().Validate(this); return(ValidationResult.IsValid); }
public void TestInitialize() { _validator = new CreateCustomerCommandValidator(); }