public void CallingForeignKeySetForeignKey() { var expressionMock = new Mock <CreateTableExpression>(); var contextMock = new Mock <IMigrationContext>(); contextMock.SetupGet(x => x.Expressions).Returns(new List <IMigrationExpression>()); var builder = new CreateTableExpressionBuilder(expressionMock.Object, contextMock.Object); builder.CurrentColumn = new ColumnDefinition(); var fk = new ForeignKeyDefinition { Name = "foreignKeyName", PrimaryTable = "primaryTableName", PrimaryTableSchema = "primaryTableSchema", ForeignTable = builder.Expression.TableName, ForeignTableSchema = builder.Expression.SchemaName }; builder.ForeignKey(fk.Name, fk.PrimaryTableSchema, fk.PrimaryTable, "primaryColumnName"); Assert.IsTrue(builder.CurrentColumn.IsForeignKey); Assert.AreEqual(builder.CurrentColumn.ForeignKey.Name, fk.Name); Assert.AreEqual(builder.CurrentColumn.ForeignKey.PrimaryTable, fk.PrimaryTable); Assert.AreEqual(builder.CurrentColumn.ForeignKey.PrimaryTableSchema, fk.PrimaryTableSchema); Assert.AreEqual(builder.CurrentColumn.ForeignKey.ForeignTable, fk.ForeignTable); Assert.AreEqual(builder.CurrentColumn.ForeignKey.ForeignTableSchema, fk.ForeignTableSchema); }
public void CallingForeignKeyAddsNewForeignKeyExpressionToContext() { var collectionMock = new Mock <ICollection <IMigrationExpression> >(); var contextMock = new Mock <IMigrationContext>(); contextMock.Setup(x => x.Expressions).Returns(collectionMock.Object); var columnMock = new Mock <ColumnDefinition>(); columnMock.SetupGet(x => x.Name).Returns("BaconId"); var expressionMock = new Mock <CreateTableExpression>(); expressionMock.SetupGet(x => x.TableName).Returns("Bacon"); var builder = new CreateTableExpressionBuilder(expressionMock.Object, contextMock.Object) { CurrentColumn = columnMock.Object }; builder.ForeignKey("fk_foo", "FooTable", "BarColumn"); collectionMock.Verify(x => x.Add(It.Is <CreateForeignKeyExpression>( fk => fk.ForeignKey.Name == "fk_foo" && fk.ForeignKey.PrimaryTable == "FooTable" && fk.ForeignKey.PrimaryColumns.Contains("BarColumn") && fk.ForeignKey.PrimaryColumns.Count == 1 && fk.ForeignKey.ForeignTable == "Bacon" && fk.ForeignKey.ForeignColumns.Contains("BaconId") && fk.ForeignKey.ForeignColumns.Count == 1 ))); contextMock.VerifyGet(x => x.Expressions); }
public void CallingForeignKeyAddsNewForeignKeyExpressionToContext() { var collectionMock = new Mock<ICollection<IMigrationExpression>>(); var contextMock = new Mock<IMigrationContext>(); contextMock.Setup(x => x.Expressions).Returns(collectionMock.Object); var columnMock = new Mock<ColumnDefinition>(); columnMock.SetupGet(x => x.Name).Returns("BaconId"); var expressionMock = new Mock<CreateTableExpression>(); expressionMock.SetupGet(x => x.TableName).Returns("Bacon"); var builder = new CreateTableExpressionBuilder(expressionMock.Object, contextMock.Object) { CurrentColumn = columnMock.Object }; builder.ForeignKey("fk_foo", "FooTable", "BarColumn"); collectionMock.Verify(x => x.Add(It.Is<CreateForeignKeyExpression>( fk => fk.ForeignKey.Name == "fk_foo" && fk.ForeignKey.PrimaryTable == "FooTable" && fk.ForeignKey.PrimaryColumns.Contains("BarColumn") && fk.ForeignKey.PrimaryColumns.Count == 1 && fk.ForeignKey.ForeignTable == "Bacon" && fk.ForeignKey.ForeignColumns.Contains("BaconId") && fk.ForeignKey.ForeignColumns.Count == 1 ))); contextMock.VerifyGet(x => x.Expressions); }
public void CallingForeignKeySetForeignKey() { var expressionMock = new Mock<CreateTableExpression>(); var contextMock = new Mock<IMigrationContext>(); contextMock.SetupGet(x => x.Expressions).Returns(new List<IMigrationExpression>()); var builder = new CreateTableExpressionBuilder(expressionMock.Object, contextMock.Object); builder.CurrentColumn = new ColumnDefinition(); var fk = new ForeignKeyDefinition { Name = "foreignKeyName", PrimaryTable = "primaryTableName", PrimaryTableSchema = "primaryTableSchema", ForeignTable = builder.Expression.TableName, ForeignTableSchema = builder.Expression.SchemaName }; builder.ForeignKey(fk.Name, fk.PrimaryTableSchema, fk.PrimaryTable, "primaryColumnName"); Assert.IsTrue(builder.CurrentColumn.IsForeignKey); Assert.AreEqual(builder.CurrentColumn.ForeignKey.Name, fk.Name); Assert.AreEqual(builder.CurrentColumn.ForeignKey.PrimaryTable, fk.PrimaryTable); Assert.AreEqual(builder.CurrentColumn.ForeignKey.PrimaryTableSchema, fk.PrimaryTableSchema); Assert.AreEqual(builder.CurrentColumn.ForeignKey.ForeignTable, fk.ForeignTable); Assert.AreEqual(builder.CurrentColumn.ForeignKey.ForeignTableSchema, fk.ForeignTableSchema); }