Add test for composite key with auto-increment.
This commit is contained in:
parent
a6e90777e3
commit
414f34b00d
@ -318,5 +318,4 @@ func TestCompositePrimaryKeyWithAutoIncrement(t *testing.T) {
|
|||||||
f.Updatable = true
|
f.Updatable = true
|
||||||
f.Readable = true
|
f.Readable = true
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -547,3 +547,33 @@ func TestFirstOrCreateRowsAffected(t *testing.T) {
|
|||||||
t.Fatalf("first or create rows affect err:%v rows:%d", res.Error, res.RowsAffected)
|
t.Fatalf("first or create rows affect err:%v rows:%d", res.Error, res.RowsAffected)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreateWithAutoIncrementCompositeKey(t *testing.T) {
|
||||||
|
type CompositeKeyProduct struct {
|
||||||
|
ProductID int `gorm:"primaryKey;autoIncrement:true;"` // primary key
|
||||||
|
LanguageCode int `gorm:"primaryKey;"` // primary key
|
||||||
|
Code string
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
err := DB.Migrator().DropTable(&CompositeKeyProduct{})
|
||||||
|
if err = DB.AutoMigrate(&CompositeKeyProduct{}); err != nil {
|
||||||
|
t.Fatalf("failed to migrate, got error %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
prod := &CompositeKeyProduct{
|
||||||
|
LanguageCode: 56,
|
||||||
|
Code: "Code56",
|
||||||
|
Name: "ProductName56",
|
||||||
|
}
|
||||||
|
if err := DB.Create(&prod).Error; err != nil {
|
||||||
|
t.Fatalf("failed to create, got error %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
newProd := &CompositeKeyProduct{}
|
||||||
|
if err := DB.First(&newProd).Error; err != nil {
|
||||||
|
t.Fatalf("errors happened when query: %v", err)
|
||||||
|
} else {
|
||||||
|
AssertObjEqual(t, newProd, prod, "ProductID", "LanguageCode", "Code", "Name")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user