added test for Set
diff --git a/src/gojsonpointer/pointer_test.go b/src/gojsonpointer/pointer_test.go
index 2ad21d2..8b97d82 100644
--- a/src/gojsonpointer/pointer_test.go
+++ b/src/gojsonpointer/pointer_test.go
@@ -149,3 +149,43 @@
}
}
+
+func TestSetNode(t *testing.T) {
+
+ jsonText := `{"a":[{"b": 1, "c": 2}], "d": 3}`
+
+ var jsonDocument interface{}
+ json.Unmarshal([]byte(jsonText), &jsonDocument)
+
+ in := "/a/0/c"
+
+ p, err := NewJsonPointer(in)
+ if err != nil {
+ t.Errorf("NewJsonPointer(%v) error %v", in, err.Error())
+ }
+
+ _, err = p.Set(jsonDocument, 999)
+ if err != nil {
+ t.Errorf("Set(%v) error %v", in, err.Error())
+ }
+
+ firstNode := jsonDocument.(map[string]interface{})
+ if len(firstNode) != 2 {
+ t.Errorf("Set(%s) failed", in)
+ }
+
+ sliceNode := firstNode["a"].([]interface{})
+ if len(sliceNode) != 1 {
+ t.Errorf("Set(%s) failed", in)
+ }
+
+ changedNode := sliceNode[0].(map[string]interface{})
+ changedNodeValue := changedNode["c"].(int)
+
+ if changedNodeValue != 999 {
+ if len(sliceNode) != 1 {
+ t.Errorf("Set(%s) failed", in)
+ }
+ }
+
+}