From 5dc976bc43ce0fb61497ed7129392acf36dd61fb Mon Sep 17 00:00:00 2001 From: Nikita Koryabkin Date: Tue, 3 Dec 2019 13:46:20 +0300 Subject: [PATCH] added tests --- sqlmock_go18_test.go | 42 ++++++++++++++++++++++++++++++++++++++++++ sqlmock_test.go | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/sqlmock_go18_test.go b/sqlmock_go18_test.go index 223e076..6080afa 100644 --- a/sqlmock_go18_test.go +++ b/sqlmock_go18_test.go @@ -5,7 +5,9 @@ package sqlmock import ( "context" "database/sql" + "database/sql/driver" "errors" + "reflect" "testing" "time" ) @@ -639,3 +641,43 @@ func TestPingExpectationsContextTimeout(t *testing.T) { t.Errorf("expected Ping to return after context timeout, but it did not in a timely fashion") } } + +func Test_sqlmock_Exec(t *testing.T) { + db, mock, err := New() + if err != nil { + t.Errorf("an error '%s' was not expected when opening a stub database connection", err) + } + defer db.Close() + query := "SELECT name, email FROM users WHERE name = ?" + + expected := NewResult(1, 1) + mock.ExpectExec("SELECT (.+) FROM users WHERE (.+)"). + WillReturnResult(expected) + + result, err := mock.(*sqlmock).Exec(query, []driver.Value{"test"}) + if err != nil { + t.Error(err) + return + } + if !reflect.DeepEqual(result, expected) { + t.Errorf("Results are not equal. Expected: %v, Actual: %v", expected, result) + return + } +} + +func Test_sqlmock_Query(t *testing.T) { + db, mock, err := New() + if err != nil { + t.Errorf("an error '%s' was not expected when opening a stub database connection", err) + } + defer db.Close() + expectedRows := mock.NewRows([]string{"id", "name", "email"}).AddRow(1, "test", "test@example.com") + mock.ExpectQuery("SELECT (.+) FROM users WHERE (.+)").WillReturnRows(expectedRows) + query := "SELECT name, email FROM users WHERE name = ?" + rows, err := mock.(*sqlmock).Query(query, []driver.Value{"test"}) + if err != nil { + t.Error(err) + return + } + defer rows.Close() +} diff --git a/sqlmock_test.go b/sqlmock_test.go index 7af77a2..97775df 100644 --- a/sqlmock_test.go +++ b/sqlmock_test.go @@ -1250,7 +1250,7 @@ func Test_sqlmock_Prepare_and_Exec(t *testing.T) { return } if !reflect.DeepEqual(result, expected) { - t.Errorf("Eesults not equal. Expected: %v, Actual: %v", expected, result) + t.Errorf("Results are not equal. Expected: %v, Actual: %v", expected, result) return } rows, err := got.Query([]driver.Value{"test"})