package simpleorm_test import ( "testing" "git.gdulai.com/gdulai/simpleorm/exec" "git.gdulai.com/gdulai/simpleorm/repository" log "gitlab.com/gdulai/simpleloglvl" ) func TestRepoSelectAll(t *testing.T) { // GIVEN orm, conn := testSetup() defer cleanUp("test.db", conn) testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"} insertExec, err := exec.NewInsert(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) // WHEN res := repo.SelectAll() // THEN if len(res) != 1 { log.LogError("TestRepoSelectAll test failed. Expected: 1, Actual: %s", len(res)) t.Fail() return } } func TestRepoSelectByPk(t *testing.T) { // GIVEN orm, conn := testSetup() defer cleanUp("test.db", conn) testObj := Test{Int64Field: 54, IntField: 12, StringField: "asdf"} insertExec, err := exec.NewInsert(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) // WHEN res := repo.SelectByPk(1) // THEN if res == nil { log.LogError("TestRepoSelectByPk test failed. Result is nil!") t.Fail() return } } func TestRepoSelectByCompundPk(t *testing.T) { // GIVEN orm, conn := testSetup() defer cleanUp("test.db", conn) testObj := TestWithCompositePk{ID: 42069, Name: "Test"} insertExec, err := exec.NewInsert(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) // WHEN res := repo.SelectByPk(42069, "Test") // THEN if res == nil { log.LogError("TestRepoSelectByCompundPk test failed. Result is nil!") t.Fail() return } } func TestRepoSave(t *testing.T) { // GIVEN orm, conn := testSetup() defer cleanUp("test.db", conn) testObj := &Test{Int64Field: 54, IntField: 12, StringField: "asdf"} repo := repository.NewRepository[Test](conn, orm) // WHEN err := repo.Save(testObj) // THEN if err != nil { log.LogError("TestRepoSave failed: %s", err) } if testObj.ID == 0 { log.LogError("TestRepoSave failed! testObj.ID is 0!") t.Fail() } } func TestRepoDelete(t *testing.T) { // GIVEN orm, conn := testSetup() defer cleanUp("test.db", conn) testObj := &Test{Int64Field: 54, IntField: 12, StringField: "asdf"} repo := repository.NewRepository[Test](conn, orm) err := repo.Save(testObj) if err != nil { log.LogError("TestRepoDelete setup failed! Test data not saved!") t.Fail() return } // WHEN repo.Delete(testObj) // THEN res := repo.SelectByPk(testObj.ID) if res != nil { log.LogError("TestRepoDelete test failed. Result is not nil!") t.Fail() return } }