You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
993 B
55 lines
993 B
4 years ago
|
package errors
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestErrorsMatch(t *testing.T) {
|
||
|
s := &StatusError{Code: 1}
|
||
|
st := &StatusError{Code: 2}
|
||
|
|
||
|
if errors.Is(s, st) {
|
||
|
t.Errorf("error is not match: %+v -> %+v", s, st)
|
||
|
}
|
||
|
|
||
|
s.Code = 1
|
||
|
st.Code = 1
|
||
|
if !errors.Is(s, st) {
|
||
|
t.Errorf("error is not match: %+v -> %+v", s, st)
|
||
|
}
|
||
|
|
||
|
s.Reason = "test_reason"
|
||
|
s.Reason = "test_reason"
|
||
|
|
||
|
if !errors.Is(s, st) {
|
||
|
t.Errorf("error is not match: %+v -> %+v", s, st)
|
||
|
}
|
||
|
|
||
|
if Reason(s) != "test_reason" {
|
||
|
t.Errorf("error is not match: %+v -> %+v", s, st)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestErrorIs(t *testing.T) {
|
||
|
err1 := &StatusError{Code: 1}
|
||
|
t.Log(err1)
|
||
|
err2 := fmt.Errorf("wrap : %w", err1)
|
||
|
t.Log(err2)
|
||
|
|
||
|
if !(errors.Is(err2, err1)) {
|
||
|
t.Errorf("error is not match: a: %v b: %v ", err2, err1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestErrorAs(t *testing.T) {
|
||
|
err1 := &StatusError{Code: 1}
|
||
|
err2 := fmt.Errorf("wrap : %w", err1)
|
||
|
|
||
|
err3 := new(StatusError)
|
||
|
if !errors.As(err2, &err3) {
|
||
|
t.Errorf("error is not match: %v", err2)
|
||
|
}
|
||
|
}
|