Add test for composite key with auto-increment.

This commit is contained in:
truongns 2023-03-08 18:09:44 +09:00
parent a6e90777e3
commit 414f34b00d
2 changed files with 30 additions and 1 deletions

View File

@ -318,5 +318,4 @@ func TestCompositePrimaryKeyWithAutoIncrement(t *testing.T) {
f.Updatable = true f.Updatable = true
f.Readable = true f.Readable = true
}) })
} }

View File

@ -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")
}
}