1 package cloudsql
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestValidationGCP(t *testing.T) {
10 s := GCPPostgresConnection("")
11 assert.Error(t, s.Validate())
12 s = GCPPostgresConnection("tester")
13 assert.Error(t, s.Validate())
14 s = GCPPostgresConnection("tester").DBName("tester")
15 assert.Error(t, s.Validate())
16 s = GCPPostgresConnection("tester").DBName("tester").Username("tester")
17 assert.NoError(t, s.Validate())
18 s = GCPPostgresConnection("tester").DBName("tester").Username("tester")
19 s.host = "hoster"
20 assert.Error(t, s.Validate())
21 }
22
23 func TestValidationPostgres(t *testing.T) {
24 s := PostgresConnection("", "")
25 assert.Error(t, s.Validate())
26 s = PostgresConnection("hoster", "")
27 assert.Error(t, s.Validate())
28 s = PostgresConnection("hoster", "porter")
29 assert.Error(t, s.Validate())
30 s = PostgresConnection("hoster", "porter").DBName("tester")
31 assert.Error(t, s.Validate())
32 s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester")
33 assert.Error(t, s.Validate())
34 s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester")
35 assert.Error(t, s.Validate())
36 s = PostgresConnection("hoster", "porter").DBName("tester").Username("tester").Password("pword")
37 assert.NoError(t, s.Validate())
38 }
39
40 func TestValidateSetsDefaultMaxOpenConns(t *testing.T) {
41 var ep = &EdgePostgres{
42 connectionName: "connectionname",
43 dbName: "dbname",
44 maxOpenConns: 0,
45 username: "username",
46 }
47 assert.Equal(t, 0, ep.maxOpenConns)
48 assert.NoError(t, ep.Validate())
49 assert.Equal(t, DefaultMaxOpenConns, ep.maxOpenConns)
50 }
51
52 func TestConfigurationGCP(t *testing.T) {
53 s := GCPPostgresConnection("tester").DBName("tester").Username("tester")
54 c, err := s.CreateConfig()
55 assert.NoError(t, err)
56 assert.NotNil(t, c.DialFunc)
57 assert.Equal(t, c.User, "tester")
58 assert.Equal(t, c.Database, "tester")
59 assert.NotContains(t, c.ConnString(), "search_path")
60
61 s.SearchPath("abcd")
62 c, err = s.CreateConfig()
63 assert.NoError(t, err)
64 assert.Contains(t, c.ConnString(), "search_path='abcd'")
65 }
66
67 func TestConfigurationPostgres(t *testing.T) {
68 s := PostgresConnection("hoster", "1234").DBName("tester").Username("tester").Password("pword")
69 c, err := s.CreateConfig()
70 assert.NoError(t, err)
71 assert.Equal(t, c.User, "tester")
72 assert.Equal(t, c.Password, "pword")
73 assert.Equal(t, c.Database, "tester")
74 assert.Equal(t, c.Host, "hoster")
75 assert.Equal(t, c.Port, uint16(1234))
76 assert.NotContains(t, c.ConnString(), "search_path")
77
78 s.SearchPath("abcd", "efgh")
79 c, err = s.CreateConfig()
80 assert.NoError(t, err)
81 assert.Contains(t, c.ConnString(), "search_path='abcd, efgh'")
82 }
83
View as plain text