From ca03e976976a03d278da227fe1ec9966f23484ba Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Thu, 26 Mar 2015 13:33:44 +0100 Subject: [PATCH] Add InvalidTypeError --- rpc/messages.go | 16 ++++++++++++++++ rpc/messages_test.go | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/rpc/messages.go b/rpc/messages.go index 7f5ebab11b..5c498234f9 100644 --- a/rpc/messages.go +++ b/rpc/messages.go @@ -21,6 +21,22 @@ import ( "fmt" ) +type InvalidTypeError struct { + method string + msg string +} + +func (e *InvalidTypeError) Error() string { + return fmt.Sprintf("invalid type on field %s: %s", e.method, e.msg) +} + +func NewInvalidTypeError(method, msg string) *InvalidTypeError { + return &InvalidTypeError{ + method: method, + msg: msg, + } +} + type InsufficientParamsError struct { have int want int diff --git a/rpc/messages_test.go b/rpc/messages_test.go index 5274c91e42..91f0152dc8 100644 --- a/rpc/messages_test.go +++ b/rpc/messages_test.go @@ -4,6 +4,15 @@ import ( "testing" ) +func TestInvalidTypeError(t *testing.T) { + err := NewInvalidTypeError("testField", "not string") + expected := "invalid type on field testField: not string" + + if err.Error() != expected { + t.Error(err.Error()) + } +} + func TestInsufficientParamsError(t *testing.T) { err := NewInsufficientParamsError(0, 1) expected := "insufficient params, want 1 have 0"