-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker_test.go
86 lines (65 loc) · 1.71 KB
/
docker_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
package sqlite
import (
"testing"
"github.com/stretchr/testify/suite"
)
type DockerTestSuite struct {
suite.Suite
database string
docker *Docker
}
func TestDockerTestSuite(t *testing.T) {
suite.Run(t, new(DockerTestSuite))
}
func (s *DockerTestSuite) SetupTest() {
s.database = "goravel"
s.docker = NewDocker(s.database)
}
func (s *DockerTestSuite) Test_Build_Config_AddData_Fresh_Shutdown() {
s.Nil(s.docker.Build())
instance, err := s.docker.connect()
s.Nil(err)
s.NotNil(instance)
s.Equal(s.database, s.docker.Config().Database)
res := instance.Exec(`
CREATE TABLE users (
id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
name varchar(255) NOT NULL
);
`)
s.Nil(res.Error)
res = instance.Exec(`
INSERT INTO users (name) VALUES ('goravel');
`)
s.Nil(res.Error)
s.Equal(int64(1), res.RowsAffected)
var count int64
res = instance.Raw("SELECT count(*) FROM sqlite_master WHERE type='table' and name = 'users';").Scan(&count)
s.Nil(res.Error)
s.Equal(int64(1), count)
s.Nil(s.docker.Fresh())
instance, err = s.docker.connect()
s.Nil(err)
s.NotNil(instance)
res = instance.Raw("SELECT count(*) FROM sqlite_master WHERE type='table' and name = 'users';").Scan(&count)
s.Nil(res.Error)
s.Equal(int64(0), count)
databaseDriver, err := s.docker.Database("another")
s.NoError(err)
s.NotNil(databaseDriver)
s.NoError(s.docker.Shutdown())
s.NoError(databaseDriver.Shutdown())
}
func (s *DockerTestSuite) TestDatabase() {
s.Nil(s.docker.Build())
_, err := s.docker.connect()
s.Nil(err)
docker, err := s.docker.Database("another")
s.Nil(err)
s.NotNil(docker)
dockerImpl := docker.(*Docker)
_, err = dockerImpl.connect()
s.Nil(err)
s.NoError(s.docker.Shutdown())
s.NoError(docker.Shutdown())
}