package xml
import (
"bytes"
"testing"
)
func TestWrappedMap(t *testing.T) {
buffer := bytes.NewBuffer(nil)
scratch := make([]byte, 64)
func() {
m := newMap(buffer, &scratch)
key := StartElement{Name: Name{Local: "key"}}
value := StartElement{Name: Name{Local: "value"}}
// map entry
e := m.Entry()
e.MemberElement(key).String("example-key1")
e.MemberElement(value).String("example1")
e.Close()
// map entry
e = m.Entry()
e.MemberElement(key).String("example-key2")
e.MemberElement(value).String("example2")
e.Close()
// map entry
e = m.Entry()
e.MemberElement(key).String("example-key3")
e.MemberElement(value).String("example3")
e.Close()
}()
ex := []byte(`example-key1example1example-key2example2example-key3example3`)
if a := buffer.Bytes(); bytes.Compare(ex, a) != 0 {
t.Errorf("expected %+q, but got %+q", ex, a)
}
}
func TestFlattenedMapWithCustomName(t *testing.T) {
buffer := bytes.NewBuffer(nil)
scratch := make([]byte, 64)
func() {
root := StartElement{Name: Name{Local: "flatMap"}}
m := newFlattenedMap(buffer, &scratch, root)
key := StartElement{Name: Name{Local: "key"}}
value := StartElement{Name: Name{Local: "value"}}
// map entry
e := m.Entry()
e.MemberElement(key).String("example-key1")
e.MemberElement(value).String("example1")
e.Close()
// map entry
e = m.Entry()
e.MemberElement(key).String("example-key2")
e.MemberElement(value).String("example2")
e.Close()
// map entry
e = m.Entry()
e.MemberElement(key).String("example-key3")
e.MemberElement(value).String("example3")
e.Close()
}()
ex := []byte(`example-key1example1example-key2example2example-key3example3`)
if a := buffer.Bytes(); bytes.Compare(ex, a) != 0 {
t.Errorf("expected %+q, but got %+q", ex, a)
}
}