mirror of https://github.com/go-gorm/gorm.git
Test Pluck with customized type
This commit is contained in:
parent
c10f807d3c
commit
a7f01bd1b2
18
tests/go.mod
18
tests/go.mod
|
@ -1,6 +1,6 @@
|
||||||
module gorm.io/gorm/tests
|
module gorm.io/gorm/tests
|
||||||
|
|
||||||
go 1.16
|
go 1.18
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/google/uuid v1.3.0
|
github.com/google/uuid v1.3.0
|
||||||
|
@ -10,7 +10,21 @@ require (
|
||||||
gorm.io/driver/postgres v1.5.3-0.20230607070428-18bc84b75196
|
gorm.io/driver/postgres v1.5.3-0.20230607070428-18bc84b75196
|
||||||
gorm.io/driver/sqlite v1.5.2
|
gorm.io/driver/sqlite v1.5.2
|
||||||
gorm.io/driver/sqlserver v1.5.2-0.20230613072041-6e2cde390b0a
|
gorm.io/driver/sqlserver v1.5.2-0.20230613072041-6e2cde390b0a
|
||||||
gorm.io/gorm v1.25.2-0.20230610234218-206613868439
|
gorm.io/gorm v1.25.2
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/go-sql-driver/mysql v1.7.1 // indirect
|
||||||
|
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
|
||||||
|
github.com/golang-sql/sqlexp v0.1.0 // indirect
|
||||||
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
||||||
|
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
||||||
|
github.com/jackc/pgx/v5 v5.4.2 // indirect
|
||||||
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.17 // indirect
|
||||||
|
github.com/microsoft/go-mssqldb v1.4.0 // indirect
|
||||||
|
golang.org/x/crypto v0.11.0 // indirect
|
||||||
|
golang.org/x/text v0.11.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace gorm.io/gorm => ../
|
replace gorm.io/gorm => ../
|
||||||
|
|
|
@ -2,6 +2,7 @@ package tests_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"database/sql/driver"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
@ -658,6 +659,18 @@ func TestOrWithAllFields(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Int64 int64
|
||||||
|
|
||||||
|
func (v Int64) Value() (driver.Value, error) {
|
||||||
|
return v - 1, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *Int64) Scan(v interface{}) error {
|
||||||
|
y := v.(int64)
|
||||||
|
*f = Int64(y + 1)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func TestPluck(t *testing.T) {
|
func TestPluck(t *testing.T) {
|
||||||
users := []*User{
|
users := []*User{
|
||||||
GetUser("pluck-user1", Config{}),
|
GetUser("pluck-user1", Config{}),
|
||||||
|
@ -685,6 +698,11 @@ func TestPluck(t *testing.T) {
|
||||||
t.Errorf("got error when pluck id: %v", err)
|
t.Errorf("got error when pluck id: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ids2 []Int64
|
||||||
|
if err := DB.Model(User{}).Where("name like ?", "pluck-user%").Pluck("id", &ids2).Error; err != nil {
|
||||||
|
t.Errorf("got error when pluck id: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
for idx, name := range names {
|
for idx, name := range names {
|
||||||
if name != users[idx].Name {
|
if name != users[idx].Name {
|
||||||
t.Errorf("Unexpected result on pluck name, got %+v", names)
|
t.Errorf("Unexpected result on pluck name, got %+v", names)
|
||||||
|
@ -697,6 +715,12 @@ func TestPluck(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for idx, id := range ids2 {
|
||||||
|
if int(id) != int(users[idx].ID+1) {
|
||||||
|
t.Errorf("Unexpected result on pluck id, got %+v", ids)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var times []time.Time
|
var times []time.Time
|
||||||
if err := DB.Model(User{}).Where("name like ?", "pluck-user%").Pluck("created_at", ×).Error; err != nil {
|
if err := DB.Model(User{}).Where("name like ?", "pluck-user%").Pluck("created_at", ×).Error; err != nil {
|
||||||
t.Errorf("got error when pluck time: %v", err)
|
t.Errorf("got error when pluck time: %v", err)
|
||||||
|
|
Loading…
Reference in New Issue