Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/CmsHelperCasingTests.cs
yv01p e8f1ad62d5 refactor(strings): update DefaultShortStringHelper to use IUtf8ToAsciiConverter via DI
- Add IUtf8ToAsciiConverter as constructor parameter to DefaultShortStringHelper
- Register ICharacterMappingLoader and IUtf8ToAsciiConverter as singletons in DI
- Add internal Instance property to Utf8ToAsciiConverterStatic for test compatibility
- Update 12 test files to pass converter instance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-13 01:55:26 +00:00

45 lines
1.7 KiB
C#

// Copyright (c) Umbraco.
// See LICENSE for more details.
using Microsoft.Extensions.Options;
using NUnit.Framework;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Strings;
using Umbraco.Extensions;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.ShortStringHelper;
[TestFixture]
public class CmsHelperCasingTests
{
private static readonly IUtf8ToAsciiConverter AsciiConverter = Utf8ToAsciiConverterStatic.Instance;
private IShortStringHelper ShortStringHelper =>
new DefaultShortStringHelper(Options.Create(new RequestHandlerSettings()), AsciiConverter);
[TestCase("thisIsTheEnd", "This Is The End")]
[TestCase("th", "Th")]
[TestCase("t", "t")]
[TestCase("thisis", "Thisis")]
[TestCase("ThisIsTheEnd", "This Is The End")]
//// [TestCase("WhoIsNumber6InTheVillage", "Who Is Number6In The Village")] // note the issue with Number6In
[TestCase("WhoIsNumber6InTheVillage", "Who Is Number6 In The Village")] // now fixed since DefaultShortStringHelper is the default
public void SpaceCamelCasing(string input, string expected)
{
var output = input.SpaceCamelCasing(ShortStringHelper);
Assert.AreEqual(expected, output);
}
[TestCase("thisIsTheEnd", "This Is The End")]
[TestCase("th", "Th")]
[TestCase("t", "t")]
[TestCase("thisis", "Thisis")]
[TestCase("ThisIsTheEnd", "This Is The End")]
[TestCase("WhoIsNumber6InTheVillage", "Who Is Number6 In The Village")] // issue is fixed
public void CompatibleDefaultReplacement(string input, string expected)
{
var output = input.Length < 2 ? input : ShortStringHelper.SplitPascalCasing(input, ' ').ToFirstUpperInvariant();
Assert.AreEqual(expected, output);
}
}