public void SetupSqlServer( string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { SetupDatabase(connectionStringName, dbContextName, templateType, generatorType, foreignKeyNamingStrategy); Settings.ConnectionString = $"Data Source=(local);Initial Catalog={database};Integrated Security=True;Application Name=Generator"; Settings.DatabaseType = DatabaseType.SqlServer; }
//[TestCase(ForeignKeyNamingStrategy.LatestMyDbContext public void ReverseEngineerPostgreSQL(ForeignKeyNamingStrategy foreignKeyNamingStrategy, string filename, string database) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = false; SetupPostgreSQL(database, "MyDbContext", "MyDbContext", TemplateType.EfCore3, GeneratorType.EfCore, foreignKeyNamingStrategy); // Act Run(filename, ".PostgreSQL", typeof(EfCoreFileManager), null); // Assert CompareAgainstTestComparison(filename); }
//[TestCase(ForeignKeyNamingStrategy.Latest)] public void ReverseEngineerPostgreSQL(ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = false; SetupPostgreSQL("Northwind", "MyDbContext", "MyDbContext", TemplateType.EfCore3, GeneratorType.EfCore, foreignKeyNamingStrategy); // Act var filename = "Northwind"; Run(filename, ".PostgreSQL", typeof(CustomFileManager), null); // Assert CompareAgainstTestComparison(filename, true); }
//[TestCase(ForeignKeyNamingStrategy.Latest)] public void ReverseEngineerSqlCe(ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = true; SetupSqlCe("NorthwindSqlCe40.sdf", "MyDbContext", "MyDbContext", TemplateType.Ef6, GeneratorType.Ef6, foreignKeyNamingStrategy); // Act var filename = "Northwind"; Run(filename, ".SqlCE", typeof(NullFileManager), null); // Assert CompareAgainstTestComparison(filename); }
protected static void SetupDatabase( string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; ResetFilters(); }
public void ReverseEngineer(bool separateFiles, TemplateType templateType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = separateFiles; Settings.UseMappingTables = false; SetSettings(NorthwindSqlCeSdfFile, "MyDbContext", "MyDbContext", templateType, GeneratorType.EfCore, foreignKeyNamingStrategy); // Act var filename = "Northwind"; var subFolder = $@"{templateType}NorthwindSqlCe40"; Run(filename, ".SqlCE", typeof(CustomFileManager), subFolder); // Assert if (separateFiles) { CompareAgainstFolderTestComparison(subFolder); } else { CompareAgainstTestComparison(filename); } }
public void SetupPostgreSQL(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = $"Server=127.0.0.1;Port=5432;Database={database};User Id=testuser;Password=testtesttest;"; Settings.DatabaseType = DatabaseType.PostgreSQL; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
public void SetupSqlCe(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = @"Data Source=C:\S\Source (open source)\EntityFramework Reverse POCO Code Generator\EntityFramework.Reverse.POCO.Generator\App_Data\" + database; Settings.DatabaseType = DatabaseType.SqlCe; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
[TestCase("fred", ".V3FilterTest1", "fred", "FredDbContext", false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Legacy)] // ef core 3 //[TestCase("fred", ".V3FilterTest1", "fred", "FredDbContext", false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] // ef core 3 public void MultipleIncludeFilters(string database, string singleDbContextSubNamespace, string connectionStringName, string dbContextName, bool publicTestComparison, TemplateType templateType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = (templateType != TemplateType.EfCore2 && templateType != TemplateType.EfCore3); SetupSqlServer(database, connectionStringName, dbContextName, templateType, templateType == TemplateType.Ef6 ? GeneratorType.Ef6 : GeneratorType.EfCore, foreignKeyNamingStrategy); Settings.AddUnitTestingDbContext = false; FilterSettings.SchemaFilters.Add(new RegexIncludeFilter("dbo.*")); FilterSettings.SchemaFilters.Add(new RegexIncludeFilter("Beta.*")); FilterSettings.TableFilters.Add(new RegexIncludeFilter("^[Cc]ar.*")); FilterSettings.TableFilters.Add(new RegexIncludeFilter("Rebel.*")); FilterSettings.TableFilters.Add(new RegexIncludeFilter("Harish.*")); // Act var filename = database + "IncludeFilter"; Run(filename, singleDbContextSubNamespace, typeof(NullFileManager), null); // Assert CompareAgainstTestComparison(filename, publicTestComparison); }
public void SetupSqlServer(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = $"Data Source=(local);Initial Catalog={database};Integrated Security=True;Application Name=Generator"; Settings.DatabaseType = DatabaseType.SqlServer; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
// Latest //[TestCase(false, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase(false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] //[TestCase(true, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase(true, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] public void ReverseEngineerSqlCe_EfCore(bool separateFiles, TemplateType templateType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = separateFiles; Settings.UseMappingTables = false; SetupSqlCe("NorthwindSqlCe40.sdf", "MyDbContext", "MyDbContext", templateType, GeneratorType.EfCore, foreignKeyNamingStrategy); // Act var filename = "Northwind"; var subFolder = templateType == TemplateType.EfCore2 ? "TestComparison\\EfCore2NorthwindSqlCe40" : "TestComparison\\EfCore3NorthwindSqlCe40"; Run(filename, ".SqlCE", typeof(EfCoreFileManager), subFolder); // Assert if (separateFiles) { CompareAgainstFolderTestComparison(subFolder); } else { CompareAgainstTestComparison(filename); } }
public void SetSettings(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { connectionStringName ??= "Default"; Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = ConfigurationExtensions.GetConnectionString(connectionStringName, database); Settings.DatabaseType = DatabaseType.SqlServer; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
public void SetSettings(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { var factory = DbProviderFactories.GetFactory("Npgsql"); Assert.IsNotNull(factory); var builder = new DbConnectionStringBuilder { ["Server"] = "localhost", ["Port"] = "5432", ["Database"] = database.ToLower(), ["User Id"] = "testuser", ["Password"] = "******" }; Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = builder.ConnectionString; Settings.DatabaseType = DatabaseType.PostgreSQL; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
public void SetSettings(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { var fi = new FileInfo(database); var builder = new DbConnectionStringBuilder { ["Data Source"] = fi.FullName }; Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; Settings.TemplateType = templateType; Settings.GeneratorType = generatorType; Settings.ConnectionString = builder.ConnectionString; Settings.DatabaseType = DatabaseType.SqlCe; Settings.ConnectionStringName = connectionStringName; Settings.DbContextName = dbContextName; Settings.GenerateSingleDbContext = true; Settings.MultiContextSettingsPlugin = null; Settings.Enumerations = null; Settings.PrependSchemaName = true; Settings.DisableGeographyTypes = false; Settings.AddUnitTestingDbContext = true; FilterSettings.Reset(); FilterSettings.AddDefaults(); FilterSettings.CheckSettings(); }
public void SetupSqlCe(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { SetupDatabase(connectionStringName, dbContextName, templateType, generatorType, foreignKeyNamingStrategy); Settings.ConnectionString = @"Data Source=C:\S\Source (open source)\EntityFramework Reverse POCO Code Generator\EntityFramework.Reverse.POCO.Generator\App_Data\" + database; Settings.DatabaseType = DatabaseType.SqlCe; }
public void SetupPostgreSQL(string database, string connectionStringName, string dbContextName, TemplateType templateType, GeneratorType generatorType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { SetupDatabase(connectionStringName, dbContextName, templateType, generatorType, foreignKeyNamingStrategy); Settings.ConnectionString = $"Server=127.0.0.1;Port=5432;Database={database};User Id=testuser;Password=testtesttest;"; Settings.DatabaseType = DatabaseType.PostgreSQL; }
[TestCase("fred", ".V3TestJ", "fred", "FredDbContext", false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Legacy)] // ef core 3 // Latest //[TestCase("Northwind", ".V3TestA2", "MyDbContext", "MyDbContext", true, TemplateType.Ef6, ForeignKeyNamingStrategy.Latest)] //[TestCase("EfrpgTest", ".V3TestB2", "MyDbContext", "EfrpgTestDbContext", false, TemplateType.Ef6, ForeignKeyNamingStrategy.Latest)] //[TestCase("EfrpgTestLarge", ".V3TestC2", "MyLargeDbContext", "EfrpgTestLargeDbContext", false, TemplateType.Ef6, ForeignKeyNamingStrategy.Latest)] //[TestCase("fred", ".V3TestD2", "fred", "FredDbContext", false, TemplateType.Ef6, ForeignKeyNamingStrategy.Latest)] //[TestCase("Northwind", ".V3TestE2", "MyDbContext", "MyDbContext", true, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase("Northwind", ".V3TestK2", "MyDbContext", "MyDbContext", true, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] //[TestCase("EfrpgTest", ".V3TestF2", "MyDbContext", "EfrpgTestDbContext", false, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase("EfrpgTest", ".V3TestG2", "MyDbContext", "EfrpgTestDbContext", false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] // ef core 3 //[TestCase("EfrpgTestLarge", ".V3TestH2", "MyLargeDbContext", "EfrpgTestLargeDbContext", false, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase("fred", ".V3TestI2", "fred", "FredDbContext", false, TemplateType.EfCore2, ForeignKeyNamingStrategy.Latest)] //[TestCase("fred", ".V3TestJ2", "fred", "FredDbContext", false, TemplateType.EfCore3, ForeignKeyNamingStrategy.Latest)] // ef core 3 public void ReverseEngineerSqlServer(string database, string singleDbContextSubNamespace, string connectionStringName, string dbContextName, bool publicTestComparison, TemplateType templateType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = (templateType != TemplateType.EfCore2 && templateType != TemplateType.EfCore3); SetupSqlServer(database, connectionStringName, dbContextName, templateType, templateType == TemplateType.Ef6 ? GeneratorType.Ef6 : GeneratorType.EfCore, foreignKeyNamingStrategy); //Settings.DisableGeographyTypes = true; Settings.Enumerations = new List <EnumerationSettings> { new EnumerationSettings { Name = "DaysOfWeek", // Enum to generate. e.g. "DaysOfWeek" would result in "public enum DaysOfWeek {...}" Table = "EnumTest.DaysOfWeek", // Database table containing enum values. e.g. "DaysOfWeek" NameField = "TypeName", // Column containing the name for the enum. e.g. "TypeName" ValueField = "TypeId" // Column containing the values for the enum. e.g. "TypeId" }, new EnumerationSettings { Name = "Invalid", Table = "x", NameField = "y", ValueField = "z" }, new EnumerationSettings { Name = "CarOptions", Table = "EnumsWithStringAsValue", NameField = "enum_name", ValueField = "value" } }; // Act Run(database, singleDbContextSubNamespace, typeof(NullFileManager), null); // Assert CompareAgainstTestComparison(database, publicTestComparison); }
/*[Test] // Always run all cases together as they build up ReverseNavigationUniquePropName * // checkForFkNameClashes = true * [TestCase("01", "Burak2", "Burak1", "Id|IdT|Num", true, "Burak2", true, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id")] * [TestCase("02", "Burak1", "Burak2", "Id|Num", false, "Burak1", true, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id")] * [TestCase("03", "Burak2", "Burak1", "Id|IdT|Num", true, "Burak2", true, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id_t")] * [TestCase("04", "Burak1", "Burak2", "Id|Num", false, "Burak1", true, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id_t")] * [TestCase("05", "Car", "Colour", "Id|Name", false, "Car", true, false, Relationship.OneToMany, "Car", "Colour", true, "PrimaryColourId")] * [TestCase("06", "Car", "CarToColour", "CarId|ColourId", true, "Car", true, true, Relationship.ManyToOne, "CarToColour", "Car", true, "CarId")] * [TestCase("07", "CarToColour", "Car", "Id|PrimaryColourId|CarMake|ComputedColumn|ComputedColumnPersisted", false, "CarToColour", true, false, Relationship.OneToMany, "CarToColour", "Car", true, "CarId")] * [TestCase("08", "CarToColour", "Colour", "Id|Name", false, "CarToColour", true, false, Relationship.OneToMany, "CarToColour", "Colour", true, "ColourId")] * [TestCase("09", "User", "UserDocument", "Id|UserId|CreatedByUserId", true, "User", true, true, Relationship.ManyToOne, "User_Document", "User", true, "CreatedByUserID")] * [TestCase("10", "UserDocument", "User", "Id|ExternalUserId", false, "UserDocument", true, false, Relationship.OneToMany, "User_Document", "User", true, "CreatedByUserID")] * [TestCase("11", "User", "UserDocument", "Id|UserId|CreatedByUserId", true, "User", true, true, Relationship.ManyToOne, "User_Document", "User", true, "UserID")] * [TestCase("12", "UserDocument", "User", "Id|ExternalUserId", false, "UserDocument", true, false, Relationship.OneToMany, "User_Document", "User", true, "UserID")] * // checkForFkNameClashes = false * [TestCase("13", "Burak2", "Burak1", "Id|IdT|Num", true, "Burak2", false, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id")] * [TestCase("14", "Burak1", "Burak2", "Id|Num", false, "Burak1", false, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id")] * [TestCase("15", "Burak2", "Burak1", "Id|IdT|Num", true, "Burak2", false, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id_t")] * [TestCase("16", "Burak1", "Burak2", "Id|Num", false, "Burak1", false, true, Relationship.OneToOne, "Burak1", "Burak2", true, "id_t")] * [TestCase("17", "Car", "Colour", "Id|Name", false, "Car", false, false, Relationship.OneToMany, "Car", "Colour", true, "PrimaryColourId")] * [TestCase("18", "Car", "CarToColour", "CarId|ColourId", true, "Car", false, true, Relationship.ManyToOne, "CarToColour", "Car", true, "CarId")] * [TestCase("19", "CarToColour", "Car", "Id|PrimaryColourId|CarMake|ComputedColumn|ComputedColumnPersisted", false, "CarToColour", false, false, Relationship.OneToMany, "CarToColour", "Car", true, "CarId")] * [TestCase("20", "CarToColour", "Colour", "Id|Name", false, "CarToColour", false, false, Relationship.OneToMany, "CarToColour", "Colour", true, "ColourId")] * [TestCase("21", "User", "UserDocument", "Id|UserId|CreatedByUserId", true, "User", false, true, Relationship.ManyToOne, "User_Document", "User", true, "CreatedByUserID")] * [TestCase("22", "UserDocument", "User", "Id|ExternalUserId", false, "UserDocument", false, false, Relationship.OneToMany, "User_Document", "User", true, "CreatedByUserID")] * [TestCase("23", "User", "UserDocument", "Id|UserId|CreatedByUserId", true, "User", false, true, Relationship.ManyToOne, "User_Document", "User", true, "UserID")] * [TestCase("24", "UserDocument", "User", "Id|ExternalUserId", false, "UserDocument", false, false, Relationship.OneToMany, "User_Document", "User", true, "UserID")] * public void LatestForeignKeyNames(string testOrder, string expected, string NameHumanCase, string columns, bool isParent, string tableNameHumanCase, bool checkForFkNameClashes, * bool makeSingular, Relationship relationship, string fkTableName, string pkTableName, bool includeReverseNavigation, string fkColumn) * { * Console.WriteLine(testOrder); // Keep this field to make sure test cases run in order as it's important * * // Arrange * var (table, foreignKey) = PrepareTest(NameHumanCase, columns, fkTableName, pkTableName, includeReverseNavigation, fkColumn, ForeignKeyNamingStrategy.Latest); * * // Act * var result = table.GetUniqueForeignKeyName(isParent, tableNameHumanCase, foreignKey, checkForFkNameClashes, makeSingular, relationship); * * // Assert * Assert.AreEqual(expected, result); * Assert.AreEqual(ForeignKeyNamingStrategy.Latest, Settings.ForeignKeyNamingStrategy); * }*/ private (Table table, ForeignKey foreignKey) PrepareTest(string NameHumanCase, string columns, string fkTableName, string pkTableName, bool includeReverseNavigation, string fkColumn, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { var table = tables.FirstOrDefault(x => x.NameHumanCase == NameHumanCase); if (table == null) { Settings.ForeignKeyNamingStrategy = foreignKeyNamingStrategy; table = new Table(null, new Schema("dbo"), NameHumanCase, false) { NameHumanCase = NameHumanCase }; foreach (var col in columns.Split('|')) { table.Columns.Add(new Column { NameHumanCase = col }); } tables.Add(table); } var foreignKey = new ForeignKey(fkTableName, "dbo", pkTableName, "dbo", fkColumn, "", "", "", "", 1, false, false, "", "", true) { IncludeReverseNavigation = includeReverseNavigation }; return(table, foreignKey); }
public void ReverseEngineerSqlServer(string database, string singleDbContextSubNamespace, string connectionStringName, string dbContextName, TemplateType templateType, ForeignKeyNamingStrategy foreignKeyNamingStrategy) { // Arrange Settings.GenerateSeparateFiles = false; Settings.UseMappingTables = (templateType != TemplateType.EfCore2 && templateType != TemplateType.EfCore3); SetupSqlServer(database, connectionStringName, dbContextName, templateType, templateType == TemplateType.Ef6 ? GeneratorType.Ef6 : GeneratorType.EfCore, foreignKeyNamingStrategy); if (templateType == TemplateType.EfCore5) // Don't do all, as we want a mix of true/false for this field. { Settings.TrimCharFields = true; } else { Settings.TrimCharFields = false; } Settings.Enumerations = new List <EnumerationSettings> { new EnumerationSettings { Name = "DaysOfWeek", // Enum to generate. e.g. "DaysOfWeek" would result in "public enum DaysOfWeek {...}" Table = "EnumTest.DaysOfWeek", // Database table containing enum values. e.g. "DaysOfWeek" NameField = "TypeName", // Column containing the name for the enum. e.g. "TypeName" ValueField = "TypeId" // Column containing the values for the enum. e.g. "TypeId" }, new EnumerationSettings { Name = "Invalid", Table = "x", NameField = "y", ValueField = "z" }, new EnumerationSettings { Name = "CarOptions", Table = "EnumsWithStringAsValue", NameField = "enum_name", ValueField = "value" } }; var enumDefinitions = new List <EnumDefinition> { new EnumDefinition { Schema = "EnumTest", Table = "OpenDays", Column = "TypeId", EnumType = "DaysOfWeek" } }; // Act Run(database, singleDbContextSubNamespace, typeof(NullFileManager), null, enumDefinitions); // Assert CompareAgainstTestComparison(database); }