mirror of
https://github.com/astaxie/beego.git
synced 2024-12-23 07:30:50 +00:00
orm: add test case for uint pk read or create
This commit is contained in:
parent
3be6688cd1
commit
eaf38bb096
@ -392,6 +392,11 @@ type IntegerPk struct {
|
||||
Value string
|
||||
}
|
||||
|
||||
type UintPk struct {
|
||||
Id uint32 `orm:"pk"`
|
||||
Name string
|
||||
}
|
||||
|
||||
var DBARGS = struct {
|
||||
Driver string
|
||||
Source string
|
||||
|
@ -141,7 +141,7 @@ func (o *orm) ReadOrCreate(md interface{}, col1 string, cols ...string) (bool, i
|
||||
}
|
||||
|
||||
id, vid := int64(0), ind.FieldByIndex(mi.fields.pk.fieldIndex)
|
||||
if mi.fields.pk.fieldType&IsPostiveIntegerField > 0 {
|
||||
if mi.fields.pk.fieldType&IsPositiveIntegerField > 0 {
|
||||
id = int64(vid.Uint())
|
||||
} else {
|
||||
id = vid.Int()
|
||||
|
@ -191,6 +191,7 @@ func TestSyncDb(t *testing.T) {
|
||||
RegisterModel(new(InLine))
|
||||
RegisterModel(new(InLineOneToOne))
|
||||
RegisterModel(new(IntegerPk))
|
||||
RegisterModel(new(UintPk))
|
||||
|
||||
err := RunSyncdb("default", true, Debug)
|
||||
throwFail(t, err)
|
||||
@ -213,6 +214,7 @@ func TestRegisterModels(t *testing.T) {
|
||||
RegisterModel(new(InLine))
|
||||
RegisterModel(new(InLineOneToOne))
|
||||
RegisterModel(new(IntegerPk))
|
||||
RegisterModel(new(UintPk))
|
||||
|
||||
BootStrap()
|
||||
|
||||
@ -2013,3 +2015,26 @@ func TestIntegerPk(t *testing.T) {
|
||||
throwFail(t, AssertIs(out.Value, intPk.Value))
|
||||
}
|
||||
}
|
||||
|
||||
func TestUintPk(t *testing.T) {
|
||||
name := "go"
|
||||
u := &UintPk{
|
||||
Id: 8,
|
||||
Name: name,
|
||||
}
|
||||
|
||||
created, pk, err := dORM.ReadOrCreate(u, "Id")
|
||||
throwFail(t, err)
|
||||
throwFail(t, AssertIs(created, true))
|
||||
throwFail(t, AssertIs(u.Name, name))
|
||||
|
||||
nu := &UintPk{Id: 8}
|
||||
created, pk, err = dORM.ReadOrCreate(nu, "Id")
|
||||
throwFail(t, err)
|
||||
throwFail(t, AssertIs(created, false))
|
||||
throwFail(t, AssertIs(nu.Id, u.Id))
|
||||
throwFail(t, AssertIs(pk, u.Id))
|
||||
throwFail(t, AssertIs(nu.Name, name))
|
||||
|
||||
dORM.Delete(u)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user