This commit is contained in:
jianzhiyao 2020-10-26 19:52:21 +08:00
parent d24388ad81
commit beedfa1b53
2 changed files with 35 additions and 1 deletions

View File

@ -21,6 +21,7 @@ import (
"context"
"database/sql"
"fmt"
"github.com/astaxie/beego/client/orm/structs/clauses"
"io/ioutil"
"math"
"os"
@ -1077,6 +1078,26 @@ func TestOrderBy(t *testing.T) {
num, err = qs.OrderBy("-profile__age").Filter("user_name", "astaxie").Count()
throwFail(t, err)
throwFail(t, AssertIs(num, 1))
num, err = qs.OrderClauses(
clauses.OrderClause(
clauses.OrderColumn(`profile__age`),
clauses.OrderSortDescending(),
),
).Filter("user_name", "astaxie").Count()
throwFail(t, err)
throwFail(t, AssertIs(num, 1))
if IsMysql {
num, err = qs.OrderClauses(
clauses.OrderClause(
clauses.OrderColumn(`rand()`),
clauses.OrderRaw(),
),
).Filter("user_name", "astaxie").Count()
throwFail(t, err)
throwFail(t, AssertIs(num, 1))
}
}
func TestAll(t *testing.T) {
@ -1163,6 +1184,19 @@ func TestValues(t *testing.T) {
throwFail(t, AssertIs(maps[2]["Profile"], nil))
}
num, err = qs.OrderClauses(
clauses.OrderClause(
clauses.OrderColumn("Id"),
clauses.OrderSortAscending(),
),
).Values(&maps)
throwFail(t, err)
throwFail(t, AssertIs(num, 3))
if num == 3 {
throwFail(t, AssertIs(maps[0]["UserName"], "slene"))
throwFail(t, AssertIs(maps[2]["Profile"], nil))
}
num, err = qs.OrderBy("Id").Values(&maps, "UserName", "Profile__Age")
throwFail(t, err)
throwFail(t, AssertIs(num, 3))

View File

@ -71,7 +71,7 @@ func ParseOrder(expressions ...string) []*Order {
func OrderColumn(column string) OrderOption {
return func(order *Order) {
order.column = column
order.column = strings.ReplaceAll(column, ExprSep, ExprDot)
}
}