Skip to content

Commit ce91e69

Browse files
authored
Merge pull request #4 from arikama/f/3
dont expose fields direct
2 parents de4f469 + 2689251 commit ce91e69

6 files changed

Lines changed: 49 additions & 22 deletions

File tree

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ import (
2828

2929
func Test(t *testing.T) {
3030
mySql, _ := mysqltestcontainer.Create("test")
31-
mySql.Db.Ping()
31+
db := mySql.GetDb()
32+
err := db.Ping()
33+
if err != nil {
34+
log.L.Errorln(err.Error())
35+
}
3236
}
3337
```
3438

mysqltestcontainer/create.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,14 @@ func Create(databaseName string) (*MySql, error) {
4646
}
4747
kifu.Info("MySQL test container started successfully!")
4848
mySql := &MySql{
49-
Db: db,
50-
Username: rootUsername,
51-
Password: rootPassword,
52-
Ip: host,
53-
Port: p,
54-
DbName: databaseName,
49+
db: db,
50+
dbInfo: &DbInfo{
51+
Username: rootUsername,
52+
Password: rootPassword,
53+
Ip: host,
54+
Port: p,
55+
DbName: databaseName,
56+
},
5557
}
5658
return mySql, nil
5759
}

mysqltestcontainer/create_example_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@ package mysqltestcontainer_test
22

33
import (
44
"github.com/arikama/go-mysql-test-container/mysqltestcontainer"
5+
"github.com/containerd/containerd/log"
56
)
67

78
func ExampleCreate() {
89
mySql, _ := mysqltestcontainer.Create("test")
9-
mySql.Db.Ping()
10+
db := mySql.GetDb()
11+
err := db.Ping()
12+
if err != nil {
13+
log.L.Errorln(err.Error())
14+
}
1015
}

mysqltestcontainer/create_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@ func TestCreate(t *testing.T) {
1111
mySql, err := mysqltestcontainer.Create("test")
1212

1313
assert.Nil(t, err)
14-
assert.NotEmpty(t, mySql.Ip)
15-
assert.NotEmpty(t, mySql.Port)
16-
assert.NotEmpty(t, mySql.Username)
17-
assert.NotEmpty(t, mySql.Password)
18-
assert.NotEmpty(t, mySql.DbName)
19-
assert.NotNil(t, mySql.Db)
20-
21-
err = mySql.Db.Ping()
14+
assert.NotNil(t, mySql.GetDb())
15+
16+
dbInfo := mySql.GetDbInfo()
17+
18+
assert.NotEmpty(t, dbInfo.Ip)
19+
assert.NotEmpty(t, dbInfo.Port)
20+
assert.NotEmpty(t, dbInfo.Username)
21+
assert.NotEmpty(t, dbInfo.Password)
22+
assert.NotEmpty(t, dbInfo.DbName)
23+
24+
err = mySql.GetDb().Ping()
2225

2326
assert.Nil(t, err)
2427
}

mysqltestcontainer/info.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package mysqltestcontainer
2+
3+
type DbInfo struct {
4+
Username string
5+
Password string
6+
Ip string
7+
Port string
8+
DbName string
9+
}

mysqltestcontainer/my_sql.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@ package mysqltestcontainer
33
import "database/sql"
44

55
type MySql struct {
6-
Db *sql.DB
7-
Username string
8-
Password string
9-
Ip string
10-
Port string
11-
DbName string
6+
db *sql.DB
7+
dbInfo *DbInfo
8+
}
9+
10+
func (m *MySql) GetDb() *sql.DB {
11+
return m.db
12+
}
13+
14+
func (m *MySql) GetDbInfo() *DbInfo {
15+
return m.dbInfo
1216
}

0 commit comments

Comments
 (0)