Skip to content

Commit c7cef00

Browse files
committed
Major refactor
1 parent 34666eb commit c7cef00

File tree

2 files changed

+56
-108
lines changed

2 files changed

+56
-108
lines changed

dump.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ DROP TABLE IF EXISTS {{ .NameEsc }};
8484
8585
LOCK TABLES {{ .NameEsc }} WRITE;
8686
/*!40000 ALTER TABLE {{ .Name }} DISABLE KEYS */;
87-
{{- if .Values }}
88-
INSERT INTO {{ .Name }} VALUES
87+
{{- if .Next }}
88+
INSERT INTO {{ .Name }} VALUES {{ .RowValues }}
8989
{{- range .Next -}}
90-
, {{ end -}}{{ .RowValues }}
90+
, {{ .RowValues }}
9191
{{- end -}};
9292
{{- end }}
9393
/*!40000 ALTER TABLE {{ .Name }} ENABLE KEYS */;
@@ -319,7 +319,9 @@ func (table *table) Next() bool {
319319
table.Err = err
320320
return false
321321
}
322-
} else if table.rows.Next() {
322+
}
323+
// Fallthrough
324+
if table.rows.Next() {
323325
if err := table.rows.Scan(table.values...); err != nil {
324326
table.Err = err
325327
return false

dump_test.go

Lines changed: 50 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@ import (
55
"testing"
66

77
sqlmock "github.com/DATA-DOG/go-sqlmock"
8+
"github.com/stretchr/testify/assert"
89
)
910

1011
func TestGetTablesOk(t *testing.T) {
1112
db, mock, err := sqlmock.New()
12-
if err != nil {
13-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
14-
}
15-
13+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
1614
defer db.Close()
1715

1816
rows := sqlmock.NewRows([]string{"Tables_in_Testdb"}).
@@ -26,28 +24,17 @@ func TestGetTablesOk(t *testing.T) {
2624
}
2725

2826
result, err := data.getTables()
29-
if err != nil {
30-
t.Errorf("error was not expected while updating stats: %s", err)
31-
}
27+
assert.NoError(t, err)
3228

3329
// we make sure that all expectations were met
34-
if err := mock.ExpectationsWereMet(); err != nil {
35-
t.Errorf("there were unfulfilled expections: %s", err)
36-
}
37-
38-
expectedResult := []string{"Test_Table_1", "Test_Table_2"}
30+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
3931

40-
if !reflect.DeepEqual(result, expectedResult) {
41-
t.Fatalf("expected %#v, got %#v", result, expectedResult)
42-
}
32+
assert.EqualValues(t, []string{"Test_Table_1", "Test_Table_2"}, result)
4333
}
4434

4535
func TestIgnoreTablesOk(t *testing.T) {
4636
db, mock, err := sqlmock.New()
47-
if err != nil {
48-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
49-
}
50-
37+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
5138
defer db.Close()
5239

5340
rows := sqlmock.NewRows([]string{"Tables_in_Testdb"}).
@@ -62,27 +49,17 @@ func TestIgnoreTablesOk(t *testing.T) {
6249
}
6350

6451
result, err := data.getTables()
65-
if err != nil {
66-
t.Errorf("error was not expected while updating stats: %s", err)
67-
}
52+
assert.NoError(t, err)
6853

6954
// we make sure that all expectations were met
70-
if err := mock.ExpectationsWereMet(); err != nil {
71-
t.Errorf("there were unfulfilled expections: %s", err)
72-
}
73-
74-
expectedResult := []string{"Test_Table_2"}
55+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
7556

76-
if !reflect.DeepEqual(result, expectedResult) {
77-
t.Fatalf("expected %#v, got %#v", result, expectedResult)
78-
}
57+
assert.EqualValues(t, []string{"Test_Table_2"}, result)
7958
}
8059

8160
func TestGetTablesNil(t *testing.T) {
8261
db, mock, err := sqlmock.New()
83-
if err != nil {
84-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
85-
}
62+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
8663

8764
defer db.Close()
8865

@@ -98,27 +75,17 @@ func TestGetTablesNil(t *testing.T) {
9875
}
9976

10077
result, err := data.getTables()
101-
if err != nil {
102-
t.Errorf("error was not expected while updating stats: %s", err)
103-
}
78+
assert.NoError(t, err)
10479

10580
// we make sure that all expectations were met
106-
if err := mock.ExpectationsWereMet(); err != nil {
107-
t.Errorf("there were unfulfilled expections: %s", err)
108-
}
109-
110-
expectedResult := []string{"Test_Table_1", "Test_Table_3"}
81+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
11182

112-
if !reflect.DeepEqual(result, expectedResult) {
113-
t.Fatalf("expected %#v, got %#v", expectedResult, result)
114-
}
83+
assert.EqualValues(t, []string{"Test_Table_1", "Test_Table_3"}, result)
11584
}
11685

11786
func TestGetServerVersionOk(t *testing.T) {
11887
db, mock, err := sqlmock.New()
119-
if err != nil {
120-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
121-
}
88+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
12289

12390
defer db.Close()
12491

@@ -129,28 +96,17 @@ func TestGetServerVersionOk(t *testing.T) {
12996

13097
meta := metaData{}
13198

132-
if err := meta.updateServerVersion(db); err != nil {
133-
t.Errorf("error was not expected while updating stats: %s", err)
134-
}
99+
assert.NoError(t, meta.updateServerVersion(db), "error was not expected while updating stats")
135100

136101
// we make sure that all expectations were met
137-
if err := mock.ExpectationsWereMet(); err != nil {
138-
t.Errorf("there were unfulfilled expections: %s", err)
139-
}
102+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
140103

141-
expectedResult := "test_version"
142-
143-
if !reflect.DeepEqual(meta.ServerVersion, expectedResult) {
144-
t.Fatalf("expected %#v, got %#v", expectedResult, meta.ServerVersion)
145-
}
104+
assert.Equal(t, "test_version", meta.ServerVersion)
146105
}
147106

148107
func TestCreateTableSQLOk(t *testing.T) {
149108
db, mock, err := sqlmock.New()
150-
if err != nil {
151-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
152-
}
153-
109+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
154110
defer db.Close()
155111

156112
rows := sqlmock.NewRows([]string{"Table", "Create Table"}).
@@ -162,16 +118,14 @@ func TestCreateTableSQLOk(t *testing.T) {
162118
Connection: db,
163119
}
164120

165-
result, err := data.createTableSQL("Test_Table")
121+
table, err := data.createTable("Test_Table")
122+
assert.NoError(t, err)
166123

167-
if err != nil {
168-
t.Errorf("error was not expected while updating stats: %s", err)
169-
}
124+
result, err := table.CreateSQL()
125+
assert.NoError(t, err)
170126

171127
// we make sure that all expectations were met
172-
if err := mock.ExpectationsWereMet(); err != nil {
173-
t.Errorf("there were unfulfilled expections: %s", err)
174-
}
128+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
175129

176130
expectedResult := "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1"
177131

@@ -180,12 +134,9 @@ func TestCreateTableSQLOk(t *testing.T) {
180134
}
181135
}
182136

183-
func TestCreateTableValuesOk(t *testing.T) {
137+
func TestCreateTableRowValues(t *testing.T) {
184138
db, mock, err := sqlmock.New()
185-
if err != nil {
186-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
187-
}
188-
139+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
189140
defer db.Close()
190141

191142
rows := sqlmock.NewRows([]string{"id", "email", "name"}).
@@ -198,29 +149,23 @@ func TestCreateTableValuesOk(t *testing.T) {
198149
Connection: db,
199150
}
200151

201-
result, err := data.createTableValues("test")
202-
if err != nil {
203-
t.Errorf("error was not expected while updating stats: %s", err)
204-
}
152+
table, err := data.createTable("test")
153+
assert.NoError(t, err)
205154

206-
// we make sure that all expectations were met
207-
if err := mock.ExpectationsWereMet(); err != nil {
208-
t.Errorf("there were unfulfilled expections: %s", err)
209-
}
155+
assert.True(t, table.Next())
156+
// TODO
157+
result, err := table.RowValues()
158+
assert.NoError(t, err)
210159

211-
expectedResult := []string{"('1','[email protected]','Test Name 1')", "('2','[email protected]','Test Name 2')"}
160+
// we make sure that all expectations were met
161+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
212162

213-
if !reflect.DeepEqual(result, expectedResult) {
214-
t.Fatalf("expected %#v, got %#v", expectedResult, result)
215-
}
163+
assert.EqualValues(t, "('1','[email protected]','Test Name 1')", result)
216164
}
217165

218-
func TestCreateTableValuesNil(t *testing.T) {
166+
func TestCreateTableAllValuesWithNil(t *testing.T) {
219167
db, mock, err := sqlmock.New()
220-
if err != nil {
221-
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
222-
}
223-
168+
assert.NoError(t, err, "an error was not expected when opening a stub database connection")
224169
defer db.Close()
225170

226171
rows := sqlmock.NewRows([]string{"id", "email", "name"}).
@@ -234,21 +179,22 @@ func TestCreateTableValuesNil(t *testing.T) {
234179
Connection: db,
235180
}
236181

237-
result, err := data.createTableValues("test")
238-
if err != nil {
239-
t.Errorf("error was not expected while updating stats: %s", err)
182+
table, err := data.createTable("test")
183+
assert.NoError(t, err)
184+
185+
results := make([]string, 0)
186+
for table.Next() {
187+
row, err := table.RowValues()
188+
assert.NoError(t, err)
189+
results = append(results, row)
240190
}
241191

242192
// we make sure that all expectations were met
243-
if err := mock.ExpectationsWereMet(); err != nil {
244-
t.Errorf("there were unfulfilled expections: %s", err)
245-
}
193+
assert.NoError(t, mock.ExpectationsWereMet(), "there were unfulfilled expections")
246194

247-
expectedResult := []string{"('1',NULL,'Test Name 1')", "('2','[email protected]','Test Name 2')", "('3','','Test Name 3')"}
195+
expectedResults := []string{"('1',NULL,'Test Name 1')", "('2','[email protected]','Test Name 2')", "('3','','Test Name 3')"}
248196

249-
if !reflect.DeepEqual(result, expectedResult) {
250-
t.Fatalf("expected %#v, got %#v", expectedResult, result)
251-
}
197+
assert.EqualValues(t, expectedResults, results)
252198
}
253199

254200
func TestCreateTableOk(t *testing.T) {
@@ -284,9 +230,9 @@ func TestCreateTableOk(t *testing.T) {
284230
}
285231

286232
expectedResult := &table{
287-
Name: "`Test_Table`",
288-
SQL: "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1",
289-
Values: []string{"('1',NULL,'Test Name 1')", "('2','[email protected]','Test Name 2')"},
233+
Name: "`Test_Table`",
234+
// SQL: "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1",
235+
// Values: []string{"('1',NULL,'Test Name 1')", "('2','[email protected]','Test Name 2')"},
290236
}
291237

292238
if !reflect.DeepEqual(result, expectedResult) {

0 commit comments

Comments
 (0)