Ejemplo n.º 1
0
        private string ApplyCasing(
            string propertyName,
            CasingType casing)
        {
            switch (casing)
            {
            case CasingType.Original:
                return(propertyName);

            case CasingType.CamelCase:
            {
                var parts = PropertyNameSplitter.Split(propertyName);
                return(string.Join("", parts.Select((part, idx) => idx == 0 ? part : FirstLetterUppercase(part))));
            }

            case CasingType.PascalCase:
            {
                var parts = PropertyNameSplitter.Split(propertyName);
                return(string.Join("", parts.Select(FirstLetterUppercase)));
            }

            case CasingType.Custom:
                return(settings.CustomPropertyNamingFunc(propertyName));

            default:
                throw new ArgumentOutOfRangeException(nameof(casing), casing, null);
            }
        }
        public void CanSplitUnderscoreSeparated()
        {
            var input  = "My_Cool_variable";
            var actual = PropertyNameSplitter.Split(input);

            Assert.That(actual.Count, Is.EqualTo(3));
            Assert.That(actual[0], Is.EqualTo("my"));
            Assert.That(actual[1], Is.EqualTo("cool"));
            Assert.That(actual[2], Is.EqualTo("variable"));
        }
        public void CanSplitMixedUnderscoreCamelCase()
        {
            var input  = "__myCool_Variable";
            var actual = PropertyNameSplitter.Split(input);

            Assert.That(actual.Count, Is.EqualTo(3));
            Assert.That(actual[0], Is.EqualTo("my"));
            Assert.That(actual[1], Is.EqualTo("cool"));
            Assert.That(actual[2], Is.EqualTo("variable"));
        }