This commit is contained in:
xing 2022-11-07 16:08:15 +08:00
parent fa50924c5b
commit 249abf6c5e

View File

@ -1,6 +1,7 @@
package models package models
import ( import (
"context"
"github/fthvgb1/wp-go/config" "github/fthvgb1/wp-go/config"
"github/fthvgb1/wp-go/db" "github/fthvgb1/wp-go/db"
"github/fthvgb1/wp-go/models/wp" "github/fthvgb1/wp-go/models/wp"
@ -8,6 +9,8 @@ import (
"testing" "testing"
) )
var ctx = context.Background()
func init() { func init() {
err := config.InitConfig("../config.yaml") err := config.InitConfig("../config.yaml")
if err != nil { if err != nil {
@ -17,6 +20,7 @@ func init() {
if err != nil { if err != nil {
panic(err) panic(err)
} }
InitDB(db.NewSqlxDb(db.Db))
} }
func TestFind(t *testing.T) { func TestFind(t *testing.T) {
type args struct { type args struct {
@ -54,7 +58,7 @@ func TestFind(t *testing.T) {
in: [][]any{{1, 2, 3, 4}}, in: [][]any{{1, 2, 3, 4}},
}, },
wantR: func() []posts { wantR: func() []posts {
r, err := Select[posts]("select * from " + posts{}.Table() + " where post_status='publish' and ID in (1,2,3,4) order by ID desc") r, err := Select[posts](ctx, "select * from "+posts{}.Table()+" where post_status='publish' and ID in (1,2,3,4) order by ID desc")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -77,7 +81,7 @@ func TestFind(t *testing.T) {
in: nil, in: nil,
}, },
wantR: func() []posts { wantR: func() []posts {
r, err := Select[posts]("select * from " + posts{}.Table() + " where (ID=1 or ID=2)") r, err := Select[posts](ctx, "select * from "+posts{}.Table()+" where (ID=1 or ID=2)")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -101,7 +105,7 @@ func TestFind(t *testing.T) {
in: nil, in: nil,
}, },
wantR: func() []posts { wantR: func() []posts {
r, err := Select[posts]("select post_status,count(*) n from " + wp.Posts{}.Table() + " where ID<1000 group by post_status having n>1") r, err := Select[posts](ctx, "select post_status,count(*) n from "+wp.Posts{}.Table()+" where ID<1000 group by post_status having n>1")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -124,7 +128,7 @@ func TestFind(t *testing.T) {
in: [][]any{{1, 2, 3}, {4, 5, 6}}, in: [][]any{{1, 2, 3}, {4, 5, 6}},
}, },
wantR: func() []posts { wantR: func() []posts {
r, err := Select[posts]("select * from " + posts{}.Table() + " where (ID in (1,2,3) or ID in (4,5,6)) or (post_status='publish' and post_status='closed')") r, err := Select[posts](ctx, "select * from "+posts{}.Table()+" where (ID in (1,2,3) or ID in (4,5,6)) or (post_status='publish' and post_status='closed')")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -134,7 +138,7 @@ func TestFind(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
gotR, err := Find[posts](tt.args.where, tt.args.fields, tt.args.group, tt.args.order, tt.args.join, tt.args.having, tt.args.limit, tt.args.in...) gotR, err := Find[posts](ctx, tt.args.where, tt.args.fields, tt.args.group, tt.args.order, tt.args.join, tt.args.having, tt.args.limit, tt.args.in...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("Find() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("Find() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -163,7 +167,7 @@ func TestFindOneById(t *testing.T) {
1, 1,
}, },
want: func() wp.Posts { want: func() wp.Posts {
r, err := Get[wp.Posts]("select * from "+wp.Posts{}.Table()+" where ID=?", 1) r, err := Get[wp.Posts](ctx, "select * from "+wp.Posts{}.Table()+" where ID=?", 1)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -174,7 +178,7 @@ func TestFindOneById(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got, err := FindOneById[wp.Posts](tt.args.id) got, err := FindOneById[wp.Posts](ctx, tt.args.id)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("FindOneById() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("FindOneById() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -209,7 +213,7 @@ func TestFirstOne(t *testing.T) {
}, },
wantErr: false, wantErr: false,
want: func() wp.Posts { want: func() wp.Posts {
r, err := Get[wp.Posts]("select * from " + wp.Posts{}.Table() + " where post_status='publish' order by ID desc limit 1") r, err := Get[wp.Posts](ctx, "select * from "+wp.Posts{}.Table()+" where post_status='publish' order by ID desc limit 1")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -219,7 +223,7 @@ func TestFirstOne(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got, err := FirstOne[wp.Posts](tt.args.where, tt.args.fields, tt.args.order, tt.args.in...) got, err := FirstOne[wp.Posts](ctx, tt.args.where, tt.args.fields, tt.args.order, tt.args.in...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("FirstOne() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("FirstOne() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -246,7 +250,7 @@ func TestGet(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
gotR, err := Get[wp.Posts](tt.args.sql, tt.args.params...) gotR, err := Get[wp.Posts](ctx, tt.args.sql, tt.args.params...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("Get() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("Get() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -280,7 +284,7 @@ func TestLastOne(t *testing.T) {
in: nil, in: nil,
}, },
want: func() wp.Posts { want: func() wp.Posts {
r, err := Get[wp.Posts]("select * from " + wp.Posts{}.Table() + " where post_status='publish' order by " + wp.Posts{}.PrimaryKey() + " desc limit 1") r, err := Get[wp.Posts](ctx, "select * from "+wp.Posts{}.Table()+" where post_status='publish' order by "+wp.Posts{}.PrimaryKey()+" desc limit 1")
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -290,7 +294,7 @@ func TestLastOne(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got, err := LastOne[wp.Posts](tt.args.where, tt.args.fields, tt.args.in...) got, err := LastOne[wp.Posts](ctx, tt.args.where, tt.args.fields, tt.args.in...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("LastOne() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("LastOne() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -317,7 +321,7 @@ func TestSelect(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got, err := Select[wp.Posts](tt.args.sql, tt.args.params...) got, err := Select[wp.Posts](ctx, tt.args.sql, tt.args.params...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("Select() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("Select() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -345,7 +349,7 @@ func TestSimpleFind(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got, err := SimpleFind[wp.Posts](tt.args.where, tt.args.fields, tt.args.in...) got, err := SimpleFind[wp.Posts](ctx, tt.args.where, tt.args.fields, tt.args.in...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("SimpleFind() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("SimpleFind() error = %v, wantErr %v", err, tt.wantErr)
return return
@ -380,7 +384,7 @@ func TestSimplePagination(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
gotR, gotTotal, err := SimplePagination[wp.Posts](tt.args.where, tt.args.fields, tt.args.group, tt.args.page, tt.args.pageSize, tt.args.order, tt.args.join, tt.args.having, tt.args.in...) gotR, gotTotal, err := SimplePagination[wp.Posts](ctx, tt.args.where, tt.args.fields, tt.args.group, tt.args.page, tt.args.pageSize, tt.args.order, tt.args.join, tt.args.having, tt.args.in...)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("SimplePagination() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("SimplePagination() error = %v, wantErr %v", err, tt.wantErr)
return return