1063 lines
28 KiB
Go
1063 lines
28 KiB
Go
package errors
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestBadRequestf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := BadRequestf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestForbiddenf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := Forbiddenf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestMethodNotAllowedf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := MethodNotAllowedf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestMethodNotFoundf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NotFoundf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotImplementedf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NotImplementedf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotSupportedf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NotSupportedf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotValidf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NotValidf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestTimeoutf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := Timeoutf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestUnauthorizedf(t *testing.T) {
|
|
errMsg := "test"
|
|
e := Unauthorizedf(errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != nil {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected nil", e, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNewBadRequest(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewBadRequest(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewForbidden(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewForbidden(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewMethodNotAllowed(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewMethodNotAllowed(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewNotFound(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewNotFound(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewNotImplemented(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewNotImplemented(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewNotSupported(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewNotSupported(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewNotValid(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewNotValid(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewTimeout(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewTimeout(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestNewUnauthorized(t *testing.T) {
|
|
errMsg := "test"
|
|
e := NewUnauthorized(err, errMsg)
|
|
if e.m != errMsg {
|
|
t.Errorf("Invalid %T message %s, expected %s", e, e.m, errMsg)
|
|
}
|
|
if e.c != err {
|
|
t.Errorf("Invalid %T parent error %T[%s], expected %T[%s]", e, e.c, e.c, err, err)
|
|
}
|
|
}
|
|
|
|
func TestIsBadRequest(t *testing.T) {
|
|
e := badRequest{}
|
|
e1 := &Err{}
|
|
if IsBadRequest(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &badRequest{}
|
|
if !IsBadRequest(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := badRequest{}
|
|
if !IsBadRequest(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestBadRequest_As(t *testing.T) {
|
|
e := badRequest{Err: Err{m: "test", c: fmt.Errorf("ttt")}, s: http.StatusBadRequest}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := &badRequest{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestBadRequest_Is(t *testing.T) {
|
|
e := badRequest{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &badRequest{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := badRequest{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestBadRequest_Unwrap(t *testing.T) {
|
|
e := badRequest{Err: Err{c: fmt.Errorf("ttt")}, s: http.StatusBadRequest}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsForbidden(t *testing.T) {
|
|
e := forbidden{}
|
|
e1 := &Err{}
|
|
if IsForbidden(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &forbidden{}
|
|
if !IsForbidden(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := forbidden{}
|
|
if !IsForbidden(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestForbidden_As(t *testing.T) {
|
|
e := forbidden{Err: Err{m: "test", c: fmt.Errorf("ttt")}, s: http.StatusForbidden}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := &forbidden{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestForbidden_Is(t *testing.T) {
|
|
e := forbidden{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &forbidden{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := forbidden{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestForbidden_Unwrap(t *testing.T) {
|
|
e := forbidden{Err: Err{c: fmt.Errorf("ttt")}, s: http.StatusForbidden}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsMethodNotAllowed(t *testing.T) {
|
|
e := methodNotAllowed{}
|
|
e1 := &Err{}
|
|
if IsMethodNotAllowed(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &methodNotAllowed{}
|
|
if !IsMethodNotAllowed(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := methodNotAllowed{}
|
|
if !IsMethodNotAllowed(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestMethodNotAllowed_As(t *testing.T) {
|
|
e := methodNotAllowed{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := &methodNotAllowed{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestMethodNotAllowed_Is(t *testing.T) {
|
|
e := methodNotAllowed{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &methodNotAllowed{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := methodNotAllowed{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestMethodNotAllowed_Unwrap(t *testing.T) {
|
|
e := methodNotAllowed{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsNotFound(t *testing.T) {
|
|
e := notFound{}
|
|
e1 := &Err{}
|
|
if IsNotFound(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Found{}
|
|
if !IsNotFound(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notFound{}
|
|
if !IsNotFound(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotFound_As(t *testing.T) {
|
|
e := notFound{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := ¬Found{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotFound_Is(t *testing.T) {
|
|
e := notFound{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Found{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notFound{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotFound_Unwrap(t *testing.T) {
|
|
e := notFound{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsNotImplemented(t *testing.T) {
|
|
e := notImplemented{}
|
|
e1 := &Err{}
|
|
if IsNotImplemented(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Implemented{}
|
|
if !IsNotImplemented(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notImplemented{}
|
|
if !IsNotImplemented(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotImplemented_As(t *testing.T) {
|
|
e := notImplemented{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := ¬Implemented{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotImplemented_Is(t *testing.T) {
|
|
e := notImplemented{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Implemented{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notImplemented{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotImplemented_Unwrap(t *testing.T) {
|
|
e := notImplemented{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsNotSupported(t *testing.T) {
|
|
e := notSupported{}
|
|
e1 := &Err{}
|
|
if IsNotSupported(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Supported{}
|
|
if !IsNotSupported(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notSupported{}
|
|
if !IsNotSupported(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotSupported_As(t *testing.T) {
|
|
e := notSupported{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := ¬Supported{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotSupported_Is(t *testing.T) {
|
|
e := notSupported{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Supported{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notSupported{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotSupported_Unwrap(t *testing.T) {
|
|
e := notSupported{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsNotValid(t *testing.T) {
|
|
e := notValid{}
|
|
e1 := &Err{}
|
|
if IsNotValid(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Valid{}
|
|
if !IsNotValid(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notValid{}
|
|
if !IsNotValid(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotValid_As(t *testing.T) {
|
|
e := notValid{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := ¬Valid{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestNotValid_Is(t *testing.T) {
|
|
e := notValid{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := ¬Valid{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := notValid{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestNotValid_Unwrap(t *testing.T) {
|
|
e := notValid{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsTimeout(t *testing.T) {
|
|
e := timeout{}
|
|
e1 := &Err{}
|
|
if IsTimeout(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &timeout{}
|
|
if !IsTimeout(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := timeout{}
|
|
if !IsTimeout(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestTimeout_As(t *testing.T) {
|
|
e := timeout{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := &timeout{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestTimeout_Is(t *testing.T) {
|
|
e := timeout{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &timeout{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := timeout{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestTimeout_Unwrap(t *testing.T) {
|
|
e := timeout{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestIsUnauthorized(t *testing.T) {
|
|
e := unauthorized{}
|
|
e1 := &Err{}
|
|
if IsUnauthorized(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &unauthorized{}
|
|
if !IsUnauthorized(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := unauthorized{}
|
|
if !IsUnauthorized(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestUnauthorized_As(t *testing.T) {
|
|
e := unauthorized{Err: Err{m: "test", c: fmt.Errorf("ttt")}}
|
|
e0 := err
|
|
if e.As(e0) {
|
|
t.Errorf("%T should not be assertable as %T", e, e0)
|
|
}
|
|
e1 := Err{}
|
|
if !e.As(&e1) {
|
|
t.Errorf("%T should be assertable as %T", e, e1)
|
|
}
|
|
if e1.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e1, e, e1.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e1.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e1, e, e1.t, e.t)
|
|
}
|
|
if e1.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e1, e, e1.c, e1.c, e.c, e.c)
|
|
}
|
|
e2 := &unauthorized{}
|
|
if !e.As(e2) {
|
|
t.Errorf("%T should be assertable as %T", e, e2)
|
|
}
|
|
if e2.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e2, e, e2.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e2.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e2, e, e2.t, e.t)
|
|
}
|
|
if e2.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e2, e, e2.c, e2.c, e.c, e.c)
|
|
}
|
|
e3 := e2
|
|
if !e.As(&e3) {
|
|
t.Errorf("%T should be assertable as %T", e, e3)
|
|
}
|
|
if e3.m != e.m {
|
|
t.Errorf("%T message should equal %T's, received %s, expected %s", e3, e, e3.m, e.m)
|
|
}
|
|
if !reflect.DeepEqual(e3.t, e.t) {
|
|
t.Errorf("%T trace should equal %T's, received %v, expected %v", e3, e, e3.t, e.t)
|
|
}
|
|
if e3.c != e.c {
|
|
t.Errorf("%T parent error should equal %T's, received %T[%s], expected %T[%s]", e3, e, e3.c, e3.c, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestUnauthorized_Is(t *testing.T) {
|
|
e := unauthorized{}
|
|
if e.Is(err) {
|
|
t.Errorf("%T should not be a valid %T", err, e)
|
|
}
|
|
e1 := &Err{}
|
|
if e.Is(e1) {
|
|
t.Errorf("%T should not be a valid %T", e1, e)
|
|
}
|
|
e2 := &unauthorized{}
|
|
if !e.Is(e2) {
|
|
t.Errorf("%T should be a valid %T", e2, e)
|
|
}
|
|
e3 := unauthorized{}
|
|
if !e.Is(e3) {
|
|
t.Errorf("%T should be a valid %T", e3, e)
|
|
}
|
|
}
|
|
|
|
func TestUnauthorized_Unwrap(t *testing.T) {
|
|
e := unauthorized{Err: Err{c: fmt.Errorf("ttt")}}
|
|
w := e.Unwrap()
|
|
if w != e.c {
|
|
t.Errorf("Unwrap() returned: %T[%s], expected: %T[%s]", w, w, e.c, e.c)
|
|
}
|
|
}
|
|
|
|
func TestUnauthorized_Challenge(t *testing.T) {
|
|
e := &unauthorized{Err: Err{c: fmt.Errorf("ttt")}}
|
|
msgChallenge := "test challenge"
|
|
e = e.Challenge(msgChallenge)
|
|
|
|
if e.challenge != msgChallenge {
|
|
t.Errorf("Invalid challenge message for %T %s, expected %s", e, e.challenge, msgChallenge)
|
|
}
|
|
}
|
|
|
|
func TestChallenge(t *testing.T) {
|
|
var errI error
|
|
msgChallenge := "test challenge"
|
|
e := unauthorized{
|
|
Err: Err{c: fmt.Errorf("ttt")},
|
|
challenge: msgChallenge,
|
|
}
|
|
errI = &e
|
|
if e.challenge != msgChallenge {
|
|
t.Errorf("Invalid challenge message for %T %s, expected %s", e, e.challenge, msgChallenge)
|
|
}
|
|
ch := Challenge(errI)
|
|
if ch != msgChallenge {
|
|
t.Errorf("Invalid challenge message for %T %s, expected %s", errI, ch, msgChallenge)
|
|
}
|
|
}
|
|
|
|
func TestHttpErrors(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|
|
|
|
func TestErrorHandlerFn_ServeHTTP(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|
|
|
|
func TestHandleError(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|
|
|
|
func TestRenderErrors(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|
|
|
|
func TestWrapWithStatus(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|