forked from mirror/gorm
Test empty struct
This commit is contained in:
parent
536e4d34b0
commit
1e7eb12cba
|
@ -153,6 +153,7 @@ func CreateWithReturning(db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if rows.Next() {
|
if rows.Next() {
|
||||||
|
db.RowsAffected++
|
||||||
err = rows.Scan(values...)
|
err = rows.Scan(values...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,13 @@ func (dialector Dialector) ClauseBuilders() map[string]clause.ClauseBuilder {
|
||||||
c.Build(builder)
|
c.Build(builder)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"VALUES": func(c clause.Clause, builder clause.Builder) {
|
||||||
|
if values, ok := c.Expression.(clause.Values); ok && len(values.Columns) == 0 {
|
||||||
|
builder.WriteString("VALUES()")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.Build(builder)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
func TestCreate(t *testing.T) {
|
func TestCreate(t *testing.T) {
|
||||||
var user = *GetUser("create", Config{})
|
var user = *GetUser("create", Config{})
|
||||||
|
|
||||||
if err := DB.Create(&user).Error; err != nil {
|
if results := DB.Create(&user); results.Error != nil {
|
||||||
t.Fatalf("errors happened when create: %v", err)
|
t.Fatalf("errors happened when create: %v", results.Error)
|
||||||
|
} else if results.RowsAffected != 1 {
|
||||||
|
t.Fatalf("rows affected expects: %v, got %v", 1, results.RowsAffected)
|
||||||
}
|
}
|
||||||
|
|
||||||
if user.ID == 0 {
|
if user.ID == 0 {
|
||||||
|
@ -68,8 +70,10 @@ func TestBulkCreateWithAssociations(t *testing.T) {
|
||||||
*GetUser("bulk_8", Config{Account: false, Pets: 0, Toys: 0, Company: false, Manager: false, Team: 0, Languages: 0, Friends: 0}),
|
*GetUser("bulk_8", Config{Account: false, Pets: 0, Toys: 0, Company: false, Manager: false, Team: 0, Languages: 0, Friends: 0}),
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := DB.Create(&users).Error; err != nil {
|
if results := DB.Create(&users); results.Error != nil {
|
||||||
t.Fatalf("errors happened when create: %v", err)
|
t.Fatalf("errors happened when create: %v", results.Error)
|
||||||
|
} else if results.RowsAffected != int64(len(users)) {
|
||||||
|
t.Fatalf("rows affected expects: %v, got %v", len(users), results.RowsAffected)
|
||||||
}
|
}
|
||||||
|
|
||||||
var userIDs []uint
|
var userIDs []uint
|
||||||
|
@ -182,3 +186,18 @@ func TestPolymorphicHasOne(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreateEmptyStrut(t *testing.T) {
|
||||||
|
type EmptyStruct struct {
|
||||||
|
ID uint
|
||||||
|
}
|
||||||
|
DB.Migrator().DropTable(&EmptyStruct{})
|
||||||
|
|
||||||
|
if err := DB.AutoMigrate(&EmptyStruct{}); err != nil {
|
||||||
|
t.Errorf("no error should happen when auto migrate, but got %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := DB.Create(&EmptyStruct{}).Error; err != nil {
|
||||||
|
t.Errorf("No error should happen when creating user, but got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue