github.com/annwntech/go-micro/v2@v2.9.5/errors/errors_test.go (about)

     1  package errors
     2  
     3  import (
     4  	er "errors"
     5  	"net/http"
     6  	"testing"
     7  )
     8  
     9  func TestFromError(t *testing.T) {
    10  	err := NotFound("go.micro.test", "%s", "example")
    11  	merr := FromError(err)
    12  	if merr.Id != "go.micro.test" || merr.Code != 404 {
    13  		t.Fatalf("invalid conversation %v != %v", err, merr)
    14  	}
    15  	err = er.New(err.Error())
    16  	merr = FromError(err)
    17  	if merr.Id != "go.micro.test" || merr.Code != 404 {
    18  		t.Fatalf("invalid conversation %v != %v", err, merr)
    19  	}
    20  
    21  }
    22  
    23  func TestEqual(t *testing.T) {
    24  	err1 := NotFound("myid1", "msg1")
    25  	err2 := NotFound("myid2", "msg2")
    26  
    27  	if !Equal(err1, err2) {
    28  		t.Fatal("errors must be equal")
    29  	}
    30  
    31  	err3 := er.New("my test err")
    32  	if Equal(err1, err3) {
    33  		t.Fatal("errors must be not equal")
    34  	}
    35  
    36  }
    37  
    38  func TestErrors(t *testing.T) {
    39  	testData := []*Error{
    40  		{
    41  			Id:     "test",
    42  			Code:   500,
    43  			Detail: "Internal server error",
    44  			Status: http.StatusText(500),
    45  		},
    46  	}
    47  
    48  	for _, e := range testData {
    49  		ne := New(e.Id, e.Detail, e.Code)
    50  
    51  		if e.Error() != ne.Error() {
    52  			t.Fatalf("Expected %s got %s", e.Error(), ne.Error())
    53  		}
    54  
    55  		pe := Parse(ne.Error())
    56  
    57  		if pe == nil {
    58  			t.Fatalf("Expected error got nil %v", pe)
    59  		}
    60  
    61  		if pe.Id != e.Id {
    62  			t.Fatalf("Expected %s got %s", e.Id, pe.Id)
    63  		}
    64  
    65  		if pe.Detail != e.Detail {
    66  			t.Fatalf("Expected %s got %s", e.Detail, pe.Detail)
    67  		}
    68  
    69  		if pe.Code != e.Code {
    70  			t.Fatalf("Expected %d got %d", e.Code, pe.Code)
    71  		}
    72  
    73  		if pe.Status != e.Status {
    74  			t.Fatalf("Expected %s got %s", e.Status, pe.Status)
    75  		}
    76  	}
    77  }