diff --git a/errors/errors_test.go b/errors/errors_test.go new file mode 100644 index 00000000..d20d2100 --- /dev/null +++ b/errors/errors_test.go @@ -0,0 +1,47 @@ +package errors + +import ( + "net/http" + "testing" +) + +func TestErrors(t *testing.T) { + testData := []*Error{ + &Error{ + Id: "test", + Code: 500, + Detail: "Internal server error", + Status: http.StatusText(500), + }, + } + + for _, e := range testData { + ne := New(e.Id, e.Detail, e.Code) + + if e.Error() != ne.Error() { + t.Fatal("Expected %s got %s", e.Error(), ne.Error()) + } + + pe := Parse(ne.Error()) + + if pe == nil { + t.Fatal("Expected error got nil %v", pe) + } + + if pe.Id != e.Id { + t.Fatal("Expected %s got %s", e.Id, pe.Id) + } + + if pe.Detail != e.Detail { + t.Fatal("Expected %s got %s", e.Detail, pe.Detail) + } + + if pe.Code != e.Code { + t.Fatal("Expected %s got %s", e.Code, pe.Code) + } + + if pe.Status != e.Status { + t.Fatal("Expected %s got %s", e.Status, pe.Status) + } + } +}