public void ToComponentTableNameTest() { NamingConventionsConfig config = new NamingConventionsConfig(null); NamingEngine namingEngine = new NamingEngine(config); // Component Table Name => ComponentName config.UseConventionForTableNames(TablesNamingConvention.CamelCase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.ComponentName); string result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("orderItem", result); // Component Table Name => EntityName & ComponentName config.UseConventionForTableNames(TablesNamingConvention.PascalCase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.EntityName_ComponentName); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("ProductsOrder_OrderItem", result); // Component Table Name => EntityName & Relationship Name config.UseConventionForTableNames(TablesNamingConvention.Lowercase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.EntityName_RelationshipName); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("products_order_items", result); // Component Table Name => EntityName & Relationship Name config.UseConventionForTableNames(TablesNamingConvention.CamelCase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.EntityNameComponentName); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("productsOrderOrderItem", result); // Component Table Name => EntityName & Relationship Name config.UseConventionForTableNames(TablesNamingConvention.Uppercase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.EntityNameRelationshipName); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("PRODUCTS_ORDER_ITEMS", result); // Component Table Name => EntityName & Relationship Name config.UseConventionForTableNames(TablesNamingConvention.CamelCase); config.UseConventionForComponentTableNames(ComponentsTableNamingConvention.RelationshipName); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("items", result); // Component Table Name => EntityName & Relationship Name config.UseConventionForTableNames(TablesNamingConvention.CamelCase); config.UseCustomConventionForComponentTableNames((e, c, p) => { Assert.AreEqual(typeof(ProductsOrder), e); Assert.AreEqual(typeof(OrderItem), c); Assert.AreEqual(typeof(ProductsOrder).GetMember("Items").Single(), p); return "CustomComponentTableName"; }); result = namingEngine.ToComponentTableName(typeof(ProductsOrder), typeof(OrderItem), typeof(ProductsOrder).GetMember("Items").Single()); Assert.AreEqual("CustomComponentTableName", result); }