MCPcopy
hub / github.com/go-gorm/gorm / TestOrderWithAllFields

Function TestOrderWithAllFields

tests/query_test.go:1051–1074  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1049}
1050
1051func TestOrderWithAllFields(t *testing.T) {
1052 dryDB := DB.Session(&gorm.Session{DryRun: true, QueryFields: true})
1053 userQuery := "SELECT .*users.*id.*users.*created_at.*users.*updated_at.*users.*deleted_at.*users.*name.*users.*age" +
1054 ".*users.*birthday.*users.*company_id.*users.*manager_id.*users.*active.* FROM .*users.* "
1055
1056 result := dryDB.Order("users.age desc, users.name").Find(&User{})
1057 if !regexp.MustCompile(userQuery + "users.age desc, users.name").MatchString(result.Statement.SQL.String()) {
1058 t.Fatalf("Build Order condition, but got %v", result.Statement.SQL.String())
1059 }
1060
1061 result = dryDB.Order("users.age desc").Order("users.name").Find(&User{})
1062 if !regexp.MustCompile(userQuery + "ORDER BY users.age desc,users.name").MatchString(result.Statement.SQL.String()) {
1063 t.Fatalf("Build Order condition, but got %v", result.Statement.SQL.String())
1064 }
1065
1066 stmt := dryDB.Clauses(clause.OrderBy{
1067 Expression: clause.Expr{SQL: "FIELD(id,?)", Vars: []interface{}{[]int{1, 2, 3}}, WithoutParentheses: true},
1068 }).Find(&User{}).Statement
1069
1070 explainedSQL := dryDB.Dialector.Explain(stmt.SQL.String(), stmt.Vars...)
1071 if !regexp.MustCompile(userQuery + "ORDER BY FIELD\\(id,1,2,3\\)").MatchString(explainedSQL) {
1072 t.Fatalf("Build Order condition, but got %v", explainedSQL)
1073 }
1074}
1075
1076func TestLimit(t *testing.T) {
1077 users := []User{

Callers

nothing calls this directly

Calls 6

SessionMethod · 0.80
ClausesMethod · 0.80
FindMethod · 0.65
OrderMethod · 0.65
ExplainMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected