| 1234567891011121314151617181920212223242526272829303132 | using System;using FsCheck;using FsCheck.Xunit;using MediaBrowser.Model.Extensions;using Xunit;namespace Jellyfin.Model.Tests.Extensions{    public class StringHelperTests    {        [Theory]        [InlineData("", "")]        [InlineData("banana", "Banana")]        [InlineData("Banana", "Banana")]        [InlineData("ä", "Ä")]        [InlineData("\027", "\027")]        public void StringHelper_ValidArgs_Success(string input, string expectedResult)        {            Assert.Equal(expectedResult, StringHelper.FirstToUpper(input));        }        [Property]        public Property FirstToUpper_RandomArg_Correct(NonEmptyString input)        {            var result = StringHelper.FirstToUpper(input.Item);            // We check IsLower instead of IsUpper because both return false for non-letters            return (!char.IsLower(result[0])).Label("First char is uppercase")                .And(input.Item.Length == 1 || result[1..].Equals(input.Item[1..], StringComparison.Ordinal)).Label("Remaining chars are unmodified");        }    }}
 |