public void CallingForeignKeyCreatesCreateForeignKeyExpression()
        {
            var collectionMock = new Mock<ICollection<IMigrationExpression>>();
            var contextMock = new Mock<IMigrationContext>();
            contextMock.SetupGet(x => x.Expressions).Returns(collectionMock.Object).AtMostOnce();

            var root = new CreateExpressionRoot(contextMock.Object);
            var builder = root.ForeignKey("FK_Bacon");

            builder.ShouldBeOfType<CreateForeignKeyExpressionBuilder>();
            contextMock.VerifyAll();
        }
        public void CallingForeignKeyAddsCreateForeignKeyExpressionToContextWithSpecifiedNameSet()
        {
            var collectionMock = new Mock<ICollection<IMigrationExpression>>();

            var contextMock = new Mock<IMigrationContext>();
            contextMock.Setup(x => x.Expressions).Returns(collectionMock.Object);

            var root = new CreateExpressionRoot(contextMock.Object);
            root.ForeignKey("FK_Bacon");

            collectionMock.Verify(x => x.Add(It.Is<CreateForeignKeyExpression>(e => e.ForeignKey.Name.Equals("FK_Bacon"))));
            contextMock.VerifyGet(x => x.Expressions);
        }
        public void CallingForeignKeyWithoutNameReturnsCreateForeignKeyExpression()
        {
            var collectionMock = new Mock<ICollection<IMigrationExpression>>();
            var contextMock = new Mock<IMigrationContext>();
            contextMock.Setup(x => x.Expressions).Returns(collectionMock.Object);

            var root = new CreateExpressionRoot(contextMock.Object);
            var builder = root.ForeignKey();

            builder.ShouldBeOfType<CreateForeignKeyExpressionBuilder>();
            contextMock.VerifyGet(x => x.Expressions);
        }
        public void CallingForeignKeyWithoutNameAddsCreateForeignKeyExpressionToContext()
        {
            var collectionMock = new Mock<ICollection<IMigrationExpression>>();

            var contextMock = new Mock<IMigrationContext>();
            contextMock.Setup(x => x.Expressions).Returns(collectionMock.Object);

            var root = new CreateExpressionRoot(contextMock.Object);
            root.ForeignKey();

            collectionMock.Verify(x => x.Add(It.IsAny<CreateForeignKeyExpression>()));
            contextMock.VerifyGet(x => x.Expressions);
        }