using Shouldly; using Xunit; namespace Volo.CmsKit.Blogs; public class SlugExtensions_Tests { [Fact] public void NormalizeSlug_ShouldWorkProperly() { // Arrange var name = "My awesome name"; var expected = "my-awesome-name"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithDot() { // Arrange var name = "My Perfect Title v.2"; var expected = "my-perfect-title-v.2"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithQuestionMark() { // Arrange var name = "Are you gonna die?"; var expected = "are-you-gonna-die"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithAmpersand() { // Arrange var name = "We & Machines Challenge"; var expected = "we-machines-challenge"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithDoubleDash() { // Arrange var name = "Go and Code --part 2"; var expected = "go-and-code-part-2"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithCyrillicChars() { // Arrange var name = "Мое классное название"; var expected = "moe-klassnoe-nazvanie"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithTurkishChars() { // Arrange var name = "Özel Türkçe karakterler: ğüşiöç"; var expected = "ozel-turkce-karakterler-gusioc"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithChineseChars() { // Arrange var name = "我的真棒头衔"; var expected = "wo-de-zhen-bang-tou-xian"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } [Fact] public void NormalizeSlug_ShouldWorkProperly_WithEmoji() { // Arrange var name = "Let's Rock 👊"; var expected = "lets-rock"; // Act var actual = SlugNormalizer.Normalize(name); // Assert actual.ShouldBe(expected); } }