Skip to content

Commit

Permalink
add more error check on Get
Browse files Browse the repository at this point in the history
  • Loading branch information
xormplus committed Aug 7, 2017
1 parent fce0c12 commit 74ad440
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
4 changes: 3 additions & 1 deletion session_get.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ func (session *Session) Get(bean interface{}) (bool, error) {

beanValue := reflect.ValueOf(bean)
if beanValue.Kind() != reflect.Ptr {
return false, errors.New("needs a pointer")
return false, errors.New("needs a pointer to a value")
} else if beanValue.Elem().Kind() == reflect.Ptr {
return false, errors.New("a pointer to a pointer is not allowed")
}

if beanValue.Elem().Kind() == reflect.Struct {
Expand Down
20 changes: 20 additions & 0 deletions session_get_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,23 @@ func TestGetSlice(t *testing.T) {
assert.False(t, has)
assert.Error(t, err)
}

func TestGetError(t *testing.T) {
assert.NoError(t, prepareEngine())

type GetError struct {
Uid int `xorm:"pk autoincr"`
IsMan bool
}

assertSync(t, new(GetError))

var info = new(GetError)
has, err := testEngine.Get(&info)
assert.False(t, has)
assert.Error(t, err)

has, err = testEngine.Get(info)
assert.False(t, has)
assert.NoError(t, err)
}

0 comments on commit 74ad440

Please sign in to comment.