public void TestCheckUpdateTrigger() { // set up a test database const string tableName = "TestTable"; var databaseName = DiscoveredDatabaseICanCreateRandomTablesIn.GetRuntimeName(); var table = DiscoveredDatabaseICanCreateRandomTablesIn.CreateTable(tableName, new[] { new DatabaseColumnRequest("Id", "int"), }); var server = DiscoveredDatabaseICanCreateRandomTablesIn.Server; using (var con = server.GetConnection()) { con.Open(); var cmd = server.GetCommand( "CREATE TRIGGER dbo.[TestTable_OnUpdate] ON [dbo].[" + tableName + "] AFTER DELETE AS RAISERROR('MESSAGE',16,10)", con); cmd.ExecuteNonQuery(); } var dbInfo = DiscoveredServerICanCreateRandomDatabasesAndTablesOn.ExpectDatabase(databaseName); var factory = new TriggerImplementerFactory(dbInfo.Server.DatabaseType); var triggerImplementer = factory.Create(table); var isEnabled = triggerImplementer.GetTriggerStatus(); Assert.AreEqual(TriggerStatus.Enabled, isEnabled); // disable the trigger and test correct reporting using (var con = new SqlConnection(dbInfo.Server.Builder.ConnectionString)) { con.Open(); var cmd = new SqlCommand( "USE [" + databaseName + "]; DISABLE TRIGGER TestTable_OnUpdate ON [" + databaseName + "]..[" + tableName + "]", con); cmd.ExecuteNonQuery(); } isEnabled = triggerImplementer.GetTriggerStatus(); Assert.AreEqual(TriggerStatus.Disabled, isEnabled); }
private void CreateANormalCatalogue() { var svr = DiscoveredDatabaseICanCreateRandomTablesIn.Server; using (var con = svr.GetConnection()) { con.Open(); svr.GetCommand("CREATE TABLE NonTVFTable ( chi varchar(10))", con).ExecuteNonQuery(); svr.GetCommand("INSERT INTO NonTVFTable VALUES ('0101010101')", con).ExecuteNonQuery(); svr.GetCommand("INSERT INTO NonTVFTable VALUES ('0202020202')", con).ExecuteNonQuery(); svr.GetCommand("INSERT INTO NonTVFTable VALUES ('0303030303')", con).ExecuteNonQuery(); } var importer = new TableInfoImporter(CatalogueRepository, svr.Name, DiscoveredDatabaseICanCreateRandomTablesIn.GetRuntimeName(), "NonTVFTable", DatabaseType.MicrosoftSQLServer); TableInfo tbl; ColumnInfo[] cols; importer.DoImport(out tbl, out cols); var engineer = new ForwardEngineerCatalogue(tbl, cols, true); Catalogue cata; CatalogueItem[] cis; ExtractionInformation[] eis; engineer.ExecuteForwardEngineering(out cata, out cis, out eis); _nonTvfExtractionIdentifier = eis.Single(); _nonTvfExtractionIdentifier.IsExtractionIdentifier = true; _nonTvfExtractionIdentifier.SaveToDatabase(); _nonTvfCatalogue = cata; _nonTvfTableInfo = tbl; }