46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
|
|
package mysql
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/davecgh/go-spew/spew"
|
||
|
|
"github.com/go-jet/jet/internal/testutils"
|
||
|
|
. "github.com/go-jet/jet/mysql"
|
||
|
|
"gotest.tools/assert"
|
||
|
|
"reflect"
|
||
|
|
|
||
|
|
"github.com/go-jet/jet/tests/.gentestdata/sakila/model"
|
||
|
|
. "github.com/go-jet/jet/tests/.gentestdata/sakila/table"
|
||
|
|
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSelect_ScanToStruct(t *testing.T) {
|
||
|
|
expectedSQL := `
|
||
|
|
SELECT DISTINCT actor.actor_id AS "actor.actor_id",
|
||
|
|
actor.first_name AS "actor.first_name",
|
||
|
|
actor.last_name AS "actor.last_name",
|
||
|
|
actor.last_update AS "actor.last_update"
|
||
|
|
FROM sakila.actor
|
||
|
|
WHERE actor.actor_id = 1;
|
||
|
|
`
|
||
|
|
spew.Dump(reflect.TypeOf(db.Driver()).String())
|
||
|
|
|
||
|
|
query := Actor.
|
||
|
|
SELECT(Actor.AllColumns).
|
||
|
|
DISTINCT().
|
||
|
|
WHERE(Actor.ActorID.EQ(Int(1)))
|
||
|
|
|
||
|
|
testutils.AssertStatementSql(t, query, expectedSQL, int64(1))
|
||
|
|
|
||
|
|
actor := model.Actor{}
|
||
|
|
err := query.Query(db, &actor)
|
||
|
|
|
||
|
|
assert.NilError(t, err)
|
||
|
|
|
||
|
|
assert.DeepEqual(t, actor, model.Actor{
|
||
|
|
ActorID: 1,
|
||
|
|
FirstName: "PENELOPE",
|
||
|
|
LastName: "GUINESS",
|
||
|
|
LastUpdate: *testutils.TimestampWithoutTimeZone("2006-02-15 04:34:33", 2),
|
||
|
|
})
|
||
|
|
}
|