public void CallingIndexWithoutNameReturnsCreateIndexExpression()
        {
            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.Index();

            builder.ShouldBeOfType<CreateIndexExpressionBuilder>();
            contextMock.VerifyGet(x => x.Expressions);
        }
        public void CallingIndexAddsCreateIndexExpressionToContextWithSpecifiedNameSet()
        {
            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.Index("IX_Bacon");

            collectionMock.Verify(x => x.Add(It.Is<CreateIndexExpression>(e => e.Index.Name.Equals("IX_Bacon"))));
            contextMock.VerifyGet(x => x.Expressions);
        }
        public void CallingIndexWithoutNameAddsCreateIndexExpressionToContext()
        {
            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.Index();

            collectionMock.Verify(x => x.Add(It.IsAny<CreateIndexExpression>()));
            contextMock.VerifyGet(x => x.Expressions);
        }
        public void CallingIndexCreatesCreateIndexExpression()
        {
            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.Index("IX_Bacon");

            builder.ShouldBeOfType<CreateIndexExpressionBuilder>();
            contextMock.VerifyAll();
        }