-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpostgres_test.go
93 lines (78 loc) · 2.17 KB
/
postgres_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
package postgres
import (
"database/sql"
"fmt"
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
type PostgresSetupTestSuite struct {
suite.Suite
client *sql.DB
databaseUrl string
}
// Create Table for running test
func (suite *PostgresSetupTestSuite) BeforeTest(suiteName, testName string) {
var err error
suite.databaseUrl = fmt.Sprintf(
"postgresql://%s:%s@%s:%s/%s?sslmode=disable",
os.Getenv("POSTGRES_USER"),
os.Getenv("POSTGRES_PASSWORD"),
os.Getenv("POSTGRES_HOST"),
os.Getenv("POSTGRES_PORT"),
os.Getenv("POSTGRES_DB"),
)
if suite.client, err = sql.Open("postgres", suite.databaseUrl); err != nil {
suite.T().Error(err)
}
if _, err := suite.client.Query("CREATE TABLE test (test_field TEXT)"); err != nil {
suite.T().Error(err)
}
}
// Delete Table after test
func (suite *PostgresSetupTestSuite) AfterTest(suiteName, testName string) {
if _, err := suite.client.Query("DROP TABLE test"); err != nil {
suite.T().Error(err)
}
}
func (suite *PostgresSetupTestSuite) TestPostgresName() {
newPostgres := storage{}
assert.Equal(suite.T(), "postgres", newPostgres.Name())
}
func (suite *PostgresSetupTestSuite) TestPostgresNewStorage() {
_, err := NewStorage(map[string]interface{}{
"databaseUrl": []int{1},
})
assert.Error(suite.T(), err)
_, err = NewStorage(map[string]interface{}{
"databaseUrl": suite.databaseUrl,
"tableName": "test",
"dataField": "test_field",
})
assert.NoError(suite.T(), err)
}
func (suite *PostgresSetupTestSuite) TestPostgresPush() {
newClient, _ := NewStorage(map[string]interface{}{
"databaseUrl": suite.databaseUrl,
"tableName": "Not Exist",
"dataField": "Not exist",
})
err := newClient.Push("Hello")
assert.Error(suite.T(), err)
newClient, err = NewStorage(map[string]interface{}{
"databaseUrl": suite.databaseUrl,
"tableName": "test",
"dataField": "test_field",
})
assert.NoError(suite.T(), err)
err = newClient.Push("Hello")
assert.NoError(suite.T(), err)
}
func TestRunPostgresPush(t *testing.T) {
if testing.Short() {
t.Skip("postgresql testing is skiped in short version of test")
return
}
suite.Run(t, new(PostgresSetupTestSuite))
}