From deda13f3e4700eb8fed7699817c42ad81b43e925 Mon Sep 17 00:00:00 2001 From: Ming Deng Date: Mon, 11 Jan 2021 23:56:47 +0800 Subject: [PATCH] fix UT and Sonar problem --- client/orm/mock/context.go | 4 ++- client/orm/mock/mock_orm_test.go | 30 ++++++++-------- client/orm/mock/mock_queryM2Mer.go | 20 +++++++++++ client/orm/mock/mock_querySetter.go | 54 +++++++++++++++++++++++++++-- client/orm/mock/mock_test.go | 1 - core/error/error.go | 54 ----------------------------- 6 files changed, 90 insertions(+), 73 deletions(-) delete mode 100644 core/error/error.go diff --git a/client/orm/mock/context.go b/client/orm/mock/context.go index 6b8fb8d6..ca251c5d 100644 --- a/client/orm/mock/context.go +++ b/client/orm/mock/context.go @@ -20,7 +20,9 @@ import ( "github.com/beego/beego/v2/core/logs" ) -const mockCtxKey = "beego-orm-mock" +type mockCtxKeyType string + +const mockCtxKey = mockCtxKeyType("beego-orm-mock") func CtxWithMock(ctx context.Context, mock ...*Mock) context.Context { return context.WithValue(ctx, mockCtxKey, mock) diff --git a/client/orm/mock/mock_orm_test.go b/client/orm/mock/mock_orm_test.go index 47600440..d65855cb 100644 --- a/client/orm/mock/mock_orm_test.go +++ b/client/orm/mock/mock_orm_test.go @@ -24,7 +24,7 @@ import ( "github.com/beego/beego/v2/client/orm" ) - +const mockErrorMsg = "mock error" func init() { orm.RegisterModel(&User{}) } @@ -65,7 +65,7 @@ func TestMockInsertOrUpdateWithCtx(t *testing.T) { func TestMockRead(t *testing.T) { s := StartMock() defer s.Clear() - err := errors.New("mock error") + err := errors.New(mockErrorMsg) s.Mock(MockRead((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -100,7 +100,7 @@ func TestMockQueryTableWithCtx(t *testing.T) { func TestMockTable(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockTable((&User{}).TableName(), mock)) o := orm.NewOrm() res := o.Read(&User{}) @@ -110,7 +110,7 @@ func TestMockTable(t *testing.T) { func TestMockInsertMultiWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockInsertMultiWithCtx((&User{}).TableName(), 12, mock)) o := orm.NewOrm() res, err := o.InsertMulti(11, []interface{}{&User{}}) @@ -121,7 +121,7 @@ func TestMockInsertMultiWithCtx(t *testing.T) { func TestMockInsertWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockInsertWithCtx((&User{}).TableName(), 13, mock)) o := orm.NewOrm() res, err := o.Insert(&User{}) @@ -132,7 +132,7 @@ func TestMockInsertWithCtx(t *testing.T) { func TestMockUpdateWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockUpdateWithCtx((&User{}).TableName(), 12, mock)) o := orm.NewOrm() res, err := o.Update(&User{}) @@ -143,7 +143,7 @@ func TestMockUpdateWithCtx(t *testing.T) { func TestMockLoadRelatedWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockLoadRelatedWithCtx((&User{}).TableName(), "T", 12, mock)) o := orm.NewOrm() res, err := o.LoadRelated(&User{}, "T") @@ -154,7 +154,7 @@ func TestMockLoadRelatedWithCtx(t *testing.T) { func TestMockMethod(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockMethod("ReadWithCtx", mock)) o := orm.NewOrm() err := o.Read(&User{}) @@ -164,7 +164,7 @@ func TestMockMethod(t *testing.T) { func TestMockReadForUpdateWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockReadForUpdateWithCtx((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -189,7 +189,7 @@ func TestMockRawWithCtx(t *testing.T) { func TestMockReadOrCreateWithCtx(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockReadOrCreateWithCtx((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -206,7 +206,7 @@ func TestMockReadOrCreateWithCtx(t *testing.T) { func TestTransactionClosure(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockRead((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -219,7 +219,7 @@ func TestTransactionClosure(t *testing.T) { func TestTransactionManually(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockRead((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -232,7 +232,7 @@ func TestTransactionManually(t *testing.T) { func TestTransactionRollback(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockRead((&User{}).TableName(), nil, errors.New("read error"))) s.Mock(MockRollback(mock)) _, err := originalTx() @@ -242,7 +242,7 @@ func TestTransactionRollback(t *testing.T) { func TestTransactionCommit(t *testing.T) { s := StartMock() defer s.Clear() - mock := errors.New("mock error") + mock := errors.New(mockErrorMsg) s.Mock(MockRead((&User{}).TableName(), func(data interface{}) { u := data.(*User) u.Name = "Tom" @@ -280,7 +280,7 @@ func originalTxUsingClosure() (*User, error) { u := &User{} var err error o := orm.NewOrm() - o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error { + _ = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error { err = txOrm.Read(u) return nil }) diff --git a/client/orm/mock/mock_queryM2Mer.go b/client/orm/mock/mock_queryM2Mer.go index ba2375d5..16648fee 100644 --- a/client/orm/mock/mock_queryM2Mer.go +++ b/client/orm/mock/mock_queryM2Mer.go @@ -26,6 +26,26 @@ type DoNothingQueryM2Mer struct { } +func (d *DoNothingQueryM2Mer) AddWithCtx(ctx context.Context, i ...interface{}) (int64, error) { + return 0, nil +} + +func (d *DoNothingQueryM2Mer) RemoveWithCtx(ctx context.Context, i ...interface{}) (int64, error) { + return 0, nil +} + +func (d *DoNothingQueryM2Mer) ExistWithCtx(ctx context.Context, i interface{}) bool { + return true +} + +func (d *DoNothingQueryM2Mer) ClearWithCtx(ctx context.Context) (int64, error) { + return 0, nil +} + +func (d *DoNothingQueryM2Mer) CountWithCtx(ctx context.Context) (int64, error) { + return 0, nil +} + func (d *DoNothingQueryM2Mer) Add(i ...interface{}) (int64, error) { return 0, nil } diff --git a/client/orm/mock/mock_querySetter.go b/client/orm/mock/mock_querySetter.go index 661a9869..074b6211 100644 --- a/client/orm/mock/mock_querySetter.go +++ b/client/orm/mock/mock_querySetter.go @@ -15,13 +15,63 @@ package mock import ( + "context" + "github.com/beego/beego/v2/client/orm" + "github.com/beego/beego/v2/client/orm/clauses/order_clause" ) // DoNothingQuerySetter do nothing // usually you use this to build your mock QuerySetter type DoNothingQuerySetter struct { - +} + +func (d *DoNothingQuerySetter) OrderClauses(orders ...*order_clause.Order) orm.QuerySeter { + return d +} + +func (d *DoNothingQuerySetter) CountWithCtx(ctx context.Context) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) ExistWithCtx(ctx context.Context) bool { + return true +} + +func (d *DoNothingQuerySetter) UpdateWithCtx(ctx context.Context, values orm.Params) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) DeleteWithCtx(ctx context.Context) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) PrepareInsertWithCtx(ctx context.Context) (orm.Inserter, error) { + return nil, nil +} + +func (d *DoNothingQuerySetter) AllWithCtx(ctx context.Context, container interface{}, cols ...string) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) OneWithCtx(ctx context.Context, container interface{}, cols ...string) error { + return nil +} + +func (d *DoNothingQuerySetter) ValuesWithCtx(ctx context.Context, results *[]orm.Params, exprs ...string) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) ValuesListWithCtx(ctx context.Context, results *[]orm.ParamsList, exprs ...string) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) ValuesFlatWithCtx(ctx context.Context, result *orm.ParamsList, expr string) (int64, error) { + return 0, nil +} + +func (d *DoNothingQuerySetter) Aggregate(s string) orm.QuerySeter { + return d } func (d *DoNothingQuerySetter) Filter(s string, i ...interface{}) orm.QuerySeter { @@ -130,4 +180,4 @@ func (d *DoNothingQuerySetter) RowsToMap(result *orm.Params, keyCol, valueCol st func (d *DoNothingQuerySetter) RowsToStruct(ptrStruct interface{}, keyCol, valueCol string) (int64, error) { return 0, nil -} \ No newline at end of file +} diff --git a/client/orm/mock/mock_test.go b/client/orm/mock/mock_test.go index 671e3231..73bce4e5 100644 --- a/client/orm/mock/mock_test.go +++ b/client/orm/mock/mock_test.go @@ -40,7 +40,6 @@ func TestOrmStub_FilterChain(t *testing.T) { arg := inv.Args[0] j := arg.(int) inv.Args[0] = j + 1 - return }) os.Mock(m) diff --git a/core/error/error.go b/core/error/error.go deleted file mode 100644 index 0f6fb8eb..00000000 --- a/core/error/error.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2020 beego -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package error - -import ( - "fmt" - - "github.com/pkg/errors" -) - -type Code int32 - -func (c Code) ToInt32() int32 { - return int32(c) -} - - -type Error struct { - Code Code - Msg string - Cause error -} - -func (be *Error) String() string { - return fmt.Sprintf("code: %d, msg: %s", be.Code.ToInt32(), be.Msg) -} - -func New(code Code, msg string) *Error { - return &Error{ - Code: code, - Msg: msg, - } -} - -func Wrap(cause error, code Code, msg string) { - errors.Wrap() -} - -func Convert(err error) *Error { - -} -