From 64e0858d445697fe03c0d464d247c002d1869b89 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Tue, 8 Mar 2016 22:24:38 +0800 Subject: [PATCH] orm: add inline struct test case --- orm/models_test.go | 25 ++++++++++++++++++++++++- orm/orm_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/orm/models_test.go b/orm/models_test.go index ee56e8e8..1ff4e53b 100644 --- a/orm/models_test.go +++ b/orm/models_test.go @@ -25,7 +25,6 @@ import ( _ "github.com/go-sql-driver/mysql" _ "github.com/lib/pq" _ "github.com/mattn/go-sqlite3" - // As tidb can't use go get, so disable the tidb testing now // _ "github.com/pingcap/tidb" ) @@ -352,6 +351,30 @@ type GroupPermissions struct { Permission *Permission `orm:"rel(fk)"` } +type ModelID struct { + Id int64 +} + +type ModelBase struct { + ModelID + + Created time.Time `orm:"auto_now_add;type(datetime)"` + Updated time.Time `orm:"auto_now;type(datetime)"` +} + +type InLine struct { + // Common Fields + ModelBase + + // Other Fields + Name string `orm:"unique"` + Email string +} + +func NewInLine() *InLine { + return new(InLine) +} + var DBARGS = struct { Driver string Source string diff --git a/orm/orm_test.go b/orm/orm_test.go index d6f6c7a9..f638fba4 100644 --- a/orm/orm_test.go +++ b/orm/orm_test.go @@ -187,6 +187,7 @@ func TestSyncDb(t *testing.T) { RegisterModel(new(Group)) RegisterModel(new(Permission)) RegisterModel(new(GroupPermissions)) + RegisterModel(new(InLine)) err := RunSyncdb("default", true, Debug) throwFail(t, err) @@ -206,6 +207,7 @@ func TestRegisterModels(t *testing.T) { RegisterModel(new(Group)) RegisterModel(new(Permission)) RegisterModel(new(GroupPermissions)) + RegisterModel(new(InLine)) BootStrap() @@ -1928,3 +1930,25 @@ func TestReadOrCreate(t *testing.T) { dORM.Delete(u) } + +func TestInLine(t *testing.T) { + name := "inline" + email := "hello@go.com" + inline := NewInLine() + inline.Name = name + inline.Email = email + + id, err := dORM.Insert(inline) + throwFail(t, err) + throwFail(t, AssertIs(id, 1)) + + il := NewInLine() + il.Id = 1 + err = dORM.Read(il) + throwFail(t, err) + + throwFail(t, AssertIs(il.Name, name)) + throwFail(t, AssertIs(il.Email, email)) + throwFail(t, AssertIs(il.Created.In(DefaultTimeLoc), inline.Created.In(DefaultTimeLoc), testDate)) + throwFail(t, AssertIs(il.Updated.In(DefaultTimeLoc), inline.Updated.In(DefaultTimeLoc), testDateTime)) +}