mirror of
https://github.com/astaxie/beego.git
synced 2024-11-25 22:31:28 +00:00
Merge pull request #1790 from miraclesu/feature/orm_inline_struct
orm: inline struct relate test case
This commit is contained in:
commit
e4066d820d
@ -375,6 +375,18 @@ func NewInLine() *InLine {
|
|||||||
return new(InLine)
|
return new(InLine)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type InLineOneToOne struct {
|
||||||
|
// Common Fields
|
||||||
|
ModelBase
|
||||||
|
|
||||||
|
Note string
|
||||||
|
InLine *InLine `orm:"rel(fk);column(inline)"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewInLineOneToOne() *InLineOneToOne {
|
||||||
|
return new(InLineOneToOne)
|
||||||
|
}
|
||||||
|
|
||||||
var DBARGS = struct {
|
var DBARGS = struct {
|
||||||
Driver string
|
Driver string
|
||||||
Source string
|
Source string
|
||||||
|
@ -188,6 +188,7 @@ func TestSyncDb(t *testing.T) {
|
|||||||
RegisterModel(new(Permission))
|
RegisterModel(new(Permission))
|
||||||
RegisterModel(new(GroupPermissions))
|
RegisterModel(new(GroupPermissions))
|
||||||
RegisterModel(new(InLine))
|
RegisterModel(new(InLine))
|
||||||
|
RegisterModel(new(InLineOneToOne))
|
||||||
|
|
||||||
err := RunSyncdb("default", true, Debug)
|
err := RunSyncdb("default", true, Debug)
|
||||||
throwFail(t, err)
|
throwFail(t, err)
|
||||||
@ -208,6 +209,7 @@ func TestRegisterModels(t *testing.T) {
|
|||||||
RegisterModel(new(Permission))
|
RegisterModel(new(Permission))
|
||||||
RegisterModel(new(GroupPermissions))
|
RegisterModel(new(GroupPermissions))
|
||||||
RegisterModel(new(InLine))
|
RegisterModel(new(InLine))
|
||||||
|
RegisterModel(new(InLineOneToOne))
|
||||||
|
|
||||||
BootStrap()
|
BootStrap()
|
||||||
|
|
||||||
@ -1952,3 +1954,40 @@ func TestInLine(t *testing.T) {
|
|||||||
throwFail(t, AssertIs(il.Created.In(DefaultTimeLoc), inline.Created.In(DefaultTimeLoc), testDate))
|
throwFail(t, AssertIs(il.Created.In(DefaultTimeLoc), inline.Created.In(DefaultTimeLoc), testDate))
|
||||||
throwFail(t, AssertIs(il.Updated.In(DefaultTimeLoc), inline.Updated.In(DefaultTimeLoc), testDateTime))
|
throwFail(t, AssertIs(il.Updated.In(DefaultTimeLoc), inline.Updated.In(DefaultTimeLoc), testDateTime))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInLineOneToOne(t *testing.T) {
|
||||||
|
name := "121"
|
||||||
|
email := "121@go.com"
|
||||||
|
inline := NewInLine()
|
||||||
|
inline.Name = name
|
||||||
|
inline.Email = email
|
||||||
|
|
||||||
|
id, err := dORM.Insert(inline)
|
||||||
|
throwFail(t, err)
|
||||||
|
throwFail(t, AssertIs(id, 2))
|
||||||
|
|
||||||
|
note := "one2one"
|
||||||
|
il121 := NewInLineOneToOne()
|
||||||
|
il121.Note = note
|
||||||
|
il121.InLine = inline
|
||||||
|
_, err = dORM.Insert(il121)
|
||||||
|
throwFail(t, err)
|
||||||
|
throwFail(t, AssertIs(il121.ID, 1))
|
||||||
|
|
||||||
|
il := NewInLineOneToOne()
|
||||||
|
err = dORM.QueryTable(il).Filter("Id", 1).RelatedSel().One(il)
|
||||||
|
|
||||||
|
throwFail(t, err)
|
||||||
|
throwFail(t, AssertIs(il.Note, note))
|
||||||
|
throwFail(t, AssertIs(il.InLine.ID, id))
|
||||||
|
throwFail(t, AssertIs(il.InLine.Name, name))
|
||||||
|
throwFail(t, AssertIs(il.InLine.Email, email))
|
||||||
|
|
||||||
|
rinline := NewInLine()
|
||||||
|
err = dORM.QueryTable(rinline).Filter("InLineOneToOne__Id", 1).One(rinline)
|
||||||
|
|
||||||
|
throwFail(t, err)
|
||||||
|
throwFail(t, AssertIs(rinline.ID, id))
|
||||||
|
throwFail(t, AssertIs(rinline.Name, name))
|
||||||
|
throwFail(t, AssertIs(rinline.Email, email))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user