public void FkCheckNoCheckTest() { var version = MsSqlVersion.MsSql2016; var dd = new TestDatabaseFk(); dd.SetVersions(version.GetTypeMapper()); Init(version, dd); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader( SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName] , SqlExecuterTestAdapter.GetContext(version), dd.GetSchemaNames().ToList()); var ddInDatabase = ddlReader.GetDatabaseDefinition(); var fk = dd.GetTable("Foreign").Properties.OfType <ForeignKey>().First(); Assert.AreEqual("true", fk.SqlEngineVersionSpecificProperties[version, "Nocheck"]); fk.SqlEngineVersionSpecificProperties[version, "Nocheck"] = "false"; var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version)); var changes = comparer.Compare(ddInDatabase, dd); _ = changes[0] as ForeignKeyChange; _ = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version))); // TODO change FK // databaseMigrator. }
private static DatabaseMigrator ProcessAndGetMigrator(SqlEngineVersion version, DatabaseDefinitions dds, out List <IMigration> changes) { Init(version, dds.Original); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList()); var ddInDatabase = ddlReader.GetDatabaseDefinition(); var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version)); changes = comparer.Compare(ddInDatabase, dds.New); var databaseMigrator = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version))); return(databaseMigrator); }
protected static void Init(SqlEngineVersion version, DatabaseDefinition dd) { _sqlExecuterTestAdapter.Check(version); if (dd == null) { _sqlExecuterTestAdapter.Initialize(version.UniqueName); } else { _sqlExecuterTestAdapter.Initialize(version.UniqueName, dd); } TestHelper.CheckFeature(version, "ReadDdl"); _sqlExecuterTestAdapter.GetContext(version).Settings.Options.ShouldUseDefaultSchema = true; }
#pragma warning disable IDE1006 // Naming Styles public void _020_DropTable(SqlEngineVersion version) #pragma warning restore IDE1006 // Naming Styles { _sqlExecuterTestAdapter.Check(version); _sqlExecuterTestAdapter.Initialize(version.UniqueName); var table = new SqlTable("HierarchyFromCsvToSqlTests"); var generator = SqlGeneratorFactory.CreateGenerator(version, _sqlExecuterTestAdapter.GetContext(version)); var sql = generator.DropTable(table); var result = _sqlExecuterTestAdapter.ExecuteNonQuery(version.UniqueName, sql); if (result != null) { Assert.Inconclusive(result); } }
public override void Pk_Add(SqlEngineVersion version) { var dds = Pk_Add_Dds(version); var databaseMigrator = ProcessAndGetMigrator(version, dds, out var changes); var primaryKeyNew = changes[0] as PrimaryKeyNew; databaseMigrator.NewPrimaryKey(primaryKeyNew); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList()); var ddInDatabase = ddlReader.GetDatabaseDefinition(); var newPk = ddInDatabase.GetTable("Company").Properties.OfType <PrimaryKey>().First(); Assert.AreEqual(1, newPk.SqlColumns.Count); Assert.AreEqual("Id", newPk.SqlColumns[0].SqlColumn.Name); Assert.AreEqual("PK_Company", newPk.Name, true, CultureInfo.InvariantCulture); }