diff --git a/shadow/shadow_test.go b/shadow/shadow_test.go index 9790d5a1..40302f20 100644 --- a/shadow/shadow_test.go +++ b/shadow/shadow_test.go @@ -366,12 +366,12 @@ func TestGet(t *testing.T) { }, "Error": { response: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, responseTopic: "get/rejected", err: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, }, @@ -460,12 +460,12 @@ func TestDesire(t *testing.T) { "Error": { input: map[string]interface{}{"key": "value"}, response: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, responseTopic: "update/rejected", err: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, }, @@ -554,12 +554,12 @@ func TestReport(t *testing.T) { "Error": { input: map[string]interface{}{"key": "value"}, response: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, responseTopic: "update/rejected", err: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, }, @@ -631,12 +631,12 @@ func TestDelete(t *testing.T) { }, "Error": { response: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, responseTopic: "delete/rejected", err: &ErrorResponse{ - Code: "Failed", + Code: 400, Message: "Reason", }, }, diff --git a/shadow/state.go b/shadow/state.go index e2e21afb..ee3db8eb 100644 --- a/shadow/state.go +++ b/shadow/state.go @@ -15,7 +15,7 @@ type simpleRequest struct { // ErrorResponse represents error response from AWS IoT. type ErrorResponse struct { - Code string `json:"code"` + Code int `json:"code"` Message string `json:"message"` Timestamp int64 `json:"timestamp"` ClientToken string `json:"clientToken"` @@ -23,7 +23,7 @@ type ErrorResponse struct { // Error implements error interface. func (e *ErrorResponse) Error() string { - return fmt.Sprintf("%s (%s): %s", e.Code, e.ClientToken, e.Message) + return fmt.Sprintf("%d (%s): %s", e.Code, e.ClientToken, e.Message) } // ThingState represents Thing Shadow State. diff --git a/shadow/state_test.go b/shadow/state_test.go index 722efea7..5a8152e0 100644 --- a/shadow/state_test.go +++ b/shadow/state_test.go @@ -3,6 +3,7 @@ package shadow import ( "encoding/json" "reflect" + "strings" "testing" ) @@ -73,3 +74,17 @@ func TestThingDocument_update(t *testing.T) { ) } } + +func TestErrorResponse(t *testing.T) { + err := &ErrorResponse{ + Code: 100, + Message: "error message", + } + errStr := err.Error() + if !strings.Contains(errStr, "100") { + t.Error("Error string should contain error code") + } + if !strings.Contains(errStr, "error message") { + t.Error("Error string should contain error message") + } +}