add FindPtr for belongs_to

This commit is contained in:
Lunny Xiao 2017-04-04 12:39:48 +08:00
parent c68711d9a5
commit 590bb1015b
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
1 changed files with 51 additions and 0 deletions

View File

@ -165,3 +165,54 @@ func TestBelongsTo_Find(t *testing.T) {
assert.Equal(t, "face1", noses2[0].Face.Name)
assert.Equal(t, "face2", noses2[1].Face.Name)
}
func TestBelongsTo_FindPtr(t *testing.T) {
assert.NoError(t, prepareEngine())
type Face struct {
Id int64
Name string
}
type Nose struct {
Id int64
Face *Face `xorm:"belongs_to"`
}
err := testEngine.Sync2(new(Nose), new(Face))
assert.NoError(t, err)
var face1 = Face{
Name: "face1",
}
var face2 = Face{
Name: "face2",
}
_, err = testEngine.Insert(&face1, &face2)
assert.NoError(t, err)
var noses = []Nose{
{Face: &face1},
{Face: &face2},
}
_, err = testEngine.Insert(&noses)
assert.NoError(t, err)
var noses1 []Nose
err = testEngine.Find(&noses1)
assert.NoError(t, err)
assert.Equal(t, 2, len(noses1))
assert.Equal(t, face1.Id, noses1[0].Face.Id)
assert.Equal(t, face2.Id, noses1[1].Face.Id)
assert.Equal(t, "", noses1[0].Face.Name)
assert.Equal(t, "", noses1[1].Face.Name)
var noses2 []Nose
err = testEngine.Cascade().Find(&noses2)
assert.NoError(t, err)
assert.Equal(t, 2, len(noses2))
assert.Equal(t, face1.Id, noses2[0].Face.Id)
assert.Equal(t, face2.Id, noses2[1].Face.Id)
assert.Equal(t, "face1", noses2[0].Face.Name)
assert.Equal(t, "face2", noses2[1].Face.Name)
}