Files

39 lines
1.0 KiB
C#

using ItWorx.KnowledgeHub.Domain.Identity;
namespace ItWorx.KnowledgeHub.Domain.Tests;
public sealed class WorkspaceNameTests
{
[Fact]
public void Create_trims_and_normalizes_the_name()
{
var name = WorkspaceName.Create(" ItWorx Kennisbank ");
Assert.Equal("ItWorx Kennisbank", name.Value);
}
[Theory]
[InlineData("ItWorx Kennisbank", "itworx-kennisbank")]
[InlineData("École & Café", "ecole-cafe")]
public void Create_derives_a_url_safe_slug(string input, string expectedSlug)
{
var name = WorkspaceName.Create(input);
Assert.Equal(expectedSlug, name.Slug);
}
[Fact]
public void Create_rejects_an_empty_name()
{
Assert.Throws<ArgumentException>(() => WorkspaceName.Create(" "));
}
[Fact]
public void Create_rejects_a_name_above_the_limit()
{
var tooLong = new string('a', WorkspaceName.MaximumLength + 1);
Assert.Throws<ArgumentOutOfRangeException>(() => WorkspaceName.Create(tooLong));
}
}