From 5505f2ee76d534c788cf56eb305bdd051ea852a2 Mon Sep 17 00:00:00 2001 From: Ian Tan Date: Fri, 17 Nov 2017 17:24:35 +0800 Subject: [PATCH] Remove asserter interface --- expecter_result.go | 44 ++++++++++++++++++++++++++++++++++++++++ test_helper_assserter.go | 35 -------------------------------- 2 files changed, 44 insertions(+), 35 deletions(-) create mode 100644 expecter_result.go delete mode 100644 test_helper_assserter.go diff --git a/expecter_result.go b/expecter_result.go new file mode 100644 index 00000000..d8d60095 --- /dev/null +++ b/expecter_result.go @@ -0,0 +1,44 @@ +package gorm + +import ( + "database/sql/driver" + + sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1" +) + +type ExpectedQuery interface { + Returns(model interface{}) ExpectedQuery +} + +type ExpectedExec interface { + Returns(result driver.Result) ExpectedExec +} + +// SqlmockQuery implements Query for asserter go-sqlmock +type SqlmockQuery struct { + query *sqlmock.ExpectedQuery +} + +func (q *SqlmockQuery) getRowsForOutType(out interface{}) *sqlmock.Rows { + rows := sqlmock.NewRows([]string{"column1", "column2", "column3"}) + rows = rows.AddRow("someval1", "someval2", "someval3") + + return rows +} + +func (q *SqlmockQuery) Returns(out interface{}) ExpectedQuery { + rows := q.getRowsForOutType(out) + q.query = q.query.WillReturnRows(rows) + + return q +} + +type SqlmockExec struct { + exec *sqlmock.ExpectedExec +} + +func (e *SqlmockExec) Returns(result driver.Result) ExpectedExec { + e.exec = e.exec.WillReturnResult(result) + + return e +} diff --git a/test_helper_assserter.go b/test_helper_assserter.go deleted file mode 100644 index 79123b14..00000000 --- a/test_helper_assserter.go +++ /dev/null @@ -1,35 +0,0 @@ -package gorm - -import sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1" - -type Query interface { - Return(model interface{}) Query -} - -type Exec interface { - Return(args ...interface{}) Exec -} - -type Asserter interface { - Query(query string) Query - // Exec(stmt string) Exec -} - -// SqlmockQuery implements Query for asserter go-sqlmock -type SqlmockQuery struct { - query *sqlmock.ExpectedQuery -} - -func (q *SqlmockQuery) getRowsForOutType(out interface{}) *sqlmock.Rows { - rows := sqlmock.NewRows([]string{"column1", "column2", "column3"}) - rows = rows.AddRow("someval1", "someval2", "someval3") - - return rows -} - -func (q *SqlmockQuery) Return(out interface{}) Query { - rows := q.getRowsForOutType(out) - q.query = q.query.WillReturnRows(rows) - - return q -}