Susumu Yata
null+****@clear*****
Wed Aug 2 15:12:47 JST 2017
Susumu Yata 2017-08-02 15:12:47 +0900 (Wed, 02 Aug 2017) New Revision: 82211f1e7e654318d9a532fa403c0d496490ba38 https://github.com/groonga/grnci/commit/82211f1e7e654318d9a532fa403c0d496490ba38 Message: Add NewError2. Modified files: v2/error.go v2/error_test.go Modified: v2/error.go (+16 -2) =================================================================== --- v2/error.go 2017-08-02 12:27:48 +0900 (3770722) +++ v2/error.go 2017-08-02 15:12:47 +0900 (f52d2c7) @@ -243,8 +243,9 @@ func (ec ErrorCode) MarshalJSON() ([]byte, error) { // Error stores an error. type Error struct { - Code ErrorCode `json:"code"` - Data map[string]interface{} `json:"data,omitempty"` + Code ErrorCode `json:"code"` + Message string `json:"message,omitempty"` + Data map[string]interface{} `json:"data,omitempty"` } // NewError returns a new Error. @@ -259,6 +260,19 @@ func NewError(code ErrorCode, data map[string]interface{}) *Error { return err } +// NewError2 returns a new Error. +func NewError2(code ErrorCode, msg string, data map[string]interface{}) *Error { + err := &Error{ + Code: code, + Message: msg, + Data: make(map[string]interface{}), + } + for k, v := range data { + err.Data[k] = v + } + return err +} + // Error returns the JSON-encoded error. func (e *Error) Error() string { b, _ := json.Marshal(e) Modified: v2/error_test.go (+20 -0) =================================================================== --- v2/error_test.go 2017-08-02 12:27:48 +0900 (0d7419d) +++ v2/error_test.go 2017-08-02 15:12:47 +0900 (d883b2e) @@ -46,3 +46,23 @@ func TestNewError(t *testing.T) { } } } + +func TestNewError2(t *testing.T) { + msg := "This is a test of NewError2." + data := map[string]interface{}{ + "string": "value", + "int": 100, + } + err := NewError2(AddressError, msg, data) + if err.Code != AddressError { + t.Fatalf("NewError2 failed: Code = %d, want = %d", err.Code, AddressError) + } + if err.Message != msg { + t.Fatalf("NewError2 failed: Message = %s, want = %s", err.Message, msg) + } + for k, v := range data { + if err.Data[k] != v { + t.Fatalf("NewError failed: Data[\"%s\"] = %s, want = %s", k, err.Data[k], v) + } + } +} -------------- next part -------------- HTML����������������������������...Descargar