private BulkTestsData SetupTestData(out ColumnInfo l2ColumnInfo) { //Setup test data var testData = new BulkTestsData(CatalogueRepository, DiscoveredDatabaseICanCreateRandomTablesIn); testData.SetupTestData(); testData.ImportAsCatalogue(); //Setup some validation rules Validator v = new Validator(); //rule is that previous address line 1 cannot be the same as previous address line 2 var iv = new ItemValidator("previous_address_L1"); l2ColumnInfo = testData.columnInfos.Single(c => c.GetRuntimeName().Equals("previous_address_L2")); //define the secondary constraint var referentialConstraint = new ReferentialIntegrityConstraint(CatalogueRepository); referentialConstraint.InvertLogic = true; referentialConstraint.OtherColumnInfo = l2ColumnInfo; //add it to the item validator for previous_address_L1 iv.SecondaryConstraints.Add(referentialConstraint); //add the completed item validator to the validator (normally there would be 1 item validator per column with validation but in this test we only have 1) v.ItemValidators.Add(iv); testData.catalogue.ValidatorXML = v.SaveToXml(); testData.catalogue.SaveToDatabase(); return(testData); }
protected override void OneTimeSetUp() { base.OneTimeSetUp(); var tbl = GetCleanedServer(FAnsi.DatabaseType.MicrosoftSQLServer).ExpectTable("ReferentialIntegrityConstraintTests"); if (tbl.Exists()) { tbl.Drop(); } var server = GetCleanedServer(FAnsi.DatabaseType.MicrosoftSQLServer).Server; using (var con = server.GetConnection()) { con.Open(); server.GetCommand("CREATE TABLE ReferentialIntegrityConstraintTests(MyValue int)", con).ExecuteNonQuery(); server.GetCommand("INSERT INTO ReferentialIntegrityConstraintTests (MyValue) VALUES (5)", con).ExecuteNonQuery(); } TableInfoImporter importer = new TableInfoImporter(CatalogueRepository, tbl); importer.DoImport(out _tableInfo, out _columnInfo); _constraint = new ReferentialIntegrityConstraint(CatalogueRepository); _constraint.OtherColumnInfo = _columnInfo.Single(); }
public void Setup() { var tbl = DiscoveredDatabaseICanCreateRandomTablesIn.ExpectTable("ReferentialIntegrityConstraintTests"); if (tbl.Exists()) { tbl.Drop(); } var server = DiscoveredDatabaseICanCreateRandomTablesIn.Server; using (var con = server.GetConnection()) { con.Open(); server.GetCommand("CREATE TABLE ReferentialIntegrityConstraintTests(MyValue int)", con).ExecuteNonQuery(); server.GetCommand("INSERT INTO ReferentialIntegrityConstraintTests (MyValue) VALUES (5)", con).ExecuteNonQuery(); } TableInfoImporter importer = new TableInfoImporter(CatalogueRepository, tbl); importer.DoImport(out _tableInfo, out _columnInfo); _constraint = new ReferentialIntegrityConstraint(CatalogueRepository); _constraint.OtherColumnInfo = _columnInfo.Single(); }