Initial commit
This commit is contained in:
71
errors/errors_test.go
Normal file
71
errors/errors_test.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package errors
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type CustomError struct {
|
||||
Err error
|
||||
}
|
||||
|
||||
func (e *CustomError) Error() string { return e.Err.Error() }
|
||||
|
||||
func IsCustomError(err error) bool {
|
||||
var asError *CustomError
|
||||
return errors.As(err, &asError)
|
||||
}
|
||||
|
||||
func TestWrapping(t *testing.T) {
|
||||
t.Parallel()
|
||||
originalErr := errors.New("original error")
|
||||
err1 := NewError(originalErr)
|
||||
if !errors.Is(err1, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
if !Is(err1, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
unwrappedErr := errors.Unwrap(err1)
|
||||
if !errors.Is(unwrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
if !Is(unwrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
unwrappedErr = Unwrap(err1)
|
||||
if !errors.Is(unwrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
if !Is(unwrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
wrappedErr := fmt.Errorf("wrapped: %w", originalErr)
|
||||
if !errors.Is(wrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
if !Is(wrappedErr, originalErr) {
|
||||
t.Errorf("original error is not wrapped")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewError(t *testing.T) {
|
||||
t.Parallel()
|
||||
originalErr := &CustomError{errors.New("err1")}
|
||||
if !IsCustomError(originalErr) {
|
||||
t.Errorf("TestNewError fail #1")
|
||||
}
|
||||
err1 := NewError(originalErr)
|
||||
if !IsCustomError(err1) {
|
||||
t.Errorf("TestNewError fail #2")
|
||||
}
|
||||
wrappedErr1 := fmt.Errorf("wrapped %w", err1)
|
||||
if !IsCustomError(wrappedErr1) {
|
||||
t.Errorf("TestNewError fail #3")
|
||||
}
|
||||
unwrappedErr1 := Unwrap(wrappedErr1)
|
||||
if !IsCustomError(unwrappedErr1) {
|
||||
t.Errorf("TestNewError fail #4")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user