diff --git a/src/Squidex.Infrastructure/StringExtensions.cs b/src/Squidex.Infrastructure/StringExtensions.cs index 2cd609a2b..1cda44f3d 100644 --- a/src/Squidex.Infrastructure/StringExtensions.cs +++ b/src/Squidex.Infrastructure/StringExtensions.cs @@ -510,11 +510,6 @@ namespace Squidex.Infrastructure public static string Slugify(this string value, ISet preserveHash = null, bool singleCharDiactric = false, char separator = '-') { - if (value == null) - { - return null; - } - var result = new StringBuilder(value.Length); var lastChar = (char)0; @@ -586,24 +581,7 @@ namespace Squidex.Infrastructure return string.Empty; } - var sb = new StringBuilder(); - - for (var i = 0; i < parts.Length; i++) - { - var part = parts[i]; - - if (!string.IsNullOrWhiteSpace(part)) - { - sb.Append(part); - - if (i < parts.Length - 1) - { - sb.Append(separator); - } - } - } - - return sb.ToString(); + return string.Join(separator, parts.Where(x => !string.IsNullOrWhiteSpace(x))); } } } diff --git a/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs b/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs index 6a923a5f1..1edacf141 100644 --- a/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs +++ b/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs @@ -153,5 +153,37 @@ namespace Squidex.Infrastructure Assert.Equal(output, result); } + + [Fact] + public void Should_join_non_empty_when_all_are_valid() + { + var result = StringExtensions.JoinNonEmpty("_", "1", "2", "3"); + + Assert.Equal("1_2_3", result); + } + + [Fact] + public void Should_join_non_empty_when_first_invalid() + { + var result = StringExtensions.JoinNonEmpty("_", null, "2", "3"); + + Assert.Equal("2_3", result); + } + + [Fact] + public void Should_join_non_empty_when_middle_invalid() + { + var result = StringExtensions.JoinNonEmpty("_", "1", null, "3"); + + Assert.Equal("1_3", result); + } + + [Fact] + public void Should_join_non_empty_when_last_invalid() + { + var result = StringExtensions.JoinNonEmpty("_", "1", "2", null); + + Assert.Equal("1_2", result); + } } }