mirror of https://github.com/go-gorm/gorm.git
Add test case for one to one relation with customized foreign keys
This commit is contained in:
parent
d87a960248
commit
28d1eb474b
|
@ -3,6 +3,8 @@ package gorm_test
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jinzhu/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CustomizeColumn struct {
|
type CustomizeColumn struct {
|
||||||
|
@ -102,3 +104,38 @@ func TestManyToManyWithCustomizedColumn(t *testing.T) {
|
||||||
t.Errorf("should preload correct accounts")
|
t.Errorf("should preload correct accounts")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CustomizeUser struct {
|
||||||
|
gorm.Model
|
||||||
|
Email string `sql:"column:email_address"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CustomizeInvitation struct {
|
||||||
|
gorm.Model
|
||||||
|
Address string `sql:"column:invitation"`
|
||||||
|
Person *CustomizeUser `gorm:"foreignkey:Email;associationforeignkey:invitation"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestOneToOneWithCustomizedColumn(t *testing.T) {
|
||||||
|
DB.DropTable(&CustomizeUser{}, &CustomizeInvitation{})
|
||||||
|
DB.AutoMigrate(&CustomizeUser{}, &CustomizeInvitation{})
|
||||||
|
|
||||||
|
user := CustomizeUser{
|
||||||
|
Email: "hello@example.com",
|
||||||
|
}
|
||||||
|
invitation := CustomizeInvitation{
|
||||||
|
Address: "hello@example.com",
|
||||||
|
}
|
||||||
|
|
||||||
|
DB.Create(&user)
|
||||||
|
DB.Create(&invitation)
|
||||||
|
|
||||||
|
var invitation2 CustomizeInvitation
|
||||||
|
if err := DB.Preload("Person").Find(&invitation2, invitation.ID).Error; err != nil {
|
||||||
|
t.Errorf("no error should happen, but got %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if invitation2.Person.Email != user.Email {
|
||||||
|
t.Errorf("Should preload one to one relation with customize foreign keys")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue