...
1
2
3 package mxj
4
5 import (
6 "fmt"
7 "testing"
8 )
9
10 var data = []byte(`
11 <doc>
12 <elem1 attr1="this" attr2="is">a test</elem1>
13 <elem2 attr1="this" attr2="is not">a test</elem2>
14 </doc>
15 `)
16
17 func TestPrefixDefault(t *testing.T) {
18 fmt.Println("----------------- TestPrefixDefault ...")
19 m, err := NewMapXml(data)
20 if err != nil {
21 t.Fatal(err)
22 }
23 vals, err := m.ValuesForKey("-attr1")
24 if err != nil {
25 t.Fatal(err)
26 }
27 if len(vals) != 2 {
28 t.Fatal("didn't get 2 -attr1 vals", len(vals))
29 }
30 vals, err = m.ValuesForKey("-attr2")
31 if err != nil {
32 t.Fatal(err)
33 }
34 if len(vals) != 2 {
35 t.Fatal("didn't get 2 -attr2 vals", len(vals))
36 }
37 }
38
39 func TestPrefixNoHyphen(t *testing.T) {
40 fmt.Println("----------------- TestPrefixNoHyphen ...")
41 PrependAttrWithHyphen(false)
42 m, err := NewMapXml(data)
43 if err != nil {
44 t.Fatal(err)
45 }
46 vals, err := m.ValuesForKey("attr1")
47 if err != nil {
48 t.Fatal(err)
49 }
50 if len(vals) != 2 {
51 t.Fatal("didn't get 2 attr1 vals", len(vals))
52 }
53 vals, err = m.ValuesForKey("attr2")
54 if err != nil {
55 t.Fatal(err)
56 }
57 if len(vals) != 2 {
58 t.Fatal("didn't get 2 attr2 vals", len(vals))
59 }
60 }
61
62 func TestPrefixUnderscore(t *testing.T) {
63 fmt.Println("----------------- TestPrefixUnderscore ...")
64 SetAttrPrefix("_")
65 m, err := NewMapXml(data)
66 if err != nil {
67 t.Fatal(err)
68 }
69 vals, err := m.ValuesForKey("_attr1")
70 if err != nil {
71 t.Fatal(err)
72 }
73 if len(vals) != 2 {
74 t.Fatal("didn't get 2 _attr1 vals", len(vals))
75 }
76 vals, err = m.ValuesForKey("_attr2")
77 if err != nil {
78 t.Fatal(err)
79 }
80 if len(vals) != 2 {
81 t.Fatal("didn't get 2 _attr2 vals", len(vals))
82 }
83 }
84
85 func TestPrefixAt(t *testing.T) {
86 fmt.Println("----------------- TestPrefixAt ...")
87 SetAttrPrefix("@")
88 m, err := NewMapXml(data)
89 if err != nil {
90 t.Fatal(err)
91 }
92 vals, err := m.ValuesForKey("@attr1")
93 if err != nil {
94 t.Fatal(err)
95 }
96 if len(vals) != 2 {
97 t.Fatal("didn't get 2 @attr1 vals", len(vals))
98 }
99 vals, err = m.ValuesForKey("@attr2")
100 if err != nil {
101 t.Fatal(err)
102 }
103 if len(vals) != 2 {
104 t.Fatal("didn't get 2 @attr2 vals", len(vals))
105 }
106 }
107
108 func TestMarshalPrefixDefault(t *testing.T) {
109 fmt.Println("----------------- TestMarshalPrefixDefault ...")
110 m, err := NewMapXml(data)
111 if err != nil {
112 t.Fatal(err)
113 }
114 x, err := m.XmlIndent("", " ")
115 if err != nil {
116 t.Fatal(err)
117 }
118 fmt.Println(string(x))
119 }
120
121 func TestMarshalPrefixNoHyphen(t *testing.T) {
122 fmt.Println("----------------- TestMarshalPrefixNoHyphen ...")
123
124 PrependAttrWithHyphen(false)
125 m, err := NewMapXml(data)
126 if err != nil {
127 t.Fatal(err)
128 }
129 x, err := m.XmlIndent("", " ")
130 if err != nil {
131 t.Fatal("error not reported for invalid key label")
132 }
133 fmt.Println("x:", string(x))
134 }
135
136 func TestMarshalPrefixUnderscore(t *testing.T) {
137 fmt.Println("----------------- TestMarshalPrefixUnderscore ...")
138 SetAttrPrefix("_")
139 m, err := NewMapXml(data)
140 if err != nil {
141 t.Fatal(err)
142 }
143 x, err := m.XmlIndent("", " ")
144 if err != nil {
145 t.Fatal(err)
146 }
147 fmt.Println(string(x))
148 }
149
150
View as plain text