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

            // Table Name => Default
            config.UseConventionForTableNames(TablesNamingConvention.Default);
            string result = namingEngine.ToTableName(typeof(OrderItem));
            Assert.AreEqual("OrderItem", result);

            // Table Name => Camel Case
            config.UseConventionForTableNames(TablesNamingConvention.CamelCase);
            result = namingEngine.ToTableName(typeof(OrderItem));
            Assert.AreEqual("orderItem", result);

            // Table Name => Pascal Case
            config.UseConventionForTableNames(TablesNamingConvention.PascalCase);
            result = namingEngine.ToTableName(typeof(OrderItem));
            Assert.AreEqual("OrderItem", result);

            // Table Name => Lowercase Underscore Separated
            config.UseConventionForTableNames(TablesNamingConvention.Lowercase);
            result = namingEngine.ToTableName(typeof(OrderItem));
            Assert.AreEqual("order_item", result);

            // Table Name => Uppercase Underscore Separated
            config.UseConventionForTableNames(TablesNamingConvention.Uppercase);
            result = namingEngine.ToTableName(typeof(OrderItem));
            Assert.AreEqual("ORDER_ITEM", result);

            // Table Name => Custom
            config.UseCustomConventionForTableNames(t =>
            {
                Assert.AreEqual(typeof(Customer), t);

                return "CustomTableName";
            });
            result = namingEngine.ToTableName(typeof(Customer));
            Assert.AreEqual("CustomTableName", result);
        }