[Groonga-commit] groonga/grnci at 82211f1 [master] Add NewError2.

Back to archive index

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����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index