StringHelperTests.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using FsCheck;
  3. using FsCheck.Xunit;
  4. using MediaBrowser.Model.Extensions;
  5. using Xunit;
  6. namespace Jellyfin.Model.Tests.Extensions
  7. {
  8. public class StringHelperTests
  9. {
  10. [Theory]
  11. [InlineData("", "")]
  12. [InlineData("banana", "Banana")]
  13. [InlineData("Banana", "Banana")]
  14. [InlineData("ä", "Ä")]
  15. [InlineData("\027", "\027")]
  16. public void StringHelper_ValidArgs_Success(string input, string expectedResult)
  17. {
  18. Assert.Equal(expectedResult, StringHelper.FirstToUpper(input));
  19. }
  20. [Property]
  21. public Property FirstToUpper_RandomArg_Correct(NonEmptyString input)
  22. {
  23. var result = StringHelper.FirstToUpper(input.Item);
  24. // We check IsLower instead of IsUpper because both return false for non-letters
  25. return (!char.IsLower(result[0])).Label("First char is uppercase")
  26. .And(input.Item.Length == 1 || result[1..].Equals(input.Item[1..], StringComparison.Ordinal)).Label("Remaining chars are unmodified");
  27. }
  28. }
  29. }