-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathadapter_test.go
More file actions
93 lines (85 loc) · 3.97 KB
/
adapter_test.go
File metadata and controls
93 lines (85 loc) · 3.97 KB
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 qb
import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"testing"
)
type AdapterTestSuite struct {
suite.Suite
postgres Adapter
mysql Adapter
sqlite Adapter
def Adapter
}
func (suite *AdapterTestSuite) SetupTest() {
suite.postgres = NewAdapter("postgres")
suite.mysql = NewAdapter("mysql")
suite.sqlite = NewAdapter("sqlite3")
suite.def = NewAdapter("default")
}
func (suite *AdapterTestSuite) TestDefaultAdapter() {
assert.Equal(suite.T(), suite.def.SupportsUnsigned(), false)
assert.Equal(suite.T(), suite.def.AutoIncrement(), "AUTO INCREMENT")
assert.Equal(suite.T(), suite.def.Escape("test"), "test")
assert.Equal(suite.T(), suite.def.Escaping(), false)
suite.def.SetEscaping(true)
assert.Equal(suite.T(), suite.def.Escaping(), true)
assert.Equal(suite.T(), suite.def.Escape("test"), "`test`")
assert.Equal(suite.T(), suite.def.EscapeAll([]string{"test"}), []string{"`test`"})
assert.Equal(suite.T(), suite.def.Placeholder(), "?")
assert.Equal(suite.T(), suite.def.Placeholders(5, 10), []string{"?", "?"})
assert.Equal(suite.T(), suite.def.SupportsInlinePrimaryKey(), false)
assert.Equal(suite.T(), suite.def.Driver(), "")
suite.def.Reset() // does nothing
}
func (suite *AdapterTestSuite) TestMysqlAdapter() {
assert.Equal(suite.T(), suite.mysql.SupportsUnsigned(), true)
assert.Equal(suite.T(), suite.mysql.AutoIncrement(), "AUTO_INCREMENT")
assert.Equal(suite.T(), suite.mysql.Escape("test"), "test")
assert.Equal(suite.T(), suite.mysql.Escaping(), false)
suite.mysql.SetEscaping(true)
assert.Equal(suite.T(), suite.mysql.Escaping(), true)
assert.Equal(suite.T(), suite.mysql.Escape("test"), "`test`")
assert.Equal(suite.T(), suite.mysql.EscapeAll([]string{"test"}), []string{"`test`"})
assert.Equal(suite.T(), suite.mysql.Placeholder(), "?")
assert.Equal(suite.T(), suite.mysql.Placeholders(5, 10), []string{"?", "?"})
assert.Equal(suite.T(), suite.mysql.SupportsInlinePrimaryKey(), false)
assert.Equal(suite.T(), suite.mysql.Driver(), "mysql")
suite.mysql.Reset() // does nothing
}
func (suite *AdapterTestSuite) TestPostgresAdapter() {
assert.Equal(suite.T(), suite.postgres.SupportsUnsigned(), false)
assert.Equal(suite.T(), suite.postgres.AutoIncrement(), "")
assert.Equal(suite.T(), suite.postgres.Escape("test"), "test")
assert.Equal(suite.T(), suite.postgres.Escaping(), false)
suite.postgres.SetEscaping(true)
assert.Equal(suite.T(), suite.postgres.Escaping(), true)
assert.Equal(suite.T(), suite.postgres.Escape("test"), "\"test\"")
assert.Equal(suite.T(), suite.postgres.EscapeAll([]string{"test"}), []string{"\"test\""})
assert.Equal(suite.T(), suite.postgres.Placeholder(), "$1")
assert.Equal(suite.T(), suite.postgres.Placeholder(), "$2")
suite.postgres.Reset()
assert.Equal(suite.T(), suite.postgres.Placeholder(), "$1")
assert.Equal(suite.T(), suite.postgres.Placeholders(5, 10), []string{"$2", "$3"})
assert.Equal(suite.T(), suite.postgres.SupportsInlinePrimaryKey(), true)
assert.Equal(suite.T(), suite.postgres.Driver(), "postgres")
}
func (suite *AdapterTestSuite) TestSqliteAdapter() {
assert.Equal(suite.T(), suite.sqlite.SupportsUnsigned(), false)
assert.Equal(suite.T(), suite.sqlite.AutoIncrement(), "")
//assert.Equal(suite.T(), suite.sqlite.AutoIncrement(), "AUTOINCREMENT")
assert.Equal(suite.T(), suite.sqlite.Escape("test"), "test")
assert.Equal(suite.T(), suite.sqlite.Escaping(), false)
suite.sqlite.SetEscaping(true)
assert.Equal(suite.T(), suite.sqlite.Escaping(), true)
assert.Equal(suite.T(), suite.sqlite.Escape("test"), "test")
assert.Equal(suite.T(), suite.sqlite.EscapeAll([]string{"test"}), []string{"test"})
assert.Equal(suite.T(), suite.sqlite.Placeholder(), "?")
assert.Equal(suite.T(), suite.sqlite.Placeholders(5, 10), []string{"?", "?"})
assert.Equal(suite.T(), suite.sqlite.SupportsInlinePrimaryKey(), true)
assert.Equal(suite.T(), suite.sqlite.Driver(), "sqlite3")
suite.sqlite.Reset() // does nothing
}
func TestAdapterTestSuite(t *testing.T) {
suite.Run(t, new(AdapterTestSuite))
}