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")); }