WIP: Insert sets PK

This commit is contained in:
2026-05-23 20:19:25 +02:00
parent 890151b490
commit 5d892a15ef
6 changed files with 59 additions and 54 deletions
+9 -9
View File
@@ -61,7 +61,7 @@ func TestInsertAndSelectSingle(t *testing.T) {
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestInsertAndSelectSingle setup failed: %s", err)
t.Fail()
@@ -118,7 +118,7 @@ func TestInsertSelectWithCompositePk(t *testing.T) {
testObj := TestWithCompositePk{ID: 12, Name: "Test"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[TestWithCompositePk](orm, testObj)
if err != nil {
log.LogError("TestInsertSelectWithCompositePk setup failed: %s", err)
t.Fail()
@@ -176,14 +176,14 @@ func TestInsertMultipleAndSelectWithParam(t *testing.T) {
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
testObjSecond := Test{Int64Field: 12, IntField: 54, StringField: "fdsa"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestInsertMultipleAndSelectWithParam setup failed: %s", err)
t.Fail()
return
}
insertSecond, err := exec.NewInsert(orm, &testObjSecond)
insertSecond, err := exec.NewInsert[Test](orm, testObjSecond)
if err != nil {
log.LogError("TestInsertMultipleAndSelectWithParam setup failed: %s", err)
t.Fail()
@@ -247,7 +247,7 @@ func TestInsertAndUpdate(t *testing.T) {
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestInsertAndUpdate setup failed: %s", err)
t.Fail()
@@ -333,7 +333,7 @@ func TestInsertAndDelete(t *testing.T) {
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestInsertAndDelete setup failed: %s", err)
t.Fail()
@@ -363,7 +363,7 @@ func TestInsertAndDelete(t *testing.T) {
return
}
deleteExec, err := exec.NewDelete(orm, selectRes)
deleteExec, err := exec.NewDelete[Test](orm, selectRes...)
// WHEN
err = deleteExec.Execute(conn)
@@ -396,7 +396,7 @@ func TestBoolInsertAndSelectSingle(t *testing.T) {
testObj := TestWithBool{BoolField: true}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[TestWithBool](orm, testObj)
if err != nil {
log.LogError("TestBoolInsertAndSelectSingle setup failed: %s", err)
t.Fail()
@@ -452,7 +452,7 @@ func TestTimeInsertAndSelectSingle(t *testing.T) {
now := time.Now().UnixMilli()
testObj := TestWithTime{TimeField: now}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[TestWithTime](orm, testObj)
if err != nil {
log.LogError("TestTimeInsertAndSelectSingle setup failed: %s", err)
t.Fail()
+2 -27
View File
@@ -15,14 +15,10 @@ type Test struct {
StringField string `sql:"nn"`
}
func (t *Test) IsInsertable() bool {
func (t Test) IsInsertable() bool {
return t.ID == 0
}
func (t *Test) SetPk(pks ...any) {
t.ID = pks[0].(int)
}
type TestWithFk struct {
ID int `sql:"pk"`
TestID int `sql:"nn;fk=Test.ID"`
@@ -32,10 +28,6 @@ func (t *TestWithFk) IsInsertable() bool {
return t.ID == 0
}
func (t *TestWithFk) SetPk(pks ...any) {
t.ID = pks[0].(int)
}
type TestWithFkAndFkId struct {
ID int `sql:"pk"`
TestID int `sql:"nn;fk=Test.ID;fk_id=custom_fk"`
@@ -54,15 +46,10 @@ type TestWithCompositePk struct {
Name string `sql:"nn;pk"`
}
func (t *TestWithCompositePk) IsInsertable() bool {
func (t TestWithCompositePk) IsInsertable() bool {
return t.ID == 0 && t.Name == ""
}
func (t *TestWithCompositePk) SetPk(pks ...any) {
t.ID = pks[0].(int)
t.Name = pks[1].(string)
}
type TestWithCompositeFk struct {
ID int `sql:"nn;pk"`
CompositeFkId int `sql:"nn;fk=TestWithCompositePk.ID;"`
@@ -73,10 +60,6 @@ func (t *TestWithCompositeFk) IsInsertable() bool {
return t.ID == 0
}
func (t *TestWithCompositeFk) SetPk(pks ...any) {
t.ID = pks[0].(int)
}
type TestWithBool struct {
ID int `sql:"pk"`
BoolField bool `sql:"nn"`
@@ -86,10 +69,6 @@ func (t *TestWithBool) IsInsertable() bool {
return t.ID == 0
}
func (t *TestWithBool) SetPk(pks ...any) {
t.ID = pks[0].(int)
}
type TestWithTime struct {
ID int `sql:"pk"`
TimeField int64 `sql:"nn"`
@@ -99,10 +78,6 @@ func (t *TestWithTime) IsInsertable() bool {
return t.ID == 0
}
func (t *TestWithTime) SetPk(pks ...any) {
t.ID = pks[0].(int)
}
func TestMain(m *testing.M) {
log.SetupLogs("Info")
+11 -11
View File
@@ -26,14 +26,14 @@ func TestRepoSelectAll(t *testing.T) {
defer cleanUp("test.db", conn)
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestRepoSelectAll setup failed: %s", err)
t.Fail()
return
}
err = insertExec.Execute(conn)
repo := repository.NewRepository[*Test](conn, orm)
repo := repository.NewRepository[Test](conn, orm)
// WHEN
res := repo.SelectAll()
@@ -52,17 +52,17 @@ func TestRepoSelectByPk(t *testing.T) {
defer cleanUp("test.db", conn)
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[Test](orm, testObj)
if err != nil {
log.LogError("TestRepoSelectByPk setup failed: %s", err)
t.Fail()
return
}
err = insertExec.Execute(conn)
repo := repository.NewRepository[*Test](conn, orm)
repo := repository.NewRepository[Test](conn, orm)
// WHEN
res := repo.SelectByPk(1)
res := repo.SelectByPk(insertExec.LastInsertId())
// THEN
if res == nil {
@@ -78,14 +78,14 @@ func TestRepoSelectByCompundPk(t *testing.T) {
defer cleanUp("test.db", conn)
testObj := TestWithCompositePk{ID: 42069, Name: "Test"}
insertExec, err := exec.NewInsert(orm, &testObj)
insertExec, err := exec.NewInsert[TestWithCompositePk](orm, testObj)
if err != nil {
log.LogError("TestRepoSelectByCompundPk setup failed: %s", err)
t.Fail()
return
}
err = insertExec.Execute(conn)
repo := repository.NewRepository[*TestWithCompositePk](conn, orm)
repo := repository.NewRepository[TestWithCompositePk](conn, orm)
// WHEN
res := repo.SelectByPk(42069, "Test")
@@ -104,10 +104,10 @@ func TestRepoSave(t *testing.T) {
defer cleanUp("test.db", conn)
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
repo := repository.NewRepository[*Test](conn, orm)
repo := repository.NewRepository[Test](conn, orm)
// WHEN
repo.Save(&testObj)
repo.Save(testObj)
// THEN
res := repo.SelectByPk(1)
@@ -124,9 +124,9 @@ func TestRepoDelete(t *testing.T) {
defer cleanUp("test.db", conn)
testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"}
repo := repository.NewRepository[*Test](conn, orm)
repo := repository.NewRepository[Test](conn, orm)
repo.Save(&testObj)
repo.Save(testObj)
res := repo.SelectByPk(1)
if res == nil {