package cloudsql import ( "testing" "github.com/stretchr/testify/assert" ) func TestValidationGCP(t *testing.T) { s := GCPPostgresConnection("") assert.Error(t, s.Validate()) s = GCPPostgresConnection("tester") assert.Error(t, s.Validate()) s = GCPPostgresConnection("tester").DBName("tester") assert.Error(t, s.Validate()) s = GCPPostgresConnection("tester").DBName("tester").Username("tester") assert.NoError(t, s.Validate()) s = GCPPostgresConnection("tester").DBName("tester").Username("tester") s.host = "hoster" assert.Error(t, s.Validate()) } func TestValidationPostgres(t *testing.T) { s := PostgresConnection("", "") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "porter") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "porter").DBName("tester") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester") assert.Error(t, s.Validate()) s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester").Password("pword") assert.NoError(t, s.Validate()) } func TestValidateSetsDefaultMaxOpenConns(t *testing.T) { var ep = &EdgePostgres{ connectionName: "connectionname", dbName: "dbname", maxOpenConns: 0, username: "username", } assert.Equal(t, 0, ep.maxOpenConns) assert.NoError(t, ep.Validate()) assert.Equal(t, DefaultMaxOpenConns, ep.maxOpenConns) } func TestConfigurationGCP(t *testing.T) { s := GCPPostgresConnection("tester").DBName("tester").Username("tester") c, err := s.CreateConfig() assert.NoError(t, err) assert.NotNil(t, c.DialFunc) assert.Equal(t, c.User, "tester") assert.Equal(t, c.Database, "tester") assert.NotContains(t, c.ConnString(), "search_path") s.SearchPath("abcd") c, err = s.CreateConfig() assert.NoError(t, err) assert.Contains(t, c.ConnString(), "search_path='abcd'") } func TestConfigurationPostgres(t *testing.T) { s := PostgresConnection("hoster", "1234").DBName("tester").Username("tester").Password("pword") c, err := s.CreateConfig() assert.NoError(t, err) assert.Equal(t, c.User, "tester") assert.Equal(t, c.Password, "pword") assert.Equal(t, c.Database, "tester") assert.Equal(t, c.Host, "hoster") assert.Equal(t, c.Port, uint16(1234)) assert.NotContains(t, c.ConnString(), "search_path") s.SearchPath("abcd", "efgh") c, err = s.CreateConfig() assert.NoError(t, err) assert.Contains(t, c.ConnString(), "search_path='abcd, efgh'") }