104 lines
2.0 KiB
Go
104 lines
2.0 KiB
Go
package xorm
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestPluck(t *testing.T) {
|
|
var err error
|
|
assert.NoError(t, prepareEngine())
|
|
assertSync(t, new(Userinfo))
|
|
_, err = testEngine.Insert([]Userinfo{
|
|
{
|
|
Username: "Lenny",
|
|
},
|
|
{
|
|
Username: "Jimmy",
|
|
},
|
|
{
|
|
Username: "John Wick",
|
|
},
|
|
})
|
|
assert.NoError(t, err)
|
|
var ids []int64
|
|
err = testEngine.Table("userinfo").Alias("u").Pluck("u.id", &ids)
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", ids)
|
|
|
|
err = testEngine.Table("userinfo").Alias("u").Pluck("`u`.`id`", &ids)
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", ids)
|
|
|
|
var names []string
|
|
err = testEngine.Table("userinfo").Pluck("username", &names)
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", names)
|
|
}
|
|
|
|
func TestPluck2(t *testing.T) {
|
|
var err error
|
|
assert.NoError(t, prepareEngine())
|
|
assertSync(t, new(Userinfo))
|
|
_, err = testEngine.Insert([]Userinfo{
|
|
{
|
|
Username: "Lenny",
|
|
},
|
|
{
|
|
Username: "Jimmy",
|
|
},
|
|
{
|
|
Username: "John Wick",
|
|
},
|
|
})
|
|
assert.NoError(t, err)
|
|
var names []string
|
|
err = testEngine.Pluck("username", &names, new(Userinfo))
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", names)
|
|
}
|
|
|
|
func TestPluck3(t *testing.T) {
|
|
var err error
|
|
assert.NoError(t, prepareEngine())
|
|
assertSync(t, new(Userinfo))
|
|
_, err = testEngine.Insert([]Userinfo{
|
|
{
|
|
Username: "Lenny",
|
|
},
|
|
{
|
|
Username: "Jimmy",
|
|
},
|
|
{
|
|
Username: "John Wick",
|
|
},
|
|
})
|
|
assert.NoError(t, err)
|
|
var names []string
|
|
err = testEngine.Table("userinfo").Pluck("username", &names, new(Team))
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", names)
|
|
}
|
|
|
|
func TestPluck4(t *testing.T) {
|
|
var err error
|
|
assert.NoError(t, prepareEngine())
|
|
assertSync(t, new(Userinfo))
|
|
_, err = testEngine.Insert([]Userinfo{
|
|
{
|
|
Username: "Lenny",
|
|
},
|
|
{
|
|
Username: "Jimmy",
|
|
},
|
|
{
|
|
Username: "John Wick",
|
|
},
|
|
})
|
|
assert.NoError(t, err)
|
|
var names []string
|
|
err = testEngine.Table("userinfo").Select("id, username as name").Pluck("name", &names, new(Team))
|
|
assert.NoError(t, err)
|
|
t.Logf("%+v", names)
|
|
}
|