...
1 package jsonrpc
2
3 import "testing"
4
5 func TestError(t *testing.T) {
6 wantCode := ParseError
7 sut := Error{
8 Code: wantCode,
9 }
10
11 gotCode := sut.ErrorCode()
12 if gotCode != wantCode {
13 t.Fatalf("want=%d, got=%d", gotCode, wantCode)
14 }
15
16 if sut.Error() == "" {
17 t.Fatal("Empty error string.")
18 }
19
20 want := "override"
21 sut.Message = want
22 got := sut.Error()
23 if sut.Error() != want {
24 t.Fatalf("overridden error message: want=%s, got=%s", want, got)
25 }
26
27 }
28 func TestErrorsSatisfyError(t *testing.T) {
29 errs := []interface{}{
30 parseError("parseError"),
31 invalidRequestError("invalidRequestError"),
32 methodNotFoundError("methodNotFoundError"),
33 invalidParamsError("invalidParamsError"),
34 internalError("internalError"),
35 }
36 for _, e := range errs {
37 err, ok := e.(error)
38 if !ok {
39 t.Fatalf("Couldn't assert %s as error.", e)
40 }
41 errString := err.Error()
42 if errString == "" {
43 t.Fatal("Empty error string")
44 }
45
46 ec, ok := e.(ErrorCoder)
47 if !ok {
48 t.Fatalf("Couldn't assert %s as ErrorCoder.", e)
49 }
50 if ErrorMessage(ec.ErrorCode()) == "" {
51 t.Fatalf("Error type %s returned code of %d, which does not map to error string", e, ec.ErrorCode())
52 }
53 }
54 }
55
View as plain text