...

Source file src/github.com/aws/smithy-go/encoding/xml/map_test.go

Documentation: github.com/aws/smithy-go/encoding/xml

     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  		// map entry
    19  		e := m.Entry()
    20  		e.MemberElement(key).String("example-key1")
    21  		e.MemberElement(value).String("example1")
    22  		e.Close()
    23  
    24  		// map entry
    25  		e = m.Entry()
    26  		e.MemberElement(key).String("example-key2")
    27  		e.MemberElement(value).String("example2")
    28  		e.Close()
    29  
    30  		// map entry
    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  		// map entry
    55  		e := m.Entry()
    56  		e.MemberElement(key).String("example-key1")
    57  		e.MemberElement(value).String("example1")
    58  		e.Close()
    59  
    60  		// map entry
    61  		e = m.Entry()
    62  		e.MemberElement(key).String("example-key2")
    63  		e.MemberElement(value).String("example2")
    64  		e.Close()
    65  
    66  		// map entry
    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