mirror of
https://github.com/DATA-DOG/go-sqlmock.git
synced 2025-03-21 21:07:11 +02:00
move tests
This commit is contained in:
parent
8cf05c23ad
commit
4fbf605854
@ -5,9 +5,7 @@ package sqlmock
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"database/sql/driver"
|
|
||||||
"errors"
|
"errors"
|
||||||
"reflect"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -641,83 +639,3 @@ func TestPingExpectationsContextTimeout(t *testing.T) {
|
|||||||
t.Errorf("expected Ping to return after context timeout, but it did not in a timely fashion")
|
t.Errorf("expected Ping to return after context timeout, but it did not in a timely fashion")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type failArgument struct{}
|
|
||||||
|
|
||||||
func (f failArgument) Match(_ driver.Value) bool {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
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()
|
|
||||||
|
|
||||||
mock.ExpectBegin()
|
|
||||||
_, err = mock.(*sqlmock).Exec("", []driver.Value{})
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("error expected")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
expected := NewResult(1, 1)
|
|
||||||
mock.ExpectExec("SELECT (.+) FROM users WHERE (.+)").
|
|
||||||
WillReturnResult(expected).
|
|
||||||
WithArgs("test")
|
|
||||||
|
|
||||||
matchErr := errors.New("matcher sqlmock.failArgument could not match 0 argument driver.NamedValue - {Name: Ordinal:1 Value:{}}")
|
|
||||||
mock.ExpectExec("SELECT (.+) FROM animals WHERE (.+)").
|
|
||||||
WillReturnError(matchErr).
|
|
||||||
WithArgs(failArgument{})
|
|
||||||
|
|
||||||
mock.ExpectExec("").WithArgs(failArgument{})
|
|
||||||
|
|
||||||
mock.(*sqlmock).expected = mock.(*sqlmock).expected[1:]
|
|
||||||
query := "SELECT name, email FROM users WHERE name = ?"
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
failQuery := "SELECT name, sex FROM animals WHERE sex = ?"
|
|
||||||
_, err = mock.(*sqlmock).Exec(failQuery, []driver.Value{failArgument{}})
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("error expected")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
mock.(*sqlmock).ordered = false
|
|
||||||
_, err = mock.(*sqlmock).Exec("", []driver.Value{failArgument{}})
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("error expected")
|
|
||||||
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()
|
|
||||||
_, err = mock.(*sqlmock).Query(query, []driver.Value{failArgument{}})
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("error expected")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1260,3 +1260,83 @@ func Test_sqlmock_Prepare_and_Exec(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type failArgument struct{}
|
||||||
|
|
||||||
|
func (f failArgument) Match(_ driver.Value) bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
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()
|
||||||
|
|
||||||
|
mock.ExpectBegin()
|
||||||
|
_, err = mock.(*sqlmock).Exec("", []driver.Value{})
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("error expected")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
expected := NewResult(1, 1)
|
||||||
|
mock.ExpectExec("SELECT (.+) FROM users WHERE (.+)").
|
||||||
|
WillReturnResult(expected).
|
||||||
|
WithArgs("test")
|
||||||
|
|
||||||
|
matchErr := errors.New("matcher sqlmock.failArgument could not match 0 argument driver.NamedValue - {Name: Ordinal:1 Value:{}}")
|
||||||
|
mock.ExpectExec("SELECT (.+) FROM animals WHERE (.+)").
|
||||||
|
WillReturnError(matchErr).
|
||||||
|
WithArgs(failArgument{})
|
||||||
|
|
||||||
|
mock.ExpectExec("").WithArgs(failArgument{})
|
||||||
|
|
||||||
|
mock.(*sqlmock).expected = mock.(*sqlmock).expected[1:]
|
||||||
|
query := "SELECT name, email FROM users WHERE name = ?"
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
failQuery := "SELECT name, sex FROM animals WHERE sex = ?"
|
||||||
|
_, err = mock.(*sqlmock).Exec(failQuery, []driver.Value{failArgument{}})
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("error expected")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
mock.(*sqlmock).ordered = false
|
||||||
|
_, err = mock.(*sqlmock).Exec("", []driver.Value{failArgument{}})
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("error expected")
|
||||||
|
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()
|
||||||
|
_, err = mock.(*sqlmock).Query(query, []driver.Value{failArgument{}})
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("error expected")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user