func (w *PostgresDbConnectionTestSuite) Test_ConnectionString(c *gocheck.C) { dbConnBlank, _ := baseDbConnection.ComposeDbConnection("", PostgresDbConnection{}) fullConnectionString := "dbname=" + testDBName + " user="******" password="******" host=" + testDBHost + " port=" + testDBPort + " sslmode=disable" c.Assert(dbConnBlank.ConnectionString(), gocheck.Equals, "host=localhost port=5432 sslmode=disable") c.Assert(dbConnTest.ConnectionString(), gocheck.Equals, fullConnectionString) }
func CreateTestDB() *baseDbConnection.DbConnection { databaseName := dbConnTest.GenerateRandomDatabaseName() newDbUrl := strings.Replace(strings.Replace(testDBUrl, "/"+testDBName, "/"+databaseName, -1), "schema=control", "schema=public", -1) dbConnTest.CreateDatabase(databaseName) dbConnNew, _ := baseDbConnection.ComposeDbConnection(newDbUrl, PostgresDbConnection{}) return dbConnNew }
// Not a big fan of this pattern, but that's what you get for not supporting // package level reflection, Golang!! func New(databaseUrl string) (*DbConnection, error) { var err error var dbc *baseDbConnection.DbConnection if strings.HasPrefix(databaseUrl, "postgres://") { dbc, err = baseDbConnection.ComposeDbConnection(databaseUrl, postgresdbconnection.PostgresDbConnection{}) } else if strings.HasPrefix(databaseUrl, "testdb://") { dbc, err = baseDbConnection.ComposeDbConnection(databaseUrl, testDbConnection.TestDbConnection{}) } else { return nil, errors.New("Invalid URL or adapter has not yet been implemented") } if err != nil { return nil, err } return &DbConnection{*dbc}, nil }
func (w *PostgresDbConnectionTestSuite) SetUpSuite(c *gocheck.C) { testDBUser = os.Getenv("TEST_POSTGRES_DB_CONNECTION_USER") testDBPassword = os.Getenv("TEST_POSTGRES_DB_CONNECTION_PASSWORD") testDBName = os.Getenv("TEST_POSTGRES_DB_CONNECTION_DBNAME") testDBHost = os.Getenv("TEST_POSTGRES_DB_CONNECTION_HOST") testDBPort = os.Getenv("TEST_POSTGRES_DB_CONNECTION_PORT") testDBUrl = "postgres://" + testDBUser + ":" + testDBPassword + "@" + testDBHost + ":" + testDBPort + "/" + testDBName + "?schema=control&connect_timeout=20&sslmode=disable" dbConnTest, _ = baseDbConnection.ComposeDbConnection(testDBUrl, PostgresDbConnection{}) }
func (w *PostgresDbConnectionTestSuite) Test_CreateDropDatabase(c *gocheck.C) { dbConnNew := CreateTestDB() dbConnNew.Connect() c.Assert(dbConnNew.IsOpen(), gocheck.Equals, true) dbConnNew.Close() dbConnTest.DropDatabase(dbConnNew.DBName) dbConnNew, _ = baseDbConnection.ComposeDbConnection(dbConnNew.URL.String(), PostgresDbConnection{}) c.Assert(dbConnNew.IsOpen(), gocheck.Equals, false) }