예제 #1
0
        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"));
        }
예제 #2
0
        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);
        }