@@ -5,9 +5,7 @@ package sqlmock
55import (
66 "context"
77 "database/sql"
8- "database/sql/driver"
98 "errors"
10- "reflect"
119 "testing"
1210 "time"
1311)
@@ -641,83 +639,3 @@ func TestPingExpectationsContextTimeout(t *testing.T) {
641639 t .Errorf ("expected Ping to return after context timeout, but it did not in a timely fashion" )
642640 }
643641}
644-
645- type failArgument struct {}
646-
647- func (f failArgument ) Match (_ driver.Value ) bool {
648- return false
649- }
650-
651- func Test_sqlmock_Exec (t * testing.T ) {
652- db , mock , err := New ()
653- if err != nil {
654- t .Errorf ("an error '%s' was not expected when opening a stub database connection" , err )
655- }
656- defer db .Close ()
657-
658- mock .ExpectBegin ()
659- _ , err = mock .(* sqlmock ).Exec ("" , []driver.Value {})
660- if err == nil {
661- t .Errorf ("error expected" )
662- return
663- }
664-
665- expected := NewResult (1 , 1 )
666- mock .ExpectExec ("SELECT (.+) FROM users WHERE (.+)" ).
667- WillReturnResult (expected ).
668- WithArgs ("test" )
669-
670- matchErr := errors .New ("matcher sqlmock.failArgument could not match 0 argument driver.NamedValue - {Name: Ordinal:1 Value:{}}" )
671- mock .ExpectExec ("SELECT (.+) FROM animals WHERE (.+)" ).
672- WillReturnError (matchErr ).
673- WithArgs (failArgument {})
674-
675- mock .ExpectExec ("" ).WithArgs (failArgument {})
676-
677- mock .(* sqlmock ).expected = mock .(* sqlmock ).expected [1 :]
678- query := "SELECT name, email FROM users WHERE name = ?"
679- result , err := mock .(* sqlmock ).Exec (query , []driver.Value {"test" })
680- if err != nil {
681- t .Error (err )
682- return
683- }
684- if ! reflect .DeepEqual (result , expected ) {
685- t .Errorf ("Results are not equal. Expected: %v, Actual: %v" , expected , result )
686- return
687- }
688-
689- failQuery := "SELECT name, sex FROM animals WHERE sex = ?"
690- _ , err = mock .(* sqlmock ).Exec (failQuery , []driver.Value {failArgument {}})
691- if err == nil {
692- t .Errorf ("error expected" )
693- return
694- }
695- mock .(* sqlmock ).ordered = false
696- _ , err = mock .(* sqlmock ).Exec ("" , []driver.Value {failArgument {}})
697- if err == nil {
698- t .Errorf ("error expected" )
699- return
700- }
701- }
702-
703- func Test_sqlmock_Query (t * testing.T ) {
704- db , mock , err := New ()
705- if err != nil {
706- t .Errorf ("an error '%s' was not expected when opening a stub database connection" , err )
707- }
708- defer db .Close ()
709- expectedRows := mock .NewRows ([]string {"id" , "name" , "email" }).AddRow (1 , "test" , "test@example.com" )
710- mock .ExpectQuery ("SELECT (.+) FROM users WHERE (.+)" ).WillReturnRows (expectedRows )
711- query := "SELECT name, email FROM users WHERE name = ?"
712- rows , err := mock .(* sqlmock ).Query (query , []driver.Value {"test" })
713- if err != nil {
714- t .Error (err )
715- return
716- }
717- defer rows .Close ()
718- _ , err = mock .(* sqlmock ).Query (query , []driver.Value {failArgument {}})
719- if err == nil {
720- t .Errorf ("error expected" )
721- return
722- }
723- }
0 commit comments