From ae219db84b4c36df0f332d9c9ad69d5de6452996 Mon Sep 17 00:00:00 2001 From: Ian Tan Date: Sat, 18 Nov 2017 19:11:21 +0800 Subject: [PATCH] Add method to assert all expectations --- expecter.go | 13 ++++--------- expecter_adapter.go | 5 +++++ expecter_test.go | 5 ++++- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/expecter.go b/expecter.go index a6bb3578..f6153c84 100644 --- a/expecter.go +++ b/expecter.go @@ -16,15 +16,6 @@ func (r *Recorder) Print(args ...interface{}) { if v, ok := msgs[3].(string); ok { r.stmt = v } - // for i, msg := range msgs { - // switch v := msg.(type) { - // case string: - // case []byte: - // r.buf.Read([]byte(v)) - // default: - // return - // } - // } } } @@ -119,6 +110,10 @@ func NewExpecter(fn AdapterFactory, dialect string, args ...interface{}) (*DB, * /* PUBLIC METHODS */ +func (h *Expecter) AssertExpectations() error { + return h.adapter.AssertExpectations() +} + // First triggers a Query func (h *Expecter) First(out interface{}, where ...interface{}) ExpectedQuery { h.gorm.First(out, where) diff --git a/expecter_adapter.go b/expecter_adapter.go index 08b618c8..8e3025db 100644 --- a/expecter_adapter.go +++ b/expecter_adapter.go @@ -26,6 +26,7 @@ func init() { type Adapter interface { ExpectQuery(stmt string) ExpectedQuery ExpectExec(stmt string) ExpectedExec + AssertExpectations() error } // SqlmockAdapter implemenets the Adapter interface using go-sqlmock @@ -56,3 +57,7 @@ func (a *SqlmockAdapter) ExpectExec(stmt string) ExpectedExec { return &SqlmockExec{exec: e} } + +func (a *SqlmockAdapter) AssertExpectations() error { + return a.mocker.ExpectationsWereMet() +} diff --git a/expecter_test.go b/expecter_test.go index eeb24c48..edef7e06 100644 --- a/expecter_test.go +++ b/expecter_test.go @@ -38,6 +38,9 @@ func TestQuery(t *testing.T) { t.Fatal(err) } - expect.First(&User{}).Returns(&User{}) + expect.First(&User{}) + db.First(&User{}) + + expect.AssertExpectations() }