package jsonrpc
import "testing"
func TestError(t *testing.T) {
wantCode := ParseError
sut := Error{
Code: wantCode,
}
gotCode := sut.ErrorCode()
if gotCode != wantCode {
t.Fatalf("want=%d, got=%d", gotCode, wantCode)
}
if sut.Error() == "" {
t.Fatal("Empty error string.")
}
want := "override"
sut.Message = want
got := sut.Error()
if sut.Error() != want {
t.Fatalf("overridden error message: want=%s, got=%s", want, got)
}
}
func TestErrorsSatisfyError(t *testing.T) {
errs := []interface{}{
parseError("parseError"),
invalidRequestError("invalidRequestError"),
methodNotFoundError("methodNotFoundError"),
invalidParamsError("invalidParamsError"),
internalError("internalError"),
}
for _, e := range errs {
err, ok := e.(error)
if !ok {
t.Fatalf("Couldn't assert %s as error.", e)
}
errString := err.Error()
if errString == "" {
t.Fatal("Empty error string")
}
ec, ok := e.(ErrorCoder)
if !ok {
t.Fatalf("Couldn't assert %s as ErrorCoder.", e)
}
if ErrorMessage(ec.ErrorCode()) == "" {
t.Fatalf("Error type %s returned code of %d, which does not map to error string", e, ec.ErrorCode())
}
}
}