diff --git a/orm_test.go b/orm_test.go index 0c9b28bd..946036ac 100644 --- a/orm_test.go +++ b/orm_test.go @@ -3,19 +3,27 @@ package gorm import "testing" type User struct { - Name string Id int64 + Name string } -func getDB() DB { - db, _ := Open("postgres", "user=gorm dbname=gorm sslmode=disable") - return db +var db DB + +func init() { + db, _ = Open("postgres", "user=gorm dbname=gorm sslmode=disable") + db.Exec("drop table users;") } -func TestSaveAndFirst(t *testing.T) { - // create table "users" ("name" varchar(255)); - db := getDB() - u := &User{Name: "jinzhu"} +func TestCreateTable(t *testing.T) { + orm := db.CreateTable(&User{}) + if orm.Error != nil { + t.Errorf("No error should raise when create table, but got %+v", orm.Error) + } +} + +func TestSaveAndFind(t *testing.T) { + name := "save_and_find" + u := &User{Name: name} db.Save(u) if u.Id == 0 { t.Errorf("Should have ID after create record") @@ -23,49 +31,36 @@ func TestSaveAndFirst(t *testing.T) { user := &User{} db.First(user) - if user.Name != "jinzhu" { + if user.Name != name { t.Errorf("User should be saved and fetched correctly") } users := []User{} db.Find(&users) - for _, user := range users { - if user.Name != "jinzhu" { - t.Errorf("User should be saved and fetched correctly") - } - } } func TestWhere(t *testing.T) { - db := getDB() - u := &User{Name: "jinzhu"} - db.Save(u) + name := "where" + db.Save(&User{Name: name}) user := &User{} - db.Where("Name = ?", "jinzhu").First(user) - if user.Name != "jinzhu" { - t.Errorf("Should found out user with name 'jinzhu'") + db.Where("Name = ?", name).First(user) + if user.Name != name { + t.Errorf("Should found out user with name '%v'", name) } user = &User{} - orm := db.Where("Name = ?", "jinzhu-noexisting").First(user) + orm := db.Where("Name = ?", "noexisting-user").First(user) if orm.Error == nil { - t.Errorf("Should return error when looking for unexist record, %+v", user) + t.Errorf("Should return error when looking for none existing record, %+v", user) } - users := &[]User{} - orm = db.Where("Name = ?", "jinzhu-noexisting").First(users) + users := []User{} + orm = db.Where("Name = ?", "none-noexisting").Find(&users) if orm.Error != nil { - t.Errorf("Shouldn't return error when looking for unexist records, %+v", users) - } -} - -func TestCreateTable(t *testing.T) { - db := getDB() - db.Exec("drop table users;") - - orm := db.CreateTable(&User{}) - if orm.Error != nil { - t.Errorf("No error should raise when create table, but got %+v", orm.Error) + t.Errorf("Shouldn't return error when looking for none existing records, %+v", users) + } + if len(users) != 0 { + t.Errorf("Shouldn't find anything when looking for none existing records, %+v", users) } }