1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package query
import (
"bytes"
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/protocoltest/query/types"
"github.com/aws/smithy-go/middleware"
"github.com/aws/smithy-go/ptr"
smithyrand "github.com/aws/smithy-go/rand"
smithytesting "github.com/aws/smithy-go/testing"
smithyhttp "github.com/aws/smithy-go/transport/http"
"io/ioutil"
"net/http"
"testing"
)
func TestClient_XmlMapsXmlName_awsAwsqueryDeserialize(t *testing.T) {
cases := map[string]struct {
StatusCode int
Header http.Header
BodyMediaType string
Body []byte
ExpectResult *XmlMapsXmlNameOutput
}{
// Serializes XML lists
"QueryQueryXmlMapsXmlName": {
StatusCode: 200,
Header: http.Header{
"Content-Type": []string{"text/xml"},
},
BodyMediaType: "application/xml",
Body: []byte(`<XmlMapsXmlNameResponse xmlns="https://example.com/">
<XmlMapsXmlNameResult>
<myMap>
<entry>
<Attribute>foo</Attribute>
<Setting>
<hi>there</hi>
</Setting>
</entry>
<entry>
<Attribute>baz</Attribute>
<Setting>
<hi>bye</hi>
</Setting>
</entry>
</myMap>
</XmlMapsXmlNameResult>
</XmlMapsXmlNameResponse>
`),
ExpectResult: &XmlMapsXmlNameOutput{
MyMap: map[string]types.GreetingStruct{
"foo": {
Hi: ptr.String("there"),
},
"baz": {
Hi: ptr.String("bye"),
},
},
},
},
}
for name, c := range cases {
t.Run(name, func(t *testing.T) {
serverURL := "http://localhost:8888/"
client := New(Options{
HTTPClient: smithyhttp.ClientDoFunc(func(r *http.Request) (*http.Response, error) {
headers := http.Header{}
for k, vs := range c.Header {
for _, v := range vs {
headers.Add(k, v)
}
}
if len(c.BodyMediaType) != 0 && len(headers.Values("Content-Type")) == 0 {
headers.Set("Content-Type", c.BodyMediaType)
}
response := &http.Response{
StatusCode: c.StatusCode,
Header: headers,
Request: r,
}
if len(c.Body) != 0 {
response.ContentLength = int64(len(c.Body))
response.Body = ioutil.NopCloser(bytes.NewReader(c.Body))
} else {
response.Body = http.NoBody
}
return response, nil
}),
APIOptions: []func(*middleware.Stack) error{
func(s *middleware.Stack) error {
s.Finalize.Clear()
s.Initialize.Remove(`OperationInputValidation`)
return nil
},
},
EndpointResolver: EndpointResolverFunc(func(region string, options EndpointResolverOptions) (e aws.Endpoint, err error) {
e.URL = serverURL
e.SigningRegion = "us-west-2"
return e, err
}),
IdempotencyTokenProvider: smithyrand.NewUUIDIdempotencyToken(&smithytesting.ByteLoop{}),
Region: "us-west-2",
})
var params XmlMapsXmlNameInput
result, err := client.XmlMapsXmlName(context.Background(), ¶ms)
if err != nil {
t.Fatalf("expect nil err, got %v", err)
}
if result == nil {
t.Fatalf("expect not nil result")
}
if err := smithytesting.CompareValues(c.ExpectResult, result); err != nil {
t.Errorf("expect c.ExpectResult value match:\n%v", err)
}
})
}
}
|