示例#1
0
        private static Config Initialize(PostgresFixture fixture)
        {
            //need to make sure db is created before the tests start
            DbUtils.Initialize(fixture);

            var config = @"
                akka.persistence {
                    publish-plugin-commands = on
                    snapshot-store {
                        plugin = ""akka.persistence.snapshot-store.postgresql""
                        postgresql {
                            class = ""Akka.Persistence.PostgreSql.Snapshot.PostgreSqlSnapshotStore, Akka.Persistence.PostgreSql""
                            plugin-dispatcher = ""akka.actor.default-dispatcher""
                            table-name = snapshot_store
                            schema-name = public
                            auto-initialize = on
                            connection-string = """ + DbUtils.ConnectionString + @"""
                            sequential-access = on
                        }
                    }
                }
                akka.test.single-expect-default = 10s";

            return(ConfigurationFactory.ParseString(config));
        }
        public static void Initialize(PostgresFixture fixture)
        {
            ConnectionString = fixture.ConnectionString;
            var connectionBuilder = new NpgsqlConnectionStringBuilder(ConnectionString);

            //connect to postgres database to create a new database
            var databaseName = connectionBuilder.Database;

            connectionBuilder.Database = databaseName;
            ConnectionString           = connectionBuilder.ToString();

            using (var conn = new NpgsqlConnection(ConnectionString))
            {
                conn.Open();

                bool dbExists;
                using (var cmd = new NpgsqlCommand())
                {
                    cmd.CommandText = $@"SELECT TRUE FROM pg_database WHERE datname='{databaseName}'";
                    cmd.Connection  = conn;

                    var result = cmd.ExecuteScalar();
                    dbExists = result != null && Convert.ToBoolean(result);
                }

                if (dbExists)
                {
                    Clean();
                }
                else
                {
                    DoCreate(conn, databaseName);
                }
            }
        }
        private static Config Initialize(PostgresFixture fixture)
        {
            //need to make sure db is created before the tests start
            DbUtils.Initialize(fixture);

            var config = @"
                akka.persistence {
                    publish-plugin-commands = on
                    journal {
                        plugin = ""akka.persistence.journal.postgresql""
                        postgresql {
                            class = ""Akka.Persistence.PostgreSql.Journal.PostgreSqlJournal, Akka.Persistence.PostgreSql""
                            plugin-dispatcher = ""akka.actor.default-dispatcher""
                            table-name = event_journal
                            schema-name = public
                            auto-initialize = on
                            connection-string = """ + DbUtils.ConnectionString + @"""
                            use-bigint-identity-for-ordering-column = on
                        }
                    }
                }
                akka.test.single-expect-default = 10s";

            return(ConfigurationFactory.ParseString(config));
        }
示例#4
0
 public PostgreSqlSnapshotStoreSequentialAccessSpec(ITestOutputHelper output, PostgresFixture fixture)
     : base(Initialize(fixture), "PostgreSqlSnapshotStoreSpec", output: output)
 {
     Initialize();
 }
示例#5
0
 public PostgreSqlSnapshotStoreConnectionFailureSpec(ITestOutputHelper output, PostgresFixture fixture)
     : base(Initialize(fixture, DefaultInvalidConnectionString), output: output)
 {
 }
 public PostgreSqlJournalBigIntSpec(ITestOutputHelper output, PostgresFixture fixture)
     : base(Initialize(fixture), "PostgreSqlJournalBigIntSpec", output)
 {
     Initialize();
 }