public void Empty_string_or_null_or_invalid_becomes_error(string input) { // Act var result = EmailAddress.CreateInternalValidation(input); // Assert result.Should().BeOfType <Option <EmailAddress> >(); result.Match( () => true.Should().BeTrue(), x => x.Should().BeNull()); }
public void Email_extension_handles_input_as_expected(string input, string other, bool shouldPass) { var result = EmailAddress.CreateInternalValidation(input); if (shouldPass) { result.Should().BeEqualToEmailString(other); } else { result.Should().NotBeEqualToEmailString(other); } }
public void Valid_email_has_correct_value() { // Arrange var validEmail = "*****@*****.**"; // Act var result = EmailAddress.CreateInternalValidation(validEmail); // Assert result.Match( () => true.Should().BeFalse(), x => x.Value.Should().Be("*****@*****.**")); }
public void Chain_of_validations_returns_after_first_error() { var optMail1 = EmailAddress.CreateInternalValidation("*****@*****.**"); var result = optMail1 .ToValidation("ups1") .Bind(mail => mail.Value.StartsWith("x") ? F.Valid(mail) : F.Invalid("does not start with x")) .Bind(mail => mail.Value.Contains("homer") ? F.Valid(mail) : F.Invalid("does not contain homer")) .Match( e => e.Aggregate((a, b) => $"{a},{b}"), x => x.Value ); result.Message.Should().Be("does not start with x"); }