github.com/imannamdari/v2ray-core/v5@v5.0.5/common/errors/errors_test.go (about)

     1  package errors_test
     2  
     3  import (
     4  	"io"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/google/go-cmp/cmp"
     9  
    10  	. "github.com/imannamdari/v2ray-core/v5/common/errors"
    11  	"github.com/imannamdari/v2ray-core/v5/common/log"
    12  )
    13  
    14  func TestError(t *testing.T) {
    15  	err := New("TestError")
    16  	if v := GetSeverity(err); v != log.Severity_Info {
    17  		t.Error("severity: ", v)
    18  	}
    19  
    20  	err = New("TestError2").Base(io.EOF)
    21  	if v := GetSeverity(err); v != log.Severity_Info {
    22  		t.Error("severity: ", v)
    23  	}
    24  
    25  	err = New("TestError3").Base(io.EOF).AtWarning()
    26  	if v := GetSeverity(err); v != log.Severity_Warning {
    27  		t.Error("severity: ", v)
    28  	}
    29  
    30  	err = New("TestError4").Base(io.EOF).AtWarning()
    31  	err = New("TestError5").Base(err)
    32  	if v := GetSeverity(err); v != log.Severity_Warning {
    33  		t.Error("severity: ", v)
    34  	}
    35  	if v := err.Error(); !strings.Contains(v, "EOF") {
    36  		t.Error("error: ", v)
    37  	}
    38  }
    39  
    40  type e struct{}
    41  
    42  func TestErrorMessage(t *testing.T) {
    43  	data := []struct {
    44  		err error
    45  		msg string
    46  	}{
    47  		{
    48  			err: New("a").Base(New("b")).WithPathObj(e{}),
    49  			msg: "common/errors_test: a > b",
    50  		},
    51  		{
    52  			err: New("a").Base(New("b").WithPathObj(e{})),
    53  			msg: "a > common/errors_test: b",
    54  		},
    55  	}
    56  
    57  	for _, d := range data {
    58  		if diff := cmp.Diff(d.msg, d.err.Error()); diff != "" {
    59  			t.Error(diff)
    60  		}
    61  	}
    62  }