good morning!!!!

Skip to content
Snippets Groups Projects
Commit 6ffcaf70 authored by José Nieto's avatar José Nieto
Browse files

add test for Find

parent 19c9d13d
Branches mockdb-adapter
No related tags found
No related merge requests found
......@@ -104,6 +104,21 @@ func (*collectionAdapter) Find(col sqladapter.Collection, res *sqladapter.Result
return sqladapter.NewErrorResult(db.ErrInvalidCollection)
}
if c.findFn != nil {
expectedQuery := c.db.mock.ExpectQuery("SELECT")
items, err := c.findFn(conds...)
if err != nil {
expectedQuery.WillReturnError(err)
return sqladapter.NewErrorResult(err)
}
rows, err := Rows(items...)
if err != nil {
return sqladapter.NewErrorResult(err)
}
expectedQuery.WillReturnRows(rows)
}
return &MockResult{
res: res,
c: c,
......
......@@ -432,3 +432,38 @@ func TestMockSQL(t *testing.T) {
assert.Equal(t, "pepe", user.FirstName)
}
}
func TestMockCollection(t *testing.T) {
type User struct {
ID int64 `db:"id,omitempty"`
FirstName string `db:"first_name"`
LastName string `db:"last_name"`
}
settings := ConnectionURL{}
sess, err := Open(settings)
assert.NoError(t, err)
assert.NotNil(t, sess.(db.Session))
assert.NotNil(t, sess.(sqladapter.Session))
Mock(sess).
Collection("users").
PrimaryKeys([]string{"id"}).
Get(
func(conds ...interface{}) ([]interface{}, error) {
return []interface{}{
User{
ID: 1,
},
}, nil
},
)
col := sess.Collection("users")
users := []User{}
err = col.Find().All(&users)
assert.NoError(t, err)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment