...
1 package mxj
2
3 import (
4 "testing"
5 )
6
7 func TestSetValueForPath(t *testing.T) {
8 m := map[string]interface{}{
9 "Div": map[string]interface{}{
10 "Colour": "blue",
11 "Font": map[string]interface{}{
12 "Family": "sans",
13 },
14 },
15 }
16 mv := Map(m)
17
18
19 err := mv.SetValueForPath("big", "Div.Font.Size")
20 if err != nil {
21 t.Fatal(err)
22 }
23 val, err := mv.ValueForPathString("Div.Font.Size")
24 if err != nil {
25 t.Fatal(err)
26 }
27 if val != "big" {
28 t.Fatal("key's value hasn't changed")
29 }
30
31
32 err = mv.SetValueForPath("red", "Div.Colour")
33 if err != nil {
34 t.Fatal(err)
35 }
36 val, err = mv.ValueForPathString("Div.Colour")
37 if err != nil {
38 t.Fatal(err)
39 }
40 if val != "red" {
41 t.Fatal("existig key's value hasn't changed")
42 }
43 }
44
View as plain text