public void ToComponentColumNameComponentNamePropertyNameTest()
        {
            NamingConventionsConfig config = new NamingConventionsConfig(null);
            NamingEngine namingEngine = new NamingEngine(config);

            var parentProperty = typeof(Customer).GetMember("Address").FirstOrDefault();
            var childProperty = typeof(Address).GetMember("Street").FirstOrDefault();

            // Column Name => Default
            config.UseConventionForColumnNames(ColumnsNamingConvention.Default);
            config.UseConventionForComponentColumnNames(ComponentsColumnsNamingConvention.ComponentNamePropertyName);
            string result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("AddressStreet", result);

            // Column Name => Camel Case
            config.UseConventionForColumnNames(ColumnsNamingConvention.CamelCase);
            result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("addressStreet", result);

            // Column Name => Pascal Case
            config.UseConventionForColumnNames(ColumnsNamingConvention.PascalCase);
            result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("AddressStreet", result);

            // Column Name => Uppercase Underscore Separated
            config.UseConventionForColumnNames(ColumnsNamingConvention.Uppercase);
            result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("ADDRESS_STREET", result);

            // Column Name => Lowercase Underscore Separated
            config.UseConventionForColumnNames(ColumnsNamingConvention.Lowercase);
            result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("address_street", result);

            // Column Name => Custom
            config.UseCustomConventionForComponentColumnNames((c, p) =>
            {
                Assert.AreEqual(childProperty, p);
                Assert.AreEqual(typeof(Address), c);

                return "CustomColumnName";
            });
            result = namingEngine.ToComponentColumnName(childProperty, parentProperty);
            Assert.AreEqual("CustomColumnName", result);
        }