54 lines
2.2 KiB
Go
54 lines
2.2 KiB
Go
// +build go1.13
|
|
|
|
package gorm_test
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
func TestNotFound(t *testing.T) {
|
|
type testcase struct {
|
|
err error
|
|
isErrRecordNotFound bool
|
|
}
|
|
var wrapErrRecordNotFound = fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)
|
|
var cases = []testcase{
|
|
{gorm.ErrRecordNotFound, true},
|
|
{gorm.Errors{gorm.ErrRecordNotFound}, true},
|
|
{gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}, true},
|
|
|
|
{wrapErrRecordNotFound, true},
|
|
{gorm.Errors{wrapErrRecordNotFound}, true},
|
|
{gorm.Errors{gorm.ErrRecordNotFound, wrapErrRecordNotFound}, true},
|
|
{gorm.Errors{wrapErrRecordNotFound, gorm.ErrRecordNotFound}, true},
|
|
{gorm.Errors{wrapErrRecordNotFound, wrapErrRecordNotFound}, true},
|
|
|
|
{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), true},
|
|
{fmt.Errorf("get user fail: %w", wrapErrRecordNotFound), true},
|
|
{fmt.Errorf("get user fail: %w", fmt.Errorf("get user fail: %w", wrapErrRecordNotFound)), true},
|
|
|
|
{fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound}), true},
|
|
{fmt.Errorf("get user fail: %w", gorm.Errors{wrapErrRecordNotFound}), true},
|
|
{fmt.Errorf("get user fail: %w", gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}), true},
|
|
{fmt.Errorf("get user fail: %w", gorm.Errors{wrapErrRecordNotFound, wrapErrRecordNotFound}), true},
|
|
{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},
|
|
|
|
{errors.New("err"), false},
|
|
{fmt.Errorf("get user fail: %s", gorm.ErrRecordNotFound), false},
|
|
{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)
|
|
}
|
|
}
|
|
}
|