This repository has been archived by the owner on Oct 24, 2024. It is now read-only.
forked from smithoss/gonymizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
db_util_test.go
143 lines (115 loc) · 4.52 KB
/
db_util_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package gonymizer
import (
"testing"
"github.com/stretchr/testify/require"
)
func exampleConfigs() []PGConfig {
return []PGConfig{
// postgres://localhost
// postgres://localhost:5433
// postgres://localhost/mydb
{Host: "localhost"},
{Host: "localhost:5433"},
{Host: "localhost", DefaultDBName: "mydb"},
// postgres://user@localhost
// postgres://user:secret@localhost
{Host: "localhost", Username: "user"},
{Host: "localhost", Username: "user", Pass: "secret"},
// postgres://other@localhost/otherdb?sslmode=disable
// postgres://other@localhost/?sslmode=disable
{Host: "localhost", Username: "other", DefaultDBName: "otherdb", SSLMode: "disable"},
{Host: "localhost", Username: "other", SSLMode: "disable"},
// postgres://other:secret@example.com:123
// postgres://other:secret@example.com:123/?sslmode=disable
{Host: "example.com:123", Username: "other", Pass: "secret"},
{Host: "example.com:123", Username: "other", Pass: "secret", SSLMode: "disable"},
}
}
func TestDSN(t *testing.T) {
fieldsToChecks := []Checker{
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://localhost:5433"},
{Label: "", Expected: "postgres://localhost/mydb"},
{Label: "", Expected: "postgres://user@localhost"},
{Label: "", Expected: "postgres://user:secret@localhost"},
{Label: "", Expected: "postgres://other@localhost/otherdb?sslmode=disable"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other:secret@example.com:123"},
{Label: "", Expected: "postgres://other:secret@example.com:123/?sslmode=disable"},
}
confs := exampleConfigs()
for i := 0; i < len(fieldsToChecks); i++ {
checker := fieldsToChecks[i]
checker.Candidate = confs[i].DSN()
fieldsToChecks[i] = checker
}
CheckAll(t, fieldsToChecks)
}
func TestBaseDSN(t *testing.T) {
fieldsToChecks := []Checker{
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://localhost:5433"},
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://user@localhost"},
{Label: "", Expected: "postgres://user:secret@localhost"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other:secret@example.com:123"},
{Label: "", Expected: "postgres://other:secret@example.com:123/?sslmode=disable"},
}
confs := exampleConfigs()
for i := 0; i < len(fieldsToChecks); i++ {
checker := fieldsToChecks[i]
checker.Candidate = confs[i].BaseDSN()
fieldsToChecks[i] = checker
}
CheckAll(t, fieldsToChecks)
}
func TestURI(t *testing.T) {
fieldsToChecks := []Checker{
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://localhost:5433"},
{Label: "", Expected: "postgres://localhost/mydb"},
{Label: "", Expected: "postgres://user@localhost"},
{Label: "", Expected: "postgres://user:secret@localhost"},
{Label: "", Expected: "postgres://other@localhost/otherdb?sslmode=disable"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other:secret@example.com:123"},
{Label: "", Expected: "postgres://other:secret@example.com:123/?sslmode=disable"},
}
confs := exampleConfigs()
for i := 0; i < len(fieldsToChecks); i++ {
checker := fieldsToChecks[i]
checker.Candidate = confs[i].URI()
fieldsToChecks[i] = checker
}
CheckAll(t, fieldsToChecks)
}
func TestBaseURI(t *testing.T) {
fieldsToChecks := []Checker{
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://localhost:5433"},
{Label: "", Expected: "postgres://localhost"},
{Label: "", Expected: "postgres://user@localhost"},
{Label: "", Expected: "postgres://user:secret@localhost"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other@localhost/?sslmode=disable"},
{Label: "", Expected: "postgres://other:secret@example.com:123"},
{Label: "", Expected: "postgres://other:secret@example.com:123/?sslmode=disable"},
}
confs := exampleConfigs()
for i := 0; i < len(fieldsToChecks); i++ {
checker := fieldsToChecks[i]
checker.Candidate = confs[i].BaseURI()
fieldsToChecks[i] = checker
}
CheckAll(t, fieldsToChecks)
}
func TestOpenDB(t *testing.T) {
conf := GetTestDbConf(TestDb)
dbConn, err := OpenDB(conf)
require.Nil(t, err)
require.NotNil(t, dbConn)
result := dbConn.QueryRow("SELECT count(*) FROM information_schema.columns")
require.NotNil(t, result)
}