public void Dispatches_visitor()
        {
            var operation = new AlterSequenceOperation("dbo.MySequence", 7);

            var sqlGeneratorMock = new Mock <MigrationOperationSqlGenerator>(new RelationalTypeMapper());
            var builder          = new IndentedStringBuilder();

            operation.GenerateSql(sqlGeneratorMock.Object, builder);

            sqlGeneratorMock.Verify(g => g.Generate(operation, builder), Times.Once());

            var codeGeneratorMock = new Mock <MigrationCodeGenerator>(new Mock <ModelCodeGenerator>().Object);

            builder = new IndentedStringBuilder();
            operation.GenerateCode(codeGeneratorMock.Object, builder);

            codeGeneratorMock.Verify(g => g.Generate(operation, builder), Times.Once());

            var visitorMock = new Mock <MigrationOperationVisitor <object> >();
            var context     = new object();

            operation.Accept(visitorMock.Object, context);

            visitorMock.Verify(v => v.Visit(operation, context), Times.Once());
        }
        public void Visit_with_alter_sequence_operation()
        {
            var model     = new DatabaseModel();
            var operation = new AlterSequenceOperation("dbo.MySequence", 7);

            model.AddSequence(new Sequence("dbo.MySequence", "bigint", 0, 6));
            operation.Accept(new DatabaseModelModifier(), model);

            Assert.Equal(1, model.Sequences.Count);
            Assert.Equal("dbo.MySequence", model.Sequences[0].Name);
            Assert.Equal("bigint", model.Sequences[0].DataType);
            Assert.Equal(0, model.Sequences[0].StartWith);
            Assert.Equal(7, model.Sequences[0].IncrementBy);
        }