public void The_Corresponding_Relationship_Should_Also_Have_The_Column() { // Create database and relationships Database db = RelationshipDatabaseLoader.GetDb(); Relationship relationship = db.Tables[1].Relationships[0]; Assert.That(relationship.PrimaryKey, Is.SameAs(db.Tables[0].Keys[0])); Assert.That(relationship.ForeignKey, Is.SameAs(db.Tables[1].Keys[0])); Assert.That(relationship.ForeignKey.Columns[0].Name, Is.EqualTo("Column1")); IKey originalKey = db.Tables[0].Keys[0]; IKey newKey = new Key(originalKey.Name); newKey.Parent = new Table("Table1"); newKey.Parent.AddColumn(new Column("Column2")); newKey.Description = "new description"; newKey.AddColumn("Column2"); KeyChangeOperation op = new KeyChangeOperation(db.Tables[0].Keys[0], newKey); op.RunOperation(); op.RunSecondStep(); // Make sure the relationship is still the same, and has the same references. Relationship relationship2 = db.Tables[1].Relationships[0]; Assert.That(relationship2, Is.SameAs(relationship)); Assert.That(relationship2.PrimaryKey, Is.SameAs(db.Tables[0].Keys[0])); Assert.That(relationship2.ForeignKey, Is.SameAs(db.Tables[1].Keys[0])); Assert.That(relationship2.ForeignKey.Columns[0].Name, Is.EqualTo("Column1")); }
public void The_Corresponding_Relationship_Should_Also_Be_Removed() { // Create database and relationships Database db = RelationshipDatabaseLoader.GetDb(); KeyRemovalOperation op = new KeyRemovalOperation(db.Tables[1].Keys[0]); op.RunOperation(); Assert.That(db.Tables[1].Relationships, Is.Empty); }