Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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("*****@*****.**"));
        }
Esempio n. 4
0
        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");
        }