This commit is contained in:
+43
@@ -0,0 +1,43 @@
|
||||
package protocol
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func AssertIsProtocolError(t *testing.T, err error, errType, errDetails, errInfo any) {
|
||||
var e *Error
|
||||
|
||||
require.True(t, errors.As(err, &e))
|
||||
|
||||
switch et := errType.(type) {
|
||||
case string:
|
||||
assert.Equal(t, et, e.Type)
|
||||
case *regexp.Regexp:
|
||||
assert.Regexp(t, et, e.Type)
|
||||
default:
|
||||
t.Fatalf("%T is not a known type", errType)
|
||||
}
|
||||
|
||||
switch ed := errDetails.(type) {
|
||||
case string:
|
||||
assert.Equal(t, ed, e.Details)
|
||||
case *regexp.Regexp:
|
||||
assert.Regexp(t, ed, e.Details)
|
||||
default:
|
||||
t.Fatalf("%T is not a known type", errDetails)
|
||||
}
|
||||
|
||||
switch ed := errInfo.(type) {
|
||||
case string:
|
||||
assert.Equal(t, ed, e.DevInfo)
|
||||
case *regexp.Regexp:
|
||||
assert.Regexp(t, ed, e.DevInfo)
|
||||
default:
|
||||
t.Fatalf("%T is not a known type", errInfo)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user