This commit is contained in:
chyroc 2019-10-21 09:47:39 +08:00
parent 08cd11e3c6
commit 1249d8dd82
No known key found for this signature in database
GPG Key ID: 5CEACB2EE6A2FEFA

View File

@ -11,37 +11,43 @@ import (
) )
func TestNotFound(t *testing.T) { func TestNotFound(t *testing.T) {
var errs = []error{ type testcase struct {
gorm.ErrRecordNotFound, err error
fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), isErrRecordNotFound bool
gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}, }
gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), gorm.ErrRecordNotFound}, var wrapErrRecordNotFound = fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)
gorm.Errors{gorm.ErrRecordNotFound, fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}, var cases = []testcase{
gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}, {gorm.ErrRecordNotFound, true},
gorm.Errors{gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), gorm.ErrRecordNotFound}, gorm.ErrRecordNotFound}, {gorm.Errors{gorm.ErrRecordNotFound}, true},
{gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}, true},
fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound}), {wrapErrRecordNotFound, true},
fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound, fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}), {gorm.Errors{wrapErrRecordNotFound}, true},
fmt.Errorf("get user fail: %w", gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), gorm.ErrRecordNotFound}), {gorm.Errors{gorm.ErrRecordNotFound, wrapErrRecordNotFound}, true},
fmt.Errorf("get user fail: %w", gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}), {gorm.Errors{wrapErrRecordNotFound, gorm.ErrRecordNotFound}, true},
} {gorm.Errors{wrapErrRecordNotFound, wrapErrRecordNotFound}, true},
for idx, err := range errs { {fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), true},
if !gorm.IsRecordNotFoundError(err) { {fmt.Errorf("get user fail: %w", wrapErrRecordNotFound), true},
t.Errorf("%s(%d) should be ErrRecordNotFound", err, idx) {fmt.Errorf("get user fail: %w", fmt.Errorf("get user fail: %w", wrapErrRecordNotFound)), true},
}
}
errs = []error{ {fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound}), true},
errors.New("err"), {fmt.Errorf("get user fail: %w", gorm.Errors{wrapErrRecordNotFound}), true},
fmt.Errorf("get user fail: %s", gorm.ErrRecordNotFound), {fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}), true},
fmt.Errorf("get user fail: %v", gorm.ErrRecordNotFound), {fmt.Errorf("get user fail: %w", gorm.Errors{wrapErrRecordNotFound, wrapErrRecordNotFound}), true},
fmt.Errorf("get user fail: %+v", gorm.ErrRecordNotFound), {fmt.Errorf("get user fail: %w", gorm.Errors{wrapErrRecordNotFound, gorm.ErrRecordNotFound}), true},
} {fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound, wrapErrRecordNotFound}), true},
{fmt.Errorf("get user fail: %w", fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound, wrapErrRecordNotFound})), true},
for idx, err := range errs { {errors.New("err"), false},
if gorm.IsRecordNotFoundError(err) { {fmt.Errorf("get user fail: %s", gorm.ErrRecordNotFound), false},
t.Errorf("%s(%d) should not be ErrRecordNotFound", err, idx) {fmt.Errorf("get user fail: %v", gorm.ErrRecordNotFound), false},
{fmt.Errorf("get user fail: %+v", gorm.ErrRecordNotFound), false},
}
for idx, err := range cases {
isRecordNotFoundError := gorm.IsRecordNotFoundError(err.err)
if isRecordNotFoundError != err.isErrRecordNotFound {
t.Errorf("err: %s(%d) should be ErrRecordNotFound: %v, but got: %v", err.err, idx, err.isErrRecordNotFound, isRecordNotFoundError)
} }
} }
} }