This commit is contained in:
+67
-19
@@ -4,6 +4,7 @@ import (
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
simpleorm "git.gdulai.com/gdulai/simpleorm"
|
||||
"git.gdulai.com/gdulai/simpleorm/exec"
|
||||
"git.gdulai.com/gdulai/simpleorm/schema"
|
||||
log "gitlab.com/gdulai/simpleloglvl"
|
||||
@@ -277,35 +278,22 @@ func TestSelectWithLimitAndOffset(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSelectOrderBy(t *testing.T) {
|
||||
func TestSelectOrderByDesc(t *testing.T) {
|
||||
// GIVEN
|
||||
orm, conn := testSetup()
|
||||
defer cleanUp("test.db", conn)
|
||||
|
||||
testA := Test{Int64Field: -1, IntField: 1, StringField: "A"}
|
||||
testB := Test{Int64Field: -1, IntField: 1, StringField: "B"}
|
||||
testC := Test{Int64Field: -1, IntField: 1, StringField: "C"}
|
||||
testD := Test{Int64Field: -1, IntField: 1, StringField: "D"}
|
||||
testE := Test{Int64Field: -1, IntField: 1, StringField: "E"}
|
||||
|
||||
insertExec, err := exec.NewInsert[Test](orm, testA, testB, testC, testD, testE)
|
||||
err := orderBySetup(conn, orm)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderBy setup failed: %s", err)
|
||||
log.LogError("TestSelectOrderByAsc setup failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
err = insertExec.Execute(conn)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderBy setup failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
// WHEN
|
||||
|
||||
selectExec, err := exec.CreateSelect[Test](orm)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderBy failed: %s", err)
|
||||
log.LogError("TestSelectOrderByDesc failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
@@ -313,7 +301,47 @@ func TestSelectOrderBy(t *testing.T) {
|
||||
|
||||
err = selectExec.Execute(conn)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderBy failed: %s", err)
|
||||
log.LogError("TestSelectOrderByDesc failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
// THEN
|
||||
var resultStr string
|
||||
for _, obj := range selectExec.Results() {
|
||||
resultStr += obj.StringField
|
||||
}
|
||||
|
||||
if resultStr != "EDCBA" {
|
||||
log.LogError("TestSelectOrderByDesc failed, epxected: EDCBA actual: %s", resultStr)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestSelectOrderByAsc(t *testing.T) {
|
||||
// GIVEN
|
||||
orm, conn := testSetup()
|
||||
defer cleanUp("test.db", conn)
|
||||
|
||||
err := orderBySetup(conn, orm)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderByAsc setup failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
// WHEN
|
||||
selectExec, err := exec.CreateSelect[Test](orm)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderByAsc failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
selectExec.OrderBy(schema.OrderBy{Field: "StringField", Direction: "ASC"})
|
||||
|
||||
err = selectExec.Execute(conn)
|
||||
if err != nil {
|
||||
log.LogError("TestSelectOrderByAsc failed: %s", err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
@@ -325,7 +353,27 @@ func TestSelectOrderBy(t *testing.T) {
|
||||
}
|
||||
|
||||
if resultStr != "ABCDE" {
|
||||
log.LogError("TestSelectOrderBy failed, epxected: ABCDE actual: %s", resultStr)
|
||||
log.LogError("TestSelectOrderByAsc failed, epxected: ABCDE actual: %s", resultStr)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func orderBySetup(conn *simpleorm.DBConnection, orm *simpleorm.ORM) error {
|
||||
insertExec, err := exec.NewInsert[Test](orm,
|
||||
Test{Int64Field: -1, IntField: 1, StringField: "C"},
|
||||
Test{Int64Field: -1, IntField: 1, StringField: "D"},
|
||||
Test{Int64Field: -1, IntField: 1, StringField: "E"},
|
||||
Test{Int64Field: -1, IntField: 1, StringField: "A"},
|
||||
Test{Int64Field: -1, IntField: 1, StringField: "B"},
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = insertExec.Execute(conn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user