// Copyright 2020 The Gogs Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package errutil import ( "errors" "testing" "github.com/stretchr/testify/assert" ) type notFoundError struct { val bool } func (notFoundError) Error() string { return "not found" } func (e notFoundError) NotFound() bool { return e.val } func TestIsNotFound(t *testing.T) { tests := []struct { name string err error expVal bool }{ { name: "error does not implement NotFound", err: errors.New("a simple error"), expVal: false, }, { name: "error implements NotFound but not a not found", err: notFoundError{val: false}, expVal: false, }, { name: "error implements NotFound", err: notFoundError{val: true}, expVal: true, }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { assert.Equal(t, test.expVal, IsNotFound(test.err)) }) } }