...
1 package xml
2
3 import (
4 "bytes"
5 "testing"
6 )
7
8 func TestWrappedMap(t *testing.T) {
9 buffer := bytes.NewBuffer(nil)
10 scratch := make([]byte, 64)
11
12 func() {
13 m := newMap(buffer, &scratch)
14
15 key := StartElement{Name: Name{Local: "key"}}
16 value := StartElement{Name: Name{Local: "value"}}
17
18
19 e := m.Entry()
20 e.MemberElement(key).String("example-key1")
21 e.MemberElement(value).String("example1")
22 e.Close()
23
24
25 e = m.Entry()
26 e.MemberElement(key).String("example-key2")
27 e.MemberElement(value).String("example2")
28 e.Close()
29
30
31 e = m.Entry()
32 e.MemberElement(key).String("example-key3")
33 e.MemberElement(value).String("example3")
34 e.Close()
35 }()
36
37 ex := []byte(`<entry><key>example-key1</key><value>example1</value></entry><entry><key>example-key2</key><value>example2</value></entry><entry><key>example-key3</key><value>example3</value></entry>`)
38 if a := buffer.Bytes(); bytes.Compare(ex, a) != 0 {
39 t.Errorf("expected %+q, but got %+q", ex, a)
40 }
41 }
42
43 func TestFlattenedMapWithCustomName(t *testing.T) {
44 buffer := bytes.NewBuffer(nil)
45 scratch := make([]byte, 64)
46
47 func() {
48 root := StartElement{Name: Name{Local: "flatMap"}}
49 m := newFlattenedMap(buffer, &scratch, root)
50
51 key := StartElement{Name: Name{Local: "key"}}
52 value := StartElement{Name: Name{Local: "value"}}
53
54
55 e := m.Entry()
56 e.MemberElement(key).String("example-key1")
57 e.MemberElement(value).String("example1")
58 e.Close()
59
60
61 e = m.Entry()
62 e.MemberElement(key).String("example-key2")
63 e.MemberElement(value).String("example2")
64 e.Close()
65
66
67 e = m.Entry()
68 e.MemberElement(key).String("example-key3")
69 e.MemberElement(value).String("example3")
70 e.Close()
71 }()
72
73 ex := []byte(`<flatMap><key>example-key1</key><value>example1</value></flatMap><flatMap><key>example-key2</key><value>example2</value></flatMap><flatMap><key>example-key3</key><value>example3</value></flatMap>`)
74 if a := buffer.Bytes(); bytes.Compare(ex, a) != 0 {
75 t.Errorf("expected %+q, but got %+q", ex, a)
76 }
77 }
78
View as plain text