39 lines
1.0 KiB
C#
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));
|
|
}
|
|
}
|