public void ToForeignKeyNameEntityNameIdNameTest() { NamingConventionsConfig config = new NamingConventionsConfig(null); NamingEngine namingEngine = new NamingEngine(config); config.UseConventionForPrimaryKeyColumnNames(PrimaryKeyColumnNamingConvention.EntityName_IdPropertyName); config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.PropertyNameIdPropertyName); config.UseConventionForConstraintNames(ConstraintNamingConvention.Lowercase); // Foreign Key Name => Default config.UseConventionForForeignKeyNames(ForeignKeyNamingConvention.Default); string result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.IsTrue(string.IsNullOrEmpty(result)); // Foreign Key Name => FK_FKTable_PKTable config.UseConventionForForeignKeyNames(ForeignKeyNamingConvention.FK_FKTable_PKTable); result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.AreEqual("fk__city__state", result); // Foreign Key Name => FK_FKTable_PKTable_PKColumn config.UseConventionForForeignKeyNames(ForeignKeyNamingConvention.FK_FKTable_PKTable_FKColumn); result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.AreEqual("fk__city__state__state_id", result); // Foreign Key Name => FKTable_PKTable_FK config.UseConventionForForeignKeyNames(ForeignKeyNamingConvention.FKTable_PKTable_FK); result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.AreEqual("city__state__fk", result); // Foreign Key Name => FKTable_PKTable_PKColumn_FK config.UseConventionForForeignKeyNames(ForeignKeyNamingConvention.FKTable_PKTable_FKColumn_FK); result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.AreEqual("city__state__state_id__fk", result); // Foreign Key Name => Custom config.UseCustomConventionForForeignKeyNames((s, t, f, i) => { Assert.AreEqual(typeof(City), s); Assert.AreEqual(typeof(State), t); Assert.AreEqual(typeof(City).GetMember("State").Single(), f); Assert.AreEqual(typeof(State).GetMember("ID").Single(), i); return "CustomForeignKeyName"; }); result = namingEngine.ToForeignKeyName(typeof(City), typeof(State), typeof(City).GetMember("State").Single(), typeof(State).GetMember("ID").Single()); Assert.AreEqual("CustomForeignKeyName", result); }
public void ToManyToManyForeignKeyColumnNameTest() { NamingConventionsConfig config = new NamingConventionsConfig(null); NamingEngine namingEngine = new NamingEngine(config); // Column Name => Default config.UseConventionForColumnNames(ColumnsNamingConvention.Uppercase); config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.Default); string result = namingEngine.ToManyToManyForeignKeyColumnName(typeof(Product), typeof(Product).GetMember("ID").Single()); Assert.AreEqual("PRODUCT_KEY", result); // Column Name => Target EntityName config.UseConventionForColumnNames(ColumnsNamingConvention.PascalCase); config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.Default); result = namingEngine.ToManyToManyForeignKeyColumnName(typeof(Product), typeof(Product).GetMember("ID").Single()); Assert.AreEqual("Product_Key", result); // Column Name => Target EntityName & IdPropertyName config.UseConventionForColumnNames(ColumnsNamingConvention.Lowercase); config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.PropertyName_IdPropertyName); result = namingEngine.ToManyToManyForeignKeyColumnName(typeof(Product), typeof(Product).GetMember("ID").Single()); Assert.AreEqual("product_id", result); // Column Name => Target & IdPropertyName config.UseConventionForColumnNames(ColumnsNamingConvention.Uppercase); config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.PropertyNameIdPropertyName); result = namingEngine.ToManyToManyForeignKeyColumnName(typeof(Product), typeof(Product).GetMember("ID").Single()); Assert.AreEqual("PRODUCT_ID", result); // Column Name => Custom config.UseCustomConventionForForeignKeyColumnNames((e, i) => { Assert.AreEqual(typeof(Product), e); Assert.AreEqual(typeof(Product).GetMember("ID").Single(), i); return "CustomForeignKeyColumnName"; }); result = namingEngine.ToForeignKeyColumnName(typeof(Product), typeof(Product).GetMember("ID").Single()); Assert.AreEqual("CustomForeignKeyColumnName", result); }
public void ToForeignKeyColumnNameNoCustomMethodTest() { NamingConventionsConfig config = new NamingConventionsConfig(null); NamingEngine namingEngine = new NamingEngine(config); // Component Table Name => Custom convention config.UseConventionForForeignKeyColumnNames(ForeignKeyColumnNamingConvention.Custom); string result = namingEngine.ToForeignKeyColumnName(typeof(Customer), typeof(ProductsOrder).GetMember("ID").Single()); }