Beispiel #1
0
        private static void AddProperty(StructuralTypeConfiguration config, string propertyName)
        {
            var propertyInfo = config.ClrType.GetProperty(propertyName);
            var property     = config.AddProperty(propertyInfo);

            var attribute = propertyInfo.GetCustomAttribute <DataMemberAttribute>(inherit: false);

            if (attribute != null && !String.IsNullOrWhiteSpace(attribute.Name))
            {
                property.Name = attribute.Name;
            }
            else
            {
                var caser = new LowerCamelCaser();
                property.Name = caser.ToLowerCamelCase(propertyInfo.Name);
            }
        }
Beispiel #2
0
        public void ToLowerCamelCase_LowerCamelCaser_HasSameBehaviorAsJsonNet(string propertyName, string expectName)
        {
            // Arrange
            var lowerCamelCaser = new LowerCamelCaser();
            var camelCasePropertyNamesContractResolver = new CamelCasePropertyNamesContractResolver();

            // Act
            string nameResolvedByLowerCamelCaser = lowerCamelCaser.ToLowerCamelCase(propertyName);
            string nameResolveByJsonNet          = camelCasePropertyNamesContractResolver.GetResolvedPropertyName(propertyName);

            // Newtonsoft appears to have changed from v6 to v10 here. Some cases that used to pass
            // and were changed are:
            // [InlineData("MyPI", "mypi")] => [InlineData("MyPI", "myPI")]
            // [InlineData("U_ID", "u_id")] => [InlineData("U_ID", "u_ID")]
            //Assert.Equal(nameResolveByJsonNet, nameResolvedByLowerCamelCaser);

            // Assert
            Assert.Equal(expectName, nameResolvedByLowerCamelCaser);
        }