34 lines
875 B
C#
34 lines
875 B
C#
using ItWorx.KnowledgeHub.Domain.Identity;
|
|
|
|
namespace ItWorx.KnowledgeHub.Domain.Tests;
|
|
|
|
public sealed class EmailAddressTests
|
|
{
|
|
[Fact]
|
|
public void Create_normalizes_case_and_whitespace()
|
|
{
|
|
var email = EmailAddress.Create(" Owner@ItWorx.Example ");
|
|
|
|
Assert.Equal("owner@itworx.example", email.Value);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("")]
|
|
[InlineData("not-an-email")]
|
|
[InlineData("missing-domain@")]
|
|
[InlineData("@missing-local.example")]
|
|
public void Create_rejects_invalid_shapes(string value)
|
|
{
|
|
Assert.Throws<ArgumentException>(() => EmailAddress.Create(value));
|
|
}
|
|
|
|
[Fact]
|
|
public void TryCreate_returns_false_instead_of_throwing()
|
|
{
|
|
var succeeded = EmailAddress.TryCreate("not-an-email", out var emailAddress);
|
|
|
|
Assert.False(succeeded);
|
|
Assert.Null(emailAddress);
|
|
}
|
|
}
|