fix: delete the json test, because the process way of json are different of mysql and postgres
This commit is contained in:
parent
1ad2d97df9
commit
e939bffcae
@ -1,23 +0,0 @@
|
||||
package tests_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gorm.io/gorm/utils/tests"
|
||||
. "gorm.io/gorm/utils/tests"
|
||||
)
|
||||
|
||||
func TestInterface(t *testing.T) {
|
||||
vehicleWrite := &tests.Vehicle{Meta: &tests.MotorMeta{Power: "electric"}}
|
||||
|
||||
if err := DB.Create(vehicleWrite).Error; err != nil {
|
||||
t.Fatalf("fail to create region %v", err)
|
||||
}
|
||||
|
||||
vehicleRead := &tests.Vehicle{Meta: &tests.MotorMeta{}}
|
||||
if err := DB.Debug().First(vehicleRead, "id = ?", vehicleWrite.ID).Error; err != nil {
|
||||
t.Fatalf("fail to find vehicle %v", err)
|
||||
} else {
|
||||
AssertEqual(t, vehicleWrite.Meta.(*tests.MotorMeta).Power, vehicleRead.Meta.(*tests.MotorMeta).Power)
|
||||
}
|
||||
}
|
@ -108,7 +108,7 @@ func OpenTestConnection() (db *gorm.DB, err error) {
|
||||
|
||||
func RunMigrations() {
|
||||
var err error
|
||||
allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}, &Coupon{}, &CouponProduct{}, &Order{}, &Parent{}, &Child{}, &Vehicle{Meta: &MotorMeta{}}}
|
||||
allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}, &Coupon{}, &CouponProduct{}, &Order{}, &Parent{}, &Child{}}
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
rand.Shuffle(len(allModels), func(i, j int) { allModels[i], allModels[j] = allModels[j], allModels[i] })
|
||||
|
||||
|
@ -2,10 +2,6 @@ package tests
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
@ -98,62 +94,3 @@ type Child struct {
|
||||
ParentID *uint
|
||||
Parent *Parent
|
||||
}
|
||||
|
||||
type Meta interface {
|
||||
Scan(src interface{}) error
|
||||
Value() (driver.Value, error)
|
||||
GormDataType() string
|
||||
}
|
||||
type MotorMeta struct {
|
||||
Power string
|
||||
}
|
||||
|
||||
func (meta *MotorMeta) Scan(src interface{}) error {
|
||||
bytes, ok := src.([]byte)
|
||||
if !ok {
|
||||
return errors.New(fmt.Sprint("Failed to unmarshal JSON value:", src))
|
||||
}
|
||||
result := MotorMeta{}
|
||||
err := json.Unmarshal(bytes, &result)
|
||||
*meta = result
|
||||
return err
|
||||
}
|
||||
func (meta *MotorMeta) Value() (driver.Value, error) {
|
||||
if meta == nil {
|
||||
return nil, nil
|
||||
}
|
||||
res, err := json.Marshal(meta)
|
||||
return string(res), err
|
||||
}
|
||||
func (MotorMeta) GormDataType() string {
|
||||
return "json"
|
||||
}
|
||||
|
||||
type ManualMeta struct {
|
||||
}
|
||||
|
||||
func (meta *ManualMeta) Scan(src interface{}) error {
|
||||
bytes, ok := src.([]byte)
|
||||
if !ok {
|
||||
return errors.New(fmt.Sprint("Failed to unmarshal JSON value:", src))
|
||||
}
|
||||
result := ManualMeta{}
|
||||
err := json.Unmarshal(bytes, &result)
|
||||
*meta = result
|
||||
return err
|
||||
}
|
||||
func (meta *ManualMeta) Value() (driver.Value, error) {
|
||||
if meta == nil {
|
||||
return nil, nil
|
||||
}
|
||||
res, err := json.Marshal(meta)
|
||||
return string(res), err
|
||||
}
|
||||
func (ManualMeta) GormDataType() string {
|
||||
return "json"
|
||||
}
|
||||
|
||||
type Vehicle struct {
|
||||
gorm.Model
|
||||
Meta Meta
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user