コード例 #1
0
        public void GetAppliedMigrations_finds_migrations()
        {
            var testConnection = SqliteTestConnection.CreateScratch();

            testConnection.Open();
            using (var command = testConnection.DbConnection.CreateCommand())
            {
                command.CommandText = CreateSqliteHistoryRepo().Create(true);
                command.ExecuteNonQuery();
            }
            using (var command = testConnection.DbConnection.CreateCommand())
            {
                command.CommandText = "INSERT INTO __migrationHistory VALUES ('different_context','SomeFakeContext','1');";
                command.ExecuteNonQuery();
            }

            var row = new HistoryRow("Mig1", "7");

            using (var command = testConnection.DbConnection.CreateCommand())
            {
                var operation = CreateSqliteHistoryRepo()
                                .GetInsertOperation(row) as SqlOperation;
                command.CommandText = operation?.Sql;
                command.ExecuteNonQuery();
            }

            var hp = new SqliteHistoryRepository(testConnection, new TestContext(), new SqliteUpdateSqlGenerator());

            Assert.Collection(hp.GetAppliedMigrations(), p =>
            {
                Assert.Equal(row.MigrationId, p.MigrationId);
                Assert.Equal(row.ProductVersion, p.ProductVersion);
            });
            testConnection.Close();
        }
コード例 #2
0
        public void Exists_no_table()
        {
            var connection = SqliteTestConnection.CreateScratch();

            var hp = new SqliteHistoryRepository(connection, new TestContext(), new SqliteUpdateSqlGenerator());

            Assert.False(hp.Exists());
        }
コード例 #3
0
        public void Exists_finds_existing_table()
        {
            var connection = SqliteTestConnection.CreateScratch();

            connection.Open();
            using (var cmd = connection.DbConnection.CreateCommand())
            {
                cmd.CommandText = "CREATE TABLE __migrationHistory (column1);";
                connection.Open();
                cmd.ExecuteNonQuery();
            }

            var hp = new SqliteHistoryRepository(connection, new TestContext(), new SqliteUpdateSqlGenerator());

            Assert.True(hp.Exists());
        }
コード例 #4
0
            public static SqliteTestConnection CreateScratch()
            {
                var    options = new DbContextOptionsBuilder();
                string name;

                do
                {
                    name = "scratch-" + Interlocked.Increment(ref _scratchCount) + ".db";
                }while (File.Exists(name));
                options.UseSqlite("Data Source=" + name);
                var connection = new SqliteTestConnection(options.Options)
                {
                    _fileName = name
                };

                return(connection);
            }
コード例 #5
0
 private static SqliteHistoryRepository CreateSqliteHistoryRepo() => new SqliteHistoryRepository(SqliteTestConnection.InMemory(), new TestContext(), new SqliteUpdateSqlGenerator());
コード例 #6
0
 public static SqliteTestConnection CreateScratch()
 {
     var options = new DbContextOptionsBuilder();
     string name;
     do
     {
         name = "scratch-" + Interlocked.Increment(ref _scratchCount) + ".db";
     }
     while (File.Exists(name));
     options.UseSqlite("Data Source=" + name);
     var connection = new SqliteTestConnection(options.Options) { _fileName = name };
     return connection;
 }