From 1d3b96d3ee5496652100f925fdee255e8a5245fd Mon Sep 17 00:00:00 2001 From: Andrew Moon Date: Fri, 28 Aug 2015 12:45:49 -0500 Subject: [PATCH] Updated to use the lastest version of github.com/DATA-DOG/go-sqlmock. --- HISTORY.md | 8 ++ crud_exec.go | 4 +- crud_exec_test.go | 42 +++++----- database_test.go | 170 ++++++++++++++++++++-------------------- dataset.go | 2 +- dataset_actions_test.go | 86 ++++++++++---------- dataset_delete_test.go | 8 +- dataset_insert_test.go | 14 ++-- dataset_update_test.go | 8 +- example_test.go | 4 +- 10 files changed, 177 insertions(+), 169 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 4d0af85d..9a936f1e 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,11 @@ +## v3.1.0 + +* Version 3.1 [#14](https://github.com/doug-martin/goqu/pull/14) - [@andymoon](https://github.com/andymoon) + * Fix an issue with a nil pointer access on the inserts and updates. + * Allowing ScanStructs to take a struct with an embedded pointer to a struct. + * Change to check if struct is Anonymous when recursing through an embedded struct. + * Updated to use the lastest version of github.com/DATA-DOG/go-sqlmock. + ## v3.0.1 * Add literal bytes and update to c2fo testify [#15](https://github.com/doug-martin/goqu/pull/15) - [@TechnotronicOz](https://github.com/TechnotronicOz) diff --git a/crud_exec.go b/crud_exec.go index 6b0dfbe9..605bd7c5 100644 --- a/crud_exec.go +++ b/crud_exec.go @@ -220,7 +220,7 @@ func assignVals(i interface{}, results []Record, cm columnMap) error { val := reflect.Indirect(reflect.ValueOf(i)) t, _, isSliceOfPointers := getTypeInfo(i, val) switch val.Kind() { - case reflect.Struct: + case reflect.Struct: result := results[0] for name, data := range cm { src, ok := result[name] @@ -234,7 +234,7 @@ func assignVals(i interface{}, results []Record, cm columnMap) error { } } } - case reflect.Slice: + case reflect.Slice: for _, result := range results { row := reflect.Indirect(reflect.New(t)) initEmbeddedPtr(row) diff --git a/crud_exec_test.go b/crud_exec_test.go index 1eba025b..30d43fe7 100644 --- a/crud_exec_test.go +++ b/crud_exec_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" "github.com/c2fo/testify/suite" ) @@ -31,7 +31,7 @@ type crudExecTest struct { func (me *crudExecTest) TestWithError() { t := me.T() - mDb, err := sqlmock.New() + mDb, _, err := sqlmock.New() assert.NoError(t, err) db := New("db-mock", mDb) expectedErr := fmt.Errorf("crud exec error") @@ -51,29 +51,29 @@ func (me *crudExecTest) TestWithError() { func (me *crudExecTest) TestScanStructs() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WillReturnError(fmt.Errorf("query error")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name", "phone_number", "age"}).FromCSVString("111 Test Addr,Test1,111-111-1111,20\n211 Test Addr,Test2,222-222-2222,30")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name", "phone_number", "age"}).FromCSVString("111 Test Addr,Test1,111-111-1111,20\n211 Test Addr,Test2,222-222-2222,30")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) @@ -141,21 +141,21 @@ func (me *crudExecTest) TestScanStructs() { func (me *crudExecTest) TestScanStruct() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WillReturnError(fmt.Errorf("query error")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name", "phone_number", "age"}).FromCSVString("111 Test Addr,Test1,111-111-1111,20")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) @@ -199,17 +199,17 @@ func (me *crudExecTest) TestScanStruct() { func (me *crudExecTest) TestScanVals() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WillReturnError(fmt.Errorf("query error")) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2")) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2")) @@ -234,13 +234,13 @@ func (me *crudExecTest) TestScanVals() { func (me *crudExecTest) TestScanVal() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WillReturnError(fmt.Errorf("query error")) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1")) diff --git a/database_test.go b/database_test.go index 9c5876a2..5439eb54 100644 --- a/database_test.go +++ b/database_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" "github.com/c2fo/testify/suite" ) @@ -32,13 +32,13 @@ type databaseTest struct { func (me *databaseTest) TestLogger() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). + mock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). WithArgs(1). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -59,13 +59,13 @@ func (me *databaseTest) TestLogger() { func (me *databaseTest) TestScanStructs() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items"`). + mock.ExpectQuery(`SELECT "test" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -87,13 +87,13 @@ func (me *databaseTest) TestScanStructs() { func (me *databaseTest) TestScanStruct() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT \* FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -115,9 +115,9 @@ func (me *databaseTest) TestScanStruct() { func (me *databaseTest) TestScanVals() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2\n3\n4\n5")) @@ -132,9 +132,9 @@ func (me *databaseTest) TestScanVals() { func (me *databaseTest) TestScanVal() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("10")) @@ -153,13 +153,13 @@ func (me *databaseTest) TestScanVal() { func (me *databaseTest) TestExec() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). + mock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). WithArgs(). WillReturnResult(sqlmock.NewResult(0, 0)) - sqlmock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). + mock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). WithArgs(). WillReturnError(NewGoquError("mock error")) @@ -172,13 +172,13 @@ func (me *databaseTest) TestExec() { func (me *databaseTest) TestQuery() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnError(NewGoquError("mock error")) @@ -192,13 +192,13 @@ func (me *databaseTest) TestQuery() { func (me *databaseTest) TestQueryRow() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnError(NewGoquError("mock error")) @@ -214,9 +214,9 @@ func (me *databaseTest) TestQueryRow() { func (me *databaseTest) TestPrepare() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectPrepare() + mock.ExpectPrepare("SELECT * FROM test WHERE id = ?") db := New("mock", mDb) stmt, err := db.Prepare("SELECT * FROM test WHERE id = ?") assert.NoError(t, err) @@ -225,10 +225,10 @@ func (me *databaseTest) TestPrepare() { func (me *databaseTest) TestBegin() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectBegin().WillReturnError(NewGoquError("transaction error")) + mock.ExpectBegin() + mock.ExpectBegin().WillReturnError(NewGoquError("transaction error")) db := New("mock", mDb) tx, err := db.Begin() assert.NoError(t, err) @@ -248,17 +248,17 @@ type txDatabaseTest struct { func (me *txDatabaseTest) TestLogger() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). + mock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). WithArgs(1). WillReturnResult(sqlmock.NewResult(0, 0)) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("db-mock", mDb).Begin() assert.NoError(t, err) @@ -278,17 +278,17 @@ func (me *txDatabaseTest) TestLogger() { func (me *txDatabaseTest) TestLogger_FromDb() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). + mock.ExpectExec(`SELECT \* FROM "items" WHERE "id" = ?`). WithArgs(1). WillReturnResult(sqlmock.NewResult(0, 0)) - sqlmock.ExpectCommit() + mock.ExpectCommit() db := New("db-mock", mDb) logger := new(dbTestMockLogger) @@ -310,10 +310,10 @@ func (me *txDatabaseTest) TestLogger_FromDb() { func (me *txDatabaseTest) TestCommit() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectCommit() + mock.ExpectBegin() + mock.ExpectCommit() db := New("mock", mDb) tx, err := db.Begin() assert.NoError(t, err) @@ -322,10 +322,10 @@ func (me *txDatabaseTest) TestCommit() { func (me *txDatabaseTest) TestRollback() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectRollback() + mock.ExpectBegin() + mock.ExpectRollback() db := New("mock", mDb) tx, err := db.Begin() assert.NoError(t, err) @@ -334,10 +334,10 @@ func (me *txDatabaseTest) TestRollback() { func (me *txDatabaseTest) TestFrom() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectCommit() + mock.ExpectBegin() + mock.ExpectCommit() db := New("mock", mDb) tx, err := db.Begin() assert.NoError(t, err) @@ -347,17 +347,17 @@ func (me *txDatabaseTest) TestFrom() { func (me *txDatabaseTest) TestScanStructs() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items"`). + mock.ExpectQuery(`SELECT "test" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("db-mock", mDb).Begin() assert.NoError(t, err) var items []testActionItem @@ -378,17 +378,17 @@ func (me *txDatabaseTest) TestScanStructs() { func (me *txDatabaseTest) TestScanStruct() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items" LIMIT 1`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) var item testActionItem @@ -409,13 +409,13 @@ func (me *txDatabaseTest) TestScanStruct() { func (me *txDatabaseTest) TestScanVals() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2\n3\n4\n5")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) var ids []uint32 @@ -429,13 +429,13 @@ func (me *txDatabaseTest) TestScanVals() { func (me *txDatabaseTest) TestScanVal() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("10")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) var id int64 @@ -453,17 +453,17 @@ func (me *txDatabaseTest) TestScanVal() { func (me *txDatabaseTest) TestExec() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). + mock.ExpectBegin() + mock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). WithArgs(). WillReturnResult(sqlmock.NewResult(0, 0)) - sqlmock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). + mock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). WithArgs(). WillReturnError(NewGoquError("mock error")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) _, err = tx.Exec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE ("name" IS NULL)`) @@ -475,17 +475,17 @@ func (me *txDatabaseTest) TestExec() { func (me *txDatabaseTest) TestQuery() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnError(NewGoquError("mock error")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) _, err = tx.Query(`SELECT * FROM "items"`) @@ -498,17 +498,17 @@ func (me *txDatabaseTest) TestQuery() { func (me *txDatabaseTest) TestQueryRow() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectBegin() + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT \* FROM "items"`). + mock.ExpectQuery(`SELECT \* FROM "items"`). WithArgs(). WillReturnError(NewGoquError("mock error")) - sqlmock.ExpectCommit() + mock.ExpectCommit() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) rows := tx.QueryRow(`SELECT * FROM "items"`) @@ -523,12 +523,12 @@ func (me *txDatabaseTest) TestQueryRow() { func (me *txDatabaseTest) TestWrap() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectBegin() - sqlmock.ExpectCommit() - sqlmock.ExpectBegin() - sqlmock.ExpectRollback() + mock.ExpectBegin() + mock.ExpectCommit() + mock.ExpectBegin() + mock.ExpectRollback() tx, err := New("mock", mDb).Begin() assert.NoError(t, err) assert.NoError(t, tx.Wrap(func() error { diff --git a/dataset.go b/dataset.go index 7d12ab3b..4c144a06 100644 --- a/dataset.go +++ b/dataset.go @@ -288,4 +288,4 @@ func (me *Dataset) expressionSql(buf *SqlBuilder, expression Expression) error { return me.adapter.ExpressionOrMapSql(buf, e) } return NewGoquError("Unsupported expression type %T", expression) -} \ No newline at end of file +} diff --git a/dataset_actions_test.go b/dataset_actions_test.go index 20a95c63..fd9dace2 100644 --- a/dataset_actions_test.go +++ b/dataset_actions_test.go @@ -1,7 +1,7 @@ package goqu import ( - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" ) @@ -12,17 +12,17 @@ type dsTestActionItem struct { func (me *datasetTest) TestScanStructs() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "address", "name" FROM "items"`). + mock.ExpectQuery(`SELECT "address", "name" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT DISTINCT "name" FROM "items"`). + mock.ExpectQuery(`SELECT DISTINCT "name" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items"`). + mock.ExpectQuery(`SELECT "test" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -53,13 +53,13 @@ func (me *datasetTest) TestScanStructs() { func (me *datasetTest) TestScanStructs_WithPreparedStatements() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "address", "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectQuery(`SELECT "address", "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy"). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1\n211 Test Addr,Test2")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectQuery(`SELECT "test" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy"). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -85,17 +85,17 @@ func (me *datasetTest) TestScanStructs_WithPreparedStatements() { func (me *datasetTest) TestScanStruct() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "address", "name" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT "address", "name" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT DISTINCT "name" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT DISTINCT "name" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT "test" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -124,13 +124,13 @@ func (me *datasetTest) TestScanStruct() { func (me *datasetTest) TestScanStruct_WithPreparedStatements() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "address", "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT \?`). + mock.ExpectQuery(`SELECT "address", "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT \?`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy", 1). WillReturnRows(sqlmock.NewRows([]string{"address", "name"}).FromCSVString("111 Test Addr,Test1")) - sqlmock.ExpectQuery(`SELECT "test" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT \?`). + mock.ExpectQuery(`SELECT "test" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT \?`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy", 1). WillReturnRows(sqlmock.NewRows([]string{"test"}).FromCSVString("test1\ntest2")) @@ -156,9 +156,9 @@ func (me *datasetTest) TestScanStruct_WithPreparedStatements() { func (me *datasetTest) TestScanVals() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items"`). + mock.ExpectQuery(`SELECT "id" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2\n3\n4\n5")) @@ -173,9 +173,9 @@ func (me *datasetTest) TestScanVals() { func (me *datasetTest) TestScanVals_WithPreparedStatment() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectQuery(`SELECT "id" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy"). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("1\n2\n3\n4\n5")) @@ -194,9 +194,9 @@ func (me *datasetTest) TestScanVals_WithPreparedStatment() { func (me *datasetTest) TestScanVal() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items" LIMIT 1`). + mock.ExpectQuery(`SELECT "id" FROM "items" LIMIT 1`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("10")) @@ -215,9 +215,9 @@ func (me *datasetTest) TestScanVal() { func (me *datasetTest) TestScanVal_WithPreparedStatement() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "id" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT ?`). + mock.ExpectQuery(`SELECT "id" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\) LIMIT ?`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy", 1). WillReturnRows(sqlmock.NewRows([]string{"id"}).FromCSVString("10")) @@ -240,9 +240,9 @@ func (me *datasetTest) TestScanVal_WithPreparedStatement() { func (me *datasetTest) TestCount() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT COUNT\(\*\) AS "count" FROM "items"`). + mock.ExpectQuery(`SELECT COUNT\(\*\) AS "count" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"count"}).FromCSVString("10")) @@ -254,9 +254,9 @@ func (me *datasetTest) TestCount() { func (me *datasetTest) TestCount_WithPreparedStatement() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT COUNT\(\*\) AS "count" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectQuery(`SELECT COUNT\(\*\) AS "count" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy", 1). WillReturnRows(sqlmock.NewRows([]string{"count"}).FromCSVString("10")) @@ -271,9 +271,9 @@ func (me *datasetTest) TestCount_WithPreparedStatement() { func (me *datasetTest) TestPluck() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "name" FROM "items"`). + mock.ExpectQuery(`SELECT "name" FROM "items"`). WithArgs(). WillReturnRows(sqlmock.NewRows([]string{"name"}).FromCSVString("test1\ntest2\ntest3\ntest4\ntest5")) @@ -285,9 +285,9 @@ func (me *datasetTest) TestPluck() { func (me *datasetTest) TestPluck_WithPreparedStatement() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectQuery(`SELECT "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectQuery(`SELECT "name" FROM "items" WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("111 Test Addr", "Bob", "Sally", "Billy"). WillReturnRows(sqlmock.NewRows([]string{"name"}).FromCSVString("Bob\nSally\nBilly")) @@ -302,9 +302,9 @@ func (me *datasetTest) TestPluck_WithPreparedStatement() { func (me *datasetTest) TestUpdate() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). + mock.ExpectExec(`UPDATE "items" SET "address"='111 Test Addr',"name"='Test1' WHERE \("name" IS NULL\)`). WithArgs(). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -315,9 +315,9 @@ func (me *datasetTest) TestUpdate() { func (me *datasetTest) TestUpdate_WithPreparedStatement() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`UPDATE "items" SET "address"=\?,"name"=\? WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). + mock.ExpectExec(`UPDATE "items" SET "address"=\?,"name"=\? WHERE \(\("address" = \?\) AND \("name" IN \(\?, \?, \?\)\)\)`). WithArgs("112 Test Addr", "Test1", "111 Test Addr", "Bob", "Sally", "Billy"). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -332,9 +332,9 @@ func (me *datasetTest) TestUpdate_WithPreparedStatement() { func (me *datasetTest) TestInsert() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`INSERT INTO "items" \("address", "name"\) VALUES \('111 Test Addr', 'Test1'\)`). + mock.ExpectExec(`INSERT INTO "items" \("address", "name"\) VALUES \('111 Test Addr', 'Test1'\)`). WithArgs(). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -345,9 +345,9 @@ func (me *datasetTest) TestInsert() { func (me *datasetTest) TestInsert_WithPreparedStatment() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`INSERT INTO "items" \("address", "name"\) VALUES \(\?, \?\), \(\?, \?\)`). + mock.ExpectExec(`INSERT INTO "items" \("address", "name"\) VALUES \(\?, \?\), \(\?, \?\)`). WithArgs("111 Test Addr", "Test1", "112 Test Addr", "Test2"). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -364,9 +364,9 @@ func (me *datasetTest) TestInsert_WithPreparedStatment() { func (me *datasetTest) TestDelete() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`DELETE FROM "items" WHERE \("id" > 10\)`). + mock.ExpectExec(`DELETE FROM "items" WHERE \("id" > 10\)`). WithArgs(). WillReturnResult(sqlmock.NewResult(0, 0)) @@ -377,9 +377,9 @@ func (me *datasetTest) TestDelete() { func (me *datasetTest) TestDelete_WithPreparedStatment() { t := me.T() - mDb, err := sqlmock.New() + mDb, mock, err := sqlmock.New() assert.NoError(t, err) - sqlmock.ExpectExec(`DELETE FROM "items" WHERE \("id" > \?\)`). + mock.ExpectExec(`DELETE FROM "items" WHERE \("id" > \?\)`). WithArgs(10). WillReturnResult(sqlmock.NewResult(0, 0)) diff --git a/dataset_delete_test.go b/dataset_delete_test.go index 3f4105a9..7efd5eb1 100644 --- a/dataset_delete_test.go +++ b/dataset_delete_test.go @@ -1,13 +1,13 @@ package goqu import ( - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" ) func (me *datasetTest) TestDeleteSqlNoReturning() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("no-return", mDb).From("items") type item struct { Address string `db:"address"` @@ -19,7 +19,7 @@ func (me *datasetTest) TestDeleteSqlNoReturning() { func (me *datasetTest) TestDeleteSqlWithLimit() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("limit", mDb).From("items") sql, _, err := ds1.Limit(10).ToDeleteSql() assert.Nil(t, err) @@ -28,7 +28,7 @@ func (me *datasetTest) TestDeleteSqlWithLimit() { func (me *datasetTest) TestDeleteSqlWithOrder() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("order", mDb).From("items") sql, _, err := ds1.Order(I("name").Desc()).ToDeleteSql() assert.Nil(t, err) diff --git a/dataset_insert_test.go b/dataset_insert_test.go index b187889f..2c6a2a8c 100644 --- a/dataset_insert_test.go +++ b/dataset_insert_test.go @@ -1,7 +1,7 @@ package goqu import ( - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" "database/sql" @@ -10,7 +10,7 @@ import ( func (me *datasetTest) TestInsertSqlNoReturning() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("no-return", mDb).From("items") type item struct { Address string `db:"address"` @@ -25,7 +25,7 @@ func (me *datasetTest) TestInsertSqlNoReturning() { func (me *datasetTest) TestInsert_InvalidValue() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("no-return", mDb).From("items") type item struct { Address string `db:"address"` @@ -148,10 +148,10 @@ func (me *datasetTest) TestInsertSqlWithValuerNull() { assert.Equal(t, sqlString, `INSERT INTO "items" ("address", "name", "valuer") VALUES ('111 Test Addr', 'Test', NULL)`) sqlString, _, err = ds1.ToInsertSql( - item{Address: "111 Test Addr", Name: "Test1"}, - item{Address: "211 Test Addr", Name: "Test2"}, - item{Address: "311 Test Addr", Name: "Test3"}, - item{Address: "411 Test Addr", Name: "Test4"}, + item{Address: "111 Test Addr", Name: "Test1"}, + item{Address: "211 Test Addr", Name: "Test2"}, + item{Address: "311 Test Addr", Name: "Test3"}, + item{Address: "411 Test Addr", Name: "Test4"}, ) assert.NoError(t, err) assert.Equal(t, sqlString, `INSERT INTO "items" ("address", "name", "valuer") VALUES ('111 Test Addr', 'Test1', NULL), ('211 Test Addr', 'Test2', NULL), ('311 Test Addr', 'Test3', NULL), ('411 Test Addr', 'Test4', NULL)`) diff --git a/dataset_update_test.go b/dataset_update_test.go index 2e24eef3..94b8863e 100644 --- a/dataset_update_test.go +++ b/dataset_update_test.go @@ -6,7 +6,7 @@ import ( "fmt" "time" - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "github.com/c2fo/testify/assert" ) @@ -23,7 +23,7 @@ func (me *datasetTest) TestUpdateSqlWithNoSources() { func (me *datasetTest) TestUpdateSqlNoReturning() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("no-return", mDb).From("items") type item struct { Address string `db:"address"` @@ -35,7 +35,7 @@ func (me *datasetTest) TestUpdateSqlNoReturning() { func (me *datasetTest) TestUpdateSqlWithLimit() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("limit", mDb).From("items") type item struct { Address string `db:"address"` @@ -48,7 +48,7 @@ func (me *datasetTest) TestUpdateSqlWithLimit() { func (me *datasetTest) TestUpdateSqlWithOrder() { t := me.T() - mDb, _ := sqlmock.New() + mDb, _, _ := sqlmock.New() ds1 := New("order", mDb).From("items") type item struct { Address string `db:"address"` diff --git a/example_test.go b/example_test.go index 63b7d51e..a82c85fd 100644 --- a/example_test.go +++ b/example_test.go @@ -5,14 +5,14 @@ import ( "fmt" "regexp" - "github.com/DATA-DOG/go-sqlmock" + "gopkg.in/DATA-DOG/go-sqlmock.v1" "gopkg.in/doug-martin/goqu.v3" ) var driver *sql.DB func init() { - db, _ := sqlmock.New() + db, _, _ := sqlmock.New() driver = db }