コード例 #1
1
        protected static void ExecuteWithSqlite(Action<IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
                return;

            var announcer = new TextWriterAnnouncer(System.Console.Out);
            announcer.Heading("Testing Migration against SQLite");

            var factory = new SqliteDbFactory();
            using (var connection = factory.CreateConnection(serverOptions.ConnectionString))
            {
                var processor = new SqliteProcessor(connection, new SqliteGenerator(), announcer, new ProcessorOptions(), factory);
                test(processor);
            }
        }
コード例 #2
0
ファイル: SharpStarDb.cs プロジェクト: r00t-s/SharpStar
        public void MigrateToLatest()
        {
            var announcer = new TextWriterAnnouncer(s => SharpStarLogger.DefaultLogger.Debug(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = "SharpStar.Database.Migrations"
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };

            ReflectionBasedDbFactory factory;

            if (MonoHelper.IsRunningOnMono())
            {
                factory = new MonoSQLiteDbFactory();
            }
            else
            {
                factory = new SqliteDbFactory();
            }

            var connection = factory.CreateConnection(_config.GetProperty(NHibernate.Cfg.Environment.ConnectionString));

            var processor = new SqliteProcessor(connection, new SqliteGenerator(), announcer, options, factory);
            var runner    = new MigrationRunner(assembly, migrationContext, processor);

            runner.MigrateUp(true);
        }
コード例 #3
0
        private static void ExecuteWithSqlite(Action<IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
                return;

            var connection = new SQLiteConnection(serverOptions.ConnectionString);
            var processor = new SqliteProcessor(connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out), new ProcessorOptions());
            test(processor);
        }
コード例 #4
0
        public SqliteTestTable(SqliteProcessor processor, string schemaName, params string[] columnDefinitions)
        {
            _schemaName = schemaName;
            Connection  = ( IDbConnection )processor.Connection;
            Transaction = ( IDbTransaction )processor.Transaction;

            Name = "Table" + Guid.NewGuid().ToString("N");
            Create(columnDefinitions);
        }
コード例 #5
0
        public void Setup()
        {
            Connection = new SQLiteConnection(IntegrationTestOptions.SqlLite.ConnectionString);
            Processor  = new SqliteProcessor(Connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out),
                                             new ProcessorOptions(), new SqliteDbFactory());

            SchemaDumper = new SqliteSchemaDumper(Processor, new TextWriterAnnouncer(System.Console.Out));
            Connection.Open();
        }
コード例 #6
0
        public void Setup()
        {
            Connection = new SQLiteConnection(IntegrationTestOptions.SqlLite.ConnectionString);
            Processor = new SqliteProcessor(Connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out),
                                            new ProcessorOptions(), new SqliteDbFactory());

            SchemaDumper = new SqliteSchemaDumper(Processor, new TextWriterAnnouncer(System.Console.Out));
            Connection.Open();
        }
コード例 #7
0
        MigrationRunner getRunner()
        {
            var assembly = typeof(SqlMigrationService).Assembly;
            var ns = typeof(SqlMigrationService).Namespace;
            var generator = new SqliteGenerator();
            var processor = new SqliteProcessor(_connection, generator, new TextWriterAnnouncer(Console.Out), new ProcessorOptions());

            return new MigrationRunner(assembly, new RunnerContext(new TextWriterAnnouncer(Console.Out)) { Namespace = ns },
                                          processor); 
        }
コード例 #8
0
        MigrationRunner getRunner()
        {
            var assembly  = typeof(SqlMigrationService).Assembly;
            var ns        = typeof(SqlMigrationService).Namespace;
            var generator = new SqliteGenerator();
            var processor = new SqliteProcessor(_connection, generator, new TextWriterAnnouncer(Console.Out), new ProcessorOptions());

            return(new MigrationRunner(assembly, new RunnerContext(new TextWriterAnnouncer(Console.Out))
            {
                Namespace = ns
            },
                                       processor));
        }
コード例 #9
0
        public void CallingProcessWithPerformDBOperationExpressionWhenInPreviewOnlyModeWillNotMakeDbChanges()
        {
            var output = new StringWriter();

            var connection = new SQLiteConnection(IntegrationTestOptions.SqlLite.ConnectionString);

            var processor = new SqliteProcessor(
                connection,
                new SqliteGenerator(),
                new TextWriterAnnouncer(output),
                new ProcessorOptions {
                PreviewOnly = true
            },
                new SqliteDbFactory());

            bool tableExists;

            try
            {
                var expression =
                    new PerformDBOperationExpression
                {
                    Operation = (con, trans) =>
                    {
                        var command = con.CreateCommand();
                        command.CommandText = "CREATE TABLE ProcessTestTable (test int NULL) ";
                        command.Transaction = trans;

                        command.ExecuteNonQuery();
                    }
                };

                processor.Process(expression);

                tableExists = processor.TableExists("", "ProcessTestTable");
            }
            finally
            {
                processor.RollbackTransaction();
            }

            tableExists.ShouldBeFalse();

            output.ToString().ShouldBe(
                @"/* Performing DB Operation */
");
        }
コード例 #10
0
        protected static void ExecuteWithSqlite(Action <IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
            {
                return;
            }

            var announcer = new TextWriterAnnouncer(System.Console.Out);

            announcer.Heading("Testing Migration against SQLite");

            using (var connection = new SQLiteConnection(serverOptions.ConnectionString))
            {
                var processor = new SqliteProcessor(connection, new SqliteGenerator(), announcer, new ProcessorOptions());
                test(processor);
            }
        }
コード例 #11
0
        public void CallingProcessWithPerformDBOperationExpressionWhenInPreviewOnlyModeWillNotMakeDbChanges()
        {
            var output = new StringWriter();

            var connection = new SQLiteConnection(IntegrationTestOptions.SqlLite.ConnectionString);

            var processor = new SqliteProcessor(
                connection,
                new SqliteGenerator(),
                new TextWriterAnnouncer(output),
                new ProcessorOptions { PreviewOnly = true },
                new SqliteDbFactory());

            bool tableExists;

            try
            {
                var expression =
                    new PerformDBOperationExpression
                    {
                        Operation = (con, trans) =>
                        {
                            var command = con.CreateCommand();
                            command.CommandText = "CREATE TABLE ProcessTestTable (test int NULL) ";
                            command.Transaction = trans;

                            command.ExecuteNonQuery();
                        }
                    };

                processor.Process(expression);

                tableExists = processor.TableExists("", "ProcessTestTable");
            }
            finally
            {
                processor.RollbackTransaction();

            }

            tableExists.ShouldBeFalse();

            output.ToString().ShouldBe(
            @"/* Performing DB Operation */
            ");
        }
コード例 #12
0
        public void SetUp()
        {
            // This connection used in the tests
            var factory = new SqliteDbFactory();
            _connection = factory.CreateConnection("Data Source=:memory:;Version=3;New=True;");
            _connection.Open();
            _command = _connection.CreateCommand();

            // SUT
            _processor = new SqliteProcessor(_connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out), new ProcessorOptions(), factory);

            column = new Mock<ColumnDefinition>();
            tableName = "NewTable";
            tableNameThanMustBeEscaped = "123NewTable";
            columnName = "ColumnName";
            column.SetupGet(c => c.Name).Returns(columnName);
            column.SetupGet(c => c.IsNullable).Returns(true);
            column.SetupGet(c => c.Type).Returns(DbType.Int32);
        }
コード例 #13
0
        public void SetUp()
        {
            // This connection used in the tests
            var factory = new SqliteDbFactory();

            connection = factory.CreateConnection("Data Source=:memory:;Version=3;New=True;");
            connection.Open();
            command = connection.CreateCommand();

            // SUT
            processor = new SqliteProcessor(connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out), new ProcessorOptions(), factory);

            column    = new Mock <ColumnDefinition>();
            tableName = "NewTable";
            tableNameThanMustBeEscaped = "123NewTable";
            columnName = "ColumnName";
            column.SetupGet(c => c.Name).Returns(columnName);
            column.SetupGet(c => c.IsNullable).Returns(true);
            column.SetupGet(c => c.Type).Returns(DbType.Int32);
        }
コード例 #14
0
 public SqliteSchemaDumper(SqliteProcessor processor, IAnnouncer announcer)
 {
     Announcer = announcer;
     Processor = processor;
 }
コード例 #15
0
        public void SetUp()
        {
            // This connection used in the tests
            connection = new SQLiteConnection { ConnectionString = "Data Source=:memory:;Version=3;New=True;" };
            connection.Open();
            command = connection.CreateCommand();

            // SUT
            processor = new SqliteProcessor(connection, new SqliteGenerator(), new TextWriterAnnouncer(System.Console.Out), new ProcessorOptions());

            column = new Mock<ColumnDefinition>();
            tableName = "NewTable";
            columnName = "ColumnName";
            column.SetupGet(c => c.Name).Returns(columnName);
            column.SetupGet(c => c.IsNullable).Returns(true);
            column.SetupGet(c => c.Type).Returns(DbType.Int32);
        }