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());
        }
Пример #2
0
        public virtual AlterOperationBuilder <AlterSequenceOperation> AlterSequence(
            [NotNull] string name,
            [CanBeNull] string schema = null,
            int incrementBy           = 1,
            [CanBeNull] long?minValue = null,
            [CanBeNull] long?maxValue = null,
            bool cyclic                  = false,
            int oldIncrementBy           = 1,
            [CanBeNull] long?oldMinValue = null,
            [CanBeNull] long?oldMaxValue = null,
            bool oldCyclic               = false)
        {
            Check.NotEmpty(name, nameof(name));

            var operation = new AlterSequenceOperation
            {
                Schema      = schema,
                Name        = name,
                IncrementBy = incrementBy,
                MinValue    = minValue,
                MaxValue    = maxValue,
                IsCyclic    = cyclic,
                OldSequence = new SequenceOperation
                {
                    IncrementBy = oldIncrementBy,
                    MinValue    = oldMinValue,
                    MaxValue    = oldMaxValue,
                    IsCyclic    = oldCyclic
                }
            };

            Operations.Add(operation);

            return(new AlterOperationBuilder <AlterSequenceOperation>(operation));
        }
Пример #3
0
 public override void Generate(
     AlterSequenceOperation alterSequenceOperation,
     IndentedStringBuilder stringBuilder)
 {
     throw new NotSupportedException(Strings.FormatMigrationOperationNotSupported(
                                         GetType(), alterSequenceOperation.GetType()));
 }
Пример #4
0
        public void Generate_with_alter_sequence_is_not_supported()
        {
            var operation = new AlterSequenceOperation("EpisodeSequence", 7);

            Assert.Equal(
                Strings.FormatMigrationOperationNotSupported(typeof(SQLiteMigrationOperationSqlGenerator), operation.GetType()),
                Assert.Throws <NotSupportedException>(() => Generate(operation)).Message);
        }
 protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     builder.Append("ALTER SEQUENCE ");
     builder.Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name, operation.Schema));
     builder.Append(" RESTART INCREMENT BY ");
     builder.Append(operation.IncrementBy.ToString(CultureInfo.InvariantCulture));
     TerminateStatement(builder);
 }
        public void Create_and_initialize_operation()
        {
            var operation = new AlterSequenceOperation("dbo.MySequence", 7);

            Assert.Equal("dbo.MySequence", operation.SequenceName);
            Assert.Equal(7, operation.NewIncrementBy);
            Assert.False(operation.IsDestructiveChange);
        }
Пример #7
0
        protected virtual void Generate([NotNull] AlterSequenceOperation operation, [NotNull] IndentedStringBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder.AppendLine(".AlterSequence(");

            using (builder.Indent())
            {
                builder
                .Append("name: ")
                .Append(_code.Literal(operation.Name));

                if (operation.Schema != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("schema: ")
                    .Append(_code.Literal(operation.Schema));
                }

                if (operation.IncrementBy != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("incrementBy: ")
                    .Append(_code.Literal(operation.IncrementBy));
                }

                if (operation.MinValue != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("minValue: ")
                    .Append(_code.Literal(operation.MinValue));
                }

                if (operation.MaxValue != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("maxValue: ")
                    .Append(_code.Literal(operation.MaxValue));
                }

                if (operation.Cycle)
                {
                    builder
                    .AppendLine(",")
                    .Append("cycle: true");
                }

                builder.Append(")");

                Annotations(operation.Annotations, builder);
            }
        }
Пример #8
0
        public override void Visit(AlterSequenceOperation alterSequenceOperation, DatabaseModel databaseModel)
        {
            Check.NotNull(alterSequenceOperation, "alterSequenceOperation");
            Check.NotNull(databaseModel, "databaseModel");

            var sequence = databaseModel.GetSequence(alterSequenceOperation.SequenceName);

            sequence.IncrementBy = alterSequenceOperation.NewIncrementBy;
        }
        public void Generate_when_alter_sequence_operation()
        {
            var operation = new AlterSequenceOperation("dbo.MySequence", newIncrementBy: 13);

            Assert.Equal(
                @"AlterSequence(""dbo.MySequence"", 13)",
                CSharpMigrationCodeGenerator.Generate(operation));

            GenerateAndValidateCode(operation);
        }
        public virtual void Generate([NotNull] AlterSequenceOperation alterSequenceOperation, [NotNull] SqlBatchBuilder batchBuilder)
        {
            Check.NotNull(alterSequenceOperation, "alterSequenceOperation");
            Check.NotNull(batchBuilder, "batchBuilder");

            batchBuilder
            .Append("ALTER SEQUENCE ")
            .Append(DelimitIdentifier(alterSequenceOperation.SequenceName))
            .Append(" INCREMENT BY ")
            .Append(alterSequenceOperation.NewIncrementBy);
        }
Пример #11
0
 /// <summary>
 /// 修改序列号转换。
 /// </summary>
 /// <param name="operation">操作实例。</param>
 /// <param name="builder"><see cref="MigrationCommandListBuilder"/>实例。</param>
 protected virtual void SequenceOptions(
     [NotNull] AlterSequenceOperation operation,
     [NotNull] MigrationCommandListBuilder builder)
 => SequenceOptions(
     operation.Schema,
     operation.Name,
     operation.IncrementBy,
     operation.MinValue,
     operation.MaxValue,
     operation.IsCyclic,
     builder);
    public async Task AlterSequence()
    {
        var operation = new AlterSequenceOperation()
        {
            Name        = "MySequence",
            IncrementBy = 12,
        };
        var batch = await Generate(new[] { operation });

        Assert.AreEqual(1, batch.Count());
        Assert.AreEqual(NewLineEnd(@"ALTER SEQUENCE ""MySequence"" RESTART INCREMENT BY 12;"), batch[0].CommandText);
    }
Пример #13
0
        public override void Generate(AlterSequenceOperation alterSequenceOperation, IndentedStringBuilder stringBuilder)
        {
            Check.NotNull(alterSequenceOperation, "alterSequenceOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            stringBuilder
            .Append("AlterSequence(")
            .Append(GenerateLiteral(alterSequenceOperation.SequenceName))
            .Append(", ")
            .Append(GenerateLiteral(alterSequenceOperation.NewIncrementBy))
            .Append(")");
        }
Пример #14
0
 public virtual void SequenceOptions(
     [NotNull] AlterSequenceOperation operation,
     [CanBeNull] IModel model,
     [NotNull] SqlBatchBuilder builder) =>
 SequenceOptions(
     operation.Schema,
     operation.Name,
     operation.IncrementBy,
     operation.MinValue,
     operation.MaxValue,
     operation.Cycle,
     model,
     builder);
Пример #15
0
 protected virtual void SequenceOptions(
     [NotNull] AlterSequenceOperation operation,
     [CanBeNull] IModel model,
     [NotNull] RelationalCommandListBuilder builder) =>
 SequenceOptions(
     operation.Schema,
     operation.Name,
     operation.IncrementBy,
     operation.MinValue,
     operation.MaxValue,
     operation.IsCyclic,
     model,
     builder);
Пример #16
0
        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);
        }
Пример #17
0
        protected virtual void Generate(
            [NotNull] AlterSequenceOperation operation,
            [CanBeNull] IModel model,
            [NotNull] RelationalCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append("ALTER SEQUENCE ")
            .Append(SqlGenerator.DelimitIdentifier(operation.Name, operation.Schema));

            SequenceOptions(operation, model, builder);
        }
Пример #18
0
        public virtual void Generate(
            [NotNull] AlterSequenceOperation operation,
            [CanBeNull] IModel model,
            [NotNull] SqlBatchBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append("ALTER SEQUENCE ")
            .Append(_sql.DelimitIdentifier(operation.Name, operation.Schema));

            SequenceOptions(operation, model, builder);
        }
Пример #19
0
        /// <summary>
        /// 修改序列号。
        /// </summary>
        /// <param name="operation">操作实例。</param>
        /// <param name="builder"><see cref="MigrationCommandListBuilder"/>实例对象。</param>
        protected virtual void Generate(
            [NotNull] AlterSequenceOperation operation,
            [NotNull] MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append("ALTER SEQUENCE ")
            .Append(SqlHelper.DelimitIdentifier(operation.Name, operation.Schema));

            SequenceOptions(operation, builder);

            builder.AppendLine(SqlHelper.StatementTerminator);

            EndStatement(builder);
        }
Пример #20
0
        public virtual OperationBuilder <AlterSequenceOperation> AlterSequence(
            [NotNull] string name,
            [CanBeNull] string schema   = null,
            [CanBeNull] int?incrementBy = null,
            [CanBeNull] long?minValue   = null,
            [CanBeNull] long?maxValue   = null,
            bool cycle = false)
        {
            Check.NotEmpty(name, nameof(name));

            var operation = new AlterSequenceOperation
            {
                Schema      = schema,
                Name        = name,
                IncrementBy = incrementBy,
                MinValue    = minValue,
                MaxValue    = maxValue,
                Cycle       = cycle
            };

            Operations.Add(operation);

            return(new OperationBuilder <AlterSequenceOperation>(operation));
        }
Пример #21
0
 protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException("JET does not support sequences");
 }
Пример #22
0
 protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException(string.Format(NotSupported, operation.GetType().Name));
 }
 protected override void Generate(AlterSequenceOperation operation, IModel model, RelationalCommandListBuilder builder)
 {
     throw new NotSupportedException("SQL Server Compact does not support sequences.");
 }
Пример #24
0
 protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException(SqliteStrings.SequencesNotSupported);
 }
 protected override void Generate(AlterSequenceOperation operation, IModel model, SqlBatchBuilder builder)
 {
     throw new NotSupportedException(Strings.SequencesNotSupported);
 }
Пример #26
0
 public abstract void Generate([NotNull] AlterSequenceOperation alterSequenceOperation, [NotNull] IndentedStringBuilder stringBuilder);