add more error check on Get (#680)
This commit is contained in:
parent
f43b29056d
commit
fce6d4a34c
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue