unmarshal_test.go 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  1. package ec2query_test
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "encoding/xml"
  6. "io"
  7. "io/ioutil"
  8. "net/http"
  9. "net/url"
  10. "testing"
  11. "time"
  12. "github.com/aws/aws-sdk-go/aws"
  13. "github.com/aws/aws-sdk-go/aws/defaults"
  14. "github.com/aws/aws-sdk-go/aws/request"
  15. "github.com/aws/aws-sdk-go/aws/service"
  16. "github.com/aws/aws-sdk-go/aws/service/serviceinfo"
  17. "github.com/aws/aws-sdk-go/internal/protocol/ec2query"
  18. "github.com/aws/aws-sdk-go/internal/protocol/xml/xmlutil"
  19. "github.com/aws/aws-sdk-go/internal/signer/v4"
  20. "github.com/aws/aws-sdk-go/internal/util"
  21. "github.com/stretchr/testify/assert"
  22. )
  23. var _ bytes.Buffer // always import bytes
  24. var _ http.Request
  25. var _ json.Marshaler
  26. var _ time.Time
  27. var _ xmlutil.XMLNode
  28. var _ xml.Attr
  29. var _ = ioutil.Discard
  30. var _ = util.Trim("")
  31. var _ = url.Values{}
  32. var _ = io.EOF
  33. type OutputService1ProtocolTest struct {
  34. *service.Service
  35. }
  36. // New returns a new OutputService1ProtocolTest client.
  37. func NewOutputService1ProtocolTest(config *aws.Config) *OutputService1ProtocolTest {
  38. service := &service.Service{
  39. ServiceInfo: serviceinfo.ServiceInfo{
  40. Config: defaults.DefaultConfig.Merge(config),
  41. ServiceName: "outputservice1protocoltest",
  42. APIVersion: "",
  43. },
  44. }
  45. service.Initialize()
  46. // Handlers
  47. service.Handlers.Sign.PushBack(v4.Sign)
  48. service.Handlers.Build.PushBack(ec2query.Build)
  49. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  50. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  51. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  52. return &OutputService1ProtocolTest{service}
  53. }
  54. // newRequest creates a new request for a OutputService1ProtocolTest operation and runs any
  55. // custom request initialization.
  56. func (c *OutputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  57. req := c.NewRequest(op, params, data)
  58. return req
  59. }
  60. const opOutputService1TestCaseOperation1 = "OperationName"
  61. // OutputService1TestCaseOperation1Request generates a request for the OutputService1TestCaseOperation1 operation.
  62. func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1Request(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (req *request.Request, output *OutputService1TestShapeOutputService1TestCaseOperation1Output) {
  63. op := &request.Operation{
  64. Name: opOutputService1TestCaseOperation1,
  65. }
  66. if input == nil {
  67. input = &OutputService1TestShapeOutputService1TestCaseOperation1Input{}
  68. }
  69. req = c.newRequest(op, input, output)
  70. output = &OutputService1TestShapeOutputService1TestCaseOperation1Output{}
  71. req.Data = output
  72. return
  73. }
  74. func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (*OutputService1TestShapeOutputService1TestCaseOperation1Output, error) {
  75. req, out := c.OutputService1TestCaseOperation1Request(input)
  76. err := req.Send()
  77. return out, err
  78. }
  79. type OutputService1TestShapeOutputService1TestCaseOperation1Input struct {
  80. metadataOutputService1TestShapeOutputService1TestCaseOperation1Input `json:"-" xml:"-"`
  81. }
  82. type metadataOutputService1TestShapeOutputService1TestCaseOperation1Input struct {
  83. SDKShapeTraits bool `type:"structure"`
  84. }
  85. type OutputService1TestShapeOutputService1TestCaseOperation1Output struct {
  86. Char *string `type:"character"`
  87. Double *float64 `type:"double"`
  88. FalseBool *bool `type:"boolean"`
  89. Float *float64 `type:"float"`
  90. Long *int64 `type:"long"`
  91. Num *int64 `locationName:"FooNum" type:"integer"`
  92. Str *string `type:"string"`
  93. TrueBool *bool `type:"boolean"`
  94. metadataOutputService1TestShapeOutputService1TestCaseOperation1Output `json:"-" xml:"-"`
  95. }
  96. type metadataOutputService1TestShapeOutputService1TestCaseOperation1Output struct {
  97. SDKShapeTraits bool `type:"structure"`
  98. }
  99. type OutputService2ProtocolTest struct {
  100. *service.Service
  101. }
  102. // New returns a new OutputService2ProtocolTest client.
  103. func NewOutputService2ProtocolTest(config *aws.Config) *OutputService2ProtocolTest {
  104. service := &service.Service{
  105. ServiceInfo: serviceinfo.ServiceInfo{
  106. Config: defaults.DefaultConfig.Merge(config),
  107. ServiceName: "outputservice2protocoltest",
  108. APIVersion: "",
  109. },
  110. }
  111. service.Initialize()
  112. // Handlers
  113. service.Handlers.Sign.PushBack(v4.Sign)
  114. service.Handlers.Build.PushBack(ec2query.Build)
  115. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  116. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  117. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  118. return &OutputService2ProtocolTest{service}
  119. }
  120. // newRequest creates a new request for a OutputService2ProtocolTest operation and runs any
  121. // custom request initialization.
  122. func (c *OutputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  123. req := c.NewRequest(op, params, data)
  124. return req
  125. }
  126. const opOutputService2TestCaseOperation1 = "OperationName"
  127. // OutputService2TestCaseOperation1Request generates a request for the OutputService2TestCaseOperation1 operation.
  128. func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1Request(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (req *request.Request, output *OutputService2TestShapeOutputService2TestCaseOperation1Output) {
  129. op := &request.Operation{
  130. Name: opOutputService2TestCaseOperation1,
  131. }
  132. if input == nil {
  133. input = &OutputService2TestShapeOutputService2TestCaseOperation1Input{}
  134. }
  135. req = c.newRequest(op, input, output)
  136. output = &OutputService2TestShapeOutputService2TestCaseOperation1Output{}
  137. req.Data = output
  138. return
  139. }
  140. func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
  141. req, out := c.OutputService2TestCaseOperation1Request(input)
  142. err := req.Send()
  143. return out, err
  144. }
  145. type OutputService2TestShapeOutputService2TestCaseOperation1Input struct {
  146. metadataOutputService2TestShapeOutputService2TestCaseOperation1Input `json:"-" xml:"-"`
  147. }
  148. type metadataOutputService2TestShapeOutputService2TestCaseOperation1Input struct {
  149. SDKShapeTraits bool `type:"structure"`
  150. }
  151. type OutputService2TestShapeOutputService2TestCaseOperation1Output struct {
  152. Blob []byte `type:"blob"`
  153. metadataOutputService2TestShapeOutputService2TestCaseOperation1Output `json:"-" xml:"-"`
  154. }
  155. type metadataOutputService2TestShapeOutputService2TestCaseOperation1Output struct {
  156. SDKShapeTraits bool `type:"structure"`
  157. }
  158. type OutputService3ProtocolTest struct {
  159. *service.Service
  160. }
  161. // New returns a new OutputService3ProtocolTest client.
  162. func NewOutputService3ProtocolTest(config *aws.Config) *OutputService3ProtocolTest {
  163. service := &service.Service{
  164. ServiceInfo: serviceinfo.ServiceInfo{
  165. Config: defaults.DefaultConfig.Merge(config),
  166. ServiceName: "outputservice3protocoltest",
  167. APIVersion: "",
  168. },
  169. }
  170. service.Initialize()
  171. // Handlers
  172. service.Handlers.Sign.PushBack(v4.Sign)
  173. service.Handlers.Build.PushBack(ec2query.Build)
  174. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  175. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  176. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  177. return &OutputService3ProtocolTest{service}
  178. }
  179. // newRequest creates a new request for a OutputService3ProtocolTest operation and runs any
  180. // custom request initialization.
  181. func (c *OutputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  182. req := c.NewRequest(op, params, data)
  183. return req
  184. }
  185. const opOutputService3TestCaseOperation1 = "OperationName"
  186. // OutputService3TestCaseOperation1Request generates a request for the OutputService3TestCaseOperation1 operation.
  187. func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1Request(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (req *request.Request, output *OutputService3TestShapeOutputService3TestCaseOperation1Output) {
  188. op := &request.Operation{
  189. Name: opOutputService3TestCaseOperation1,
  190. }
  191. if input == nil {
  192. input = &OutputService3TestShapeOutputService3TestCaseOperation1Input{}
  193. }
  194. req = c.newRequest(op, input, output)
  195. output = &OutputService3TestShapeOutputService3TestCaseOperation1Output{}
  196. req.Data = output
  197. return
  198. }
  199. func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
  200. req, out := c.OutputService3TestCaseOperation1Request(input)
  201. err := req.Send()
  202. return out, err
  203. }
  204. type OutputService3TestShapeOutputService3TestCaseOperation1Input struct {
  205. metadataOutputService3TestShapeOutputService3TestCaseOperation1Input `json:"-" xml:"-"`
  206. }
  207. type metadataOutputService3TestShapeOutputService3TestCaseOperation1Input struct {
  208. SDKShapeTraits bool `type:"structure"`
  209. }
  210. type OutputService3TestShapeOutputService3TestCaseOperation1Output struct {
  211. ListMember []*string `type:"list"`
  212. metadataOutputService3TestShapeOutputService3TestCaseOperation1Output `json:"-" xml:"-"`
  213. }
  214. type metadataOutputService3TestShapeOutputService3TestCaseOperation1Output struct {
  215. SDKShapeTraits bool `type:"structure"`
  216. }
  217. type OutputService4ProtocolTest struct {
  218. *service.Service
  219. }
  220. // New returns a new OutputService4ProtocolTest client.
  221. func NewOutputService4ProtocolTest(config *aws.Config) *OutputService4ProtocolTest {
  222. service := &service.Service{
  223. ServiceInfo: serviceinfo.ServiceInfo{
  224. Config: defaults.DefaultConfig.Merge(config),
  225. ServiceName: "outputservice4protocoltest",
  226. APIVersion: "",
  227. },
  228. }
  229. service.Initialize()
  230. // Handlers
  231. service.Handlers.Sign.PushBack(v4.Sign)
  232. service.Handlers.Build.PushBack(ec2query.Build)
  233. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  234. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  235. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  236. return &OutputService4ProtocolTest{service}
  237. }
  238. // newRequest creates a new request for a OutputService4ProtocolTest operation and runs any
  239. // custom request initialization.
  240. func (c *OutputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  241. req := c.NewRequest(op, params, data)
  242. return req
  243. }
  244. const opOutputService4TestCaseOperation1 = "OperationName"
  245. // OutputService4TestCaseOperation1Request generates a request for the OutputService4TestCaseOperation1 operation.
  246. func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1Request(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation1Output) {
  247. op := &request.Operation{
  248. Name: opOutputService4TestCaseOperation1,
  249. }
  250. if input == nil {
  251. input = &OutputService4TestShapeOutputService4TestCaseOperation1Input{}
  252. }
  253. req = c.newRequest(op, input, output)
  254. output = &OutputService4TestShapeOutputService4TestCaseOperation1Output{}
  255. req.Data = output
  256. return
  257. }
  258. func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
  259. req, out := c.OutputService4TestCaseOperation1Request(input)
  260. err := req.Send()
  261. return out, err
  262. }
  263. type OutputService4TestShapeOutputService4TestCaseOperation1Input struct {
  264. metadataOutputService4TestShapeOutputService4TestCaseOperation1Input `json:"-" xml:"-"`
  265. }
  266. type metadataOutputService4TestShapeOutputService4TestCaseOperation1Input struct {
  267. SDKShapeTraits bool `type:"structure"`
  268. }
  269. type OutputService4TestShapeOutputService4TestCaseOperation1Output struct {
  270. ListMember []*string `locationNameList:"item" type:"list"`
  271. metadataOutputService4TestShapeOutputService4TestCaseOperation1Output `json:"-" xml:"-"`
  272. }
  273. type metadataOutputService4TestShapeOutputService4TestCaseOperation1Output struct {
  274. SDKShapeTraits bool `type:"structure"`
  275. }
  276. type OutputService5ProtocolTest struct {
  277. *service.Service
  278. }
  279. // New returns a new OutputService5ProtocolTest client.
  280. func NewOutputService5ProtocolTest(config *aws.Config) *OutputService5ProtocolTest {
  281. service := &service.Service{
  282. ServiceInfo: serviceinfo.ServiceInfo{
  283. Config: defaults.DefaultConfig.Merge(config),
  284. ServiceName: "outputservice5protocoltest",
  285. APIVersion: "",
  286. },
  287. }
  288. service.Initialize()
  289. // Handlers
  290. service.Handlers.Sign.PushBack(v4.Sign)
  291. service.Handlers.Build.PushBack(ec2query.Build)
  292. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  293. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  294. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  295. return &OutputService5ProtocolTest{service}
  296. }
  297. // newRequest creates a new request for a OutputService5ProtocolTest operation and runs any
  298. // custom request initialization.
  299. func (c *OutputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  300. req := c.NewRequest(op, params, data)
  301. return req
  302. }
  303. const opOutputService5TestCaseOperation1 = "OperationName"
  304. // OutputService5TestCaseOperation1Request generates a request for the OutputService5TestCaseOperation1 operation.
  305. func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1Request(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (req *request.Request, output *OutputService5TestShapeOutputService5TestCaseOperation1Output) {
  306. op := &request.Operation{
  307. Name: opOutputService5TestCaseOperation1,
  308. }
  309. if input == nil {
  310. input = &OutputService5TestShapeOutputService5TestCaseOperation1Input{}
  311. }
  312. req = c.newRequest(op, input, output)
  313. output = &OutputService5TestShapeOutputService5TestCaseOperation1Output{}
  314. req.Data = output
  315. return
  316. }
  317. func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
  318. req, out := c.OutputService5TestCaseOperation1Request(input)
  319. err := req.Send()
  320. return out, err
  321. }
  322. type OutputService5TestShapeOutputService5TestCaseOperation1Input struct {
  323. metadataOutputService5TestShapeOutputService5TestCaseOperation1Input `json:"-" xml:"-"`
  324. }
  325. type metadataOutputService5TestShapeOutputService5TestCaseOperation1Input struct {
  326. SDKShapeTraits bool `type:"structure"`
  327. }
  328. type OutputService5TestShapeOutputService5TestCaseOperation1Output struct {
  329. ListMember []*string `type:"list" flattened:"true"`
  330. metadataOutputService5TestShapeOutputService5TestCaseOperation1Output `json:"-" xml:"-"`
  331. }
  332. type metadataOutputService5TestShapeOutputService5TestCaseOperation1Output struct {
  333. SDKShapeTraits bool `type:"structure"`
  334. }
  335. type OutputService6ProtocolTest struct {
  336. *service.Service
  337. }
  338. // New returns a new OutputService6ProtocolTest client.
  339. func NewOutputService6ProtocolTest(config *aws.Config) *OutputService6ProtocolTest {
  340. service := &service.Service{
  341. ServiceInfo: serviceinfo.ServiceInfo{
  342. Config: defaults.DefaultConfig.Merge(config),
  343. ServiceName: "outputservice6protocoltest",
  344. APIVersion: "",
  345. },
  346. }
  347. service.Initialize()
  348. // Handlers
  349. service.Handlers.Sign.PushBack(v4.Sign)
  350. service.Handlers.Build.PushBack(ec2query.Build)
  351. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  352. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  353. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  354. return &OutputService6ProtocolTest{service}
  355. }
  356. // newRequest creates a new request for a OutputService6ProtocolTest operation and runs any
  357. // custom request initialization.
  358. func (c *OutputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  359. req := c.NewRequest(op, params, data)
  360. return req
  361. }
  362. const opOutputService6TestCaseOperation1 = "OperationName"
  363. // OutputService6TestCaseOperation1Request generates a request for the OutputService6TestCaseOperation1 operation.
  364. func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1Request(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (req *request.Request, output *OutputService6TestShapeOutputService6TestCaseOperation1Output) {
  365. op := &request.Operation{
  366. Name: opOutputService6TestCaseOperation1,
  367. }
  368. if input == nil {
  369. input = &OutputService6TestShapeOutputService6TestCaseOperation1Input{}
  370. }
  371. req = c.newRequest(op, input, output)
  372. output = &OutputService6TestShapeOutputService6TestCaseOperation1Output{}
  373. req.Data = output
  374. return
  375. }
  376. func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
  377. req, out := c.OutputService6TestCaseOperation1Request(input)
  378. err := req.Send()
  379. return out, err
  380. }
  381. type OutputService6TestShapeOutputService6TestCaseOperation1Input struct {
  382. metadataOutputService6TestShapeOutputService6TestCaseOperation1Input `json:"-" xml:"-"`
  383. }
  384. type metadataOutputService6TestShapeOutputService6TestCaseOperation1Input struct {
  385. SDKShapeTraits bool `type:"structure"`
  386. }
  387. type OutputService6TestShapeOutputService6TestCaseOperation1Output struct {
  388. Map map[string]*OutputService6TestShapeStructureType `type:"map"`
  389. metadataOutputService6TestShapeOutputService6TestCaseOperation1Output `json:"-" xml:"-"`
  390. }
  391. type metadataOutputService6TestShapeOutputService6TestCaseOperation1Output struct {
  392. SDKShapeTraits bool `type:"structure"`
  393. }
  394. type OutputService6TestShapeStructureType struct {
  395. Foo *string `locationName:"foo" type:"string"`
  396. metadataOutputService6TestShapeStructureType `json:"-" xml:"-"`
  397. }
  398. type metadataOutputService6TestShapeStructureType struct {
  399. SDKShapeTraits bool `type:"structure"`
  400. }
  401. type OutputService7ProtocolTest struct {
  402. *service.Service
  403. }
  404. // New returns a new OutputService7ProtocolTest client.
  405. func NewOutputService7ProtocolTest(config *aws.Config) *OutputService7ProtocolTest {
  406. service := &service.Service{
  407. ServiceInfo: serviceinfo.ServiceInfo{
  408. Config: defaults.DefaultConfig.Merge(config),
  409. ServiceName: "outputservice7protocoltest",
  410. APIVersion: "",
  411. },
  412. }
  413. service.Initialize()
  414. // Handlers
  415. service.Handlers.Sign.PushBack(v4.Sign)
  416. service.Handlers.Build.PushBack(ec2query.Build)
  417. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  418. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  419. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  420. return &OutputService7ProtocolTest{service}
  421. }
  422. // newRequest creates a new request for a OutputService7ProtocolTest operation and runs any
  423. // custom request initialization.
  424. func (c *OutputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  425. req := c.NewRequest(op, params, data)
  426. return req
  427. }
  428. const opOutputService7TestCaseOperation1 = "OperationName"
  429. // OutputService7TestCaseOperation1Request generates a request for the OutputService7TestCaseOperation1 operation.
  430. func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1Request(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (req *request.Request, output *OutputService7TestShapeOutputService7TestCaseOperation1Output) {
  431. op := &request.Operation{
  432. Name: opOutputService7TestCaseOperation1,
  433. }
  434. if input == nil {
  435. input = &OutputService7TestShapeOutputService7TestCaseOperation1Input{}
  436. }
  437. req = c.newRequest(op, input, output)
  438. output = &OutputService7TestShapeOutputService7TestCaseOperation1Output{}
  439. req.Data = output
  440. return
  441. }
  442. func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  443. req, out := c.OutputService7TestCaseOperation1Request(input)
  444. err := req.Send()
  445. return out, err
  446. }
  447. type OutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  448. metadataOutputService7TestShapeOutputService7TestCaseOperation1Input `json:"-" xml:"-"`
  449. }
  450. type metadataOutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  451. SDKShapeTraits bool `type:"structure"`
  452. }
  453. type OutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  454. Map map[string]*string `type:"map" flattened:"true"`
  455. metadataOutputService7TestShapeOutputService7TestCaseOperation1Output `json:"-" xml:"-"`
  456. }
  457. type metadataOutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  458. SDKShapeTraits bool `type:"structure"`
  459. }
  460. type OutputService8ProtocolTest struct {
  461. *service.Service
  462. }
  463. // New returns a new OutputService8ProtocolTest client.
  464. func NewOutputService8ProtocolTest(config *aws.Config) *OutputService8ProtocolTest {
  465. service := &service.Service{
  466. ServiceInfo: serviceinfo.ServiceInfo{
  467. Config: defaults.DefaultConfig.Merge(config),
  468. ServiceName: "outputservice8protocoltest",
  469. APIVersion: "",
  470. },
  471. }
  472. service.Initialize()
  473. // Handlers
  474. service.Handlers.Sign.PushBack(v4.Sign)
  475. service.Handlers.Build.PushBack(ec2query.Build)
  476. service.Handlers.Unmarshal.PushBack(ec2query.Unmarshal)
  477. service.Handlers.UnmarshalMeta.PushBack(ec2query.UnmarshalMeta)
  478. service.Handlers.UnmarshalError.PushBack(ec2query.UnmarshalError)
  479. return &OutputService8ProtocolTest{service}
  480. }
  481. // newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
  482. // custom request initialization.
  483. func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  484. req := c.NewRequest(op, params, data)
  485. return req
  486. }
  487. const opOutputService8TestCaseOperation1 = "OperationName"
  488. // OutputService8TestCaseOperation1Request generates a request for the OutputService8TestCaseOperation1 operation.
  489. func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
  490. op := &request.Operation{
  491. Name: opOutputService8TestCaseOperation1,
  492. }
  493. if input == nil {
  494. input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
  495. }
  496. req = c.newRequest(op, input, output)
  497. output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
  498. req.Data = output
  499. return
  500. }
  501. func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  502. req, out := c.OutputService8TestCaseOperation1Request(input)
  503. err := req.Send()
  504. return out, err
  505. }
  506. type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  507. metadataOutputService8TestShapeOutputService8TestCaseOperation1Input `json:"-" xml:"-"`
  508. }
  509. type metadataOutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  510. SDKShapeTraits bool `type:"structure"`
  511. }
  512. type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  513. Map map[string]*string `locationNameKey:"foo" locationNameValue:"bar" type:"map" flattened:"true"`
  514. metadataOutputService8TestShapeOutputService8TestCaseOperation1Output `json:"-" xml:"-"`
  515. }
  516. type metadataOutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  517. SDKShapeTraits bool `type:"structure"`
  518. }
  519. //
  520. // Tests begin here
  521. //
  522. func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  523. svc := NewOutputService1ProtocolTest(nil)
  524. buf := bytes.NewReader([]byte("<OperationNameResponse><Str>myname</Str><FooNum>123</FooNum><FalseBool>false</FalseBool><TrueBool>true</TrueBool><Float>1.2</Float><Double>1.3</Double><Long>200</Long><Char>a</Char><RequestId>request-id</RequestId></OperationNameResponse>"))
  525. req, out := svc.OutputService1TestCaseOperation1Request(nil)
  526. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  527. // set headers
  528. // unmarshal response
  529. ec2query.UnmarshalMeta(req)
  530. ec2query.Unmarshal(req)
  531. assert.NoError(t, req.Error)
  532. // assert response
  533. assert.NotNil(t, out) // ensure out variable is used
  534. assert.Equal(t, "a", *out.Char)
  535. assert.Equal(t, 1.3, *out.Double)
  536. assert.Equal(t, false, *out.FalseBool)
  537. assert.Equal(t, 1.2, *out.Float)
  538. assert.Equal(t, int64(200), *out.Long)
  539. assert.Equal(t, int64(123), *out.Num)
  540. assert.Equal(t, "myname", *out.Str)
  541. assert.Equal(t, true, *out.TrueBool)
  542. }
  543. func TestOutputService2ProtocolTestBlobCase1(t *testing.T) {
  544. svc := NewOutputService2ProtocolTest(nil)
  545. buf := bytes.NewReader([]byte("<OperationNameResponse><Blob>dmFsdWU=</Blob><RequestId>requestid</RequestId></OperationNameResponse>"))
  546. req, out := svc.OutputService2TestCaseOperation1Request(nil)
  547. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  548. // set headers
  549. // unmarshal response
  550. ec2query.UnmarshalMeta(req)
  551. ec2query.Unmarshal(req)
  552. assert.NoError(t, req.Error)
  553. // assert response
  554. assert.NotNil(t, out) // ensure out variable is used
  555. assert.Equal(t, "value", string(out.Blob))
  556. }
  557. func TestOutputService3ProtocolTestListsCase1(t *testing.T) {
  558. svc := NewOutputService3ProtocolTest(nil)
  559. buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember><member>abc</member><member>123</member></ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  560. req, out := svc.OutputService3TestCaseOperation1Request(nil)
  561. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  562. // set headers
  563. // unmarshal response
  564. ec2query.UnmarshalMeta(req)
  565. ec2query.Unmarshal(req)
  566. assert.NoError(t, req.Error)
  567. // assert response
  568. assert.NotNil(t, out) // ensure out variable is used
  569. assert.Equal(t, "abc", *out.ListMember[0])
  570. assert.Equal(t, "123", *out.ListMember[1])
  571. }
  572. func TestOutputService4ProtocolTestListWithCustomMemberNameCase1(t *testing.T) {
  573. svc := NewOutputService4ProtocolTest(nil)
  574. buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember><item>abc</item><item>123</item></ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  575. req, out := svc.OutputService4TestCaseOperation1Request(nil)
  576. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  577. // set headers
  578. // unmarshal response
  579. ec2query.UnmarshalMeta(req)
  580. ec2query.Unmarshal(req)
  581. assert.NoError(t, req.Error)
  582. // assert response
  583. assert.NotNil(t, out) // ensure out variable is used
  584. assert.Equal(t, "abc", *out.ListMember[0])
  585. assert.Equal(t, "123", *out.ListMember[1])
  586. }
  587. func TestOutputService5ProtocolTestFlattenedListCase1(t *testing.T) {
  588. svc := NewOutputService5ProtocolTest(nil)
  589. buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember>abc</ListMember><ListMember>123</ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  590. req, out := svc.OutputService5TestCaseOperation1Request(nil)
  591. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  592. // set headers
  593. // unmarshal response
  594. ec2query.UnmarshalMeta(req)
  595. ec2query.Unmarshal(req)
  596. assert.NoError(t, req.Error)
  597. // assert response
  598. assert.NotNil(t, out) // ensure out variable is used
  599. assert.Equal(t, "abc", *out.ListMember[0])
  600. assert.Equal(t, "123", *out.ListMember[1])
  601. }
  602. func TestOutputService6ProtocolTestNormalMapCase1(t *testing.T) {
  603. svc := NewOutputService6ProtocolTest(nil)
  604. buf := bytes.NewReader([]byte("<OperationNameResponse><Map><entry><key>qux</key><value><foo>bar</foo></value></entry><entry><key>baz</key><value><foo>bam</foo></value></entry></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  605. req, out := svc.OutputService6TestCaseOperation1Request(nil)
  606. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  607. // set headers
  608. // unmarshal response
  609. ec2query.UnmarshalMeta(req)
  610. ec2query.Unmarshal(req)
  611. assert.NoError(t, req.Error)
  612. // assert response
  613. assert.NotNil(t, out) // ensure out variable is used
  614. assert.Equal(t, "bam", *out.Map["baz"].Foo)
  615. assert.Equal(t, "bar", *out.Map["qux"].Foo)
  616. }
  617. func TestOutputService7ProtocolTestFlattenedMapCase1(t *testing.T) {
  618. svc := NewOutputService7ProtocolTest(nil)
  619. buf := bytes.NewReader([]byte("<OperationNameResponse><Map><key>qux</key><value>bar</value></Map><Map><key>baz</key><value>bam</value></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  620. req, out := svc.OutputService7TestCaseOperation1Request(nil)
  621. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  622. // set headers
  623. // unmarshal response
  624. ec2query.UnmarshalMeta(req)
  625. ec2query.Unmarshal(req)
  626. assert.NoError(t, req.Error)
  627. // assert response
  628. assert.NotNil(t, out) // ensure out variable is used
  629. assert.Equal(t, "bam", *out.Map["baz"])
  630. assert.Equal(t, "bar", *out.Map["qux"])
  631. }
  632. func TestOutputService8ProtocolTestNamedMapCase1(t *testing.T) {
  633. svc := NewOutputService8ProtocolTest(nil)
  634. buf := bytes.NewReader([]byte("<OperationNameResponse><Map><foo>qux</foo><bar>bar</bar></Map><Map><foo>baz</foo><bar>bam</bar></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  635. req, out := svc.OutputService8TestCaseOperation1Request(nil)
  636. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  637. // set headers
  638. // unmarshal response
  639. ec2query.UnmarshalMeta(req)
  640. ec2query.Unmarshal(req)
  641. assert.NoError(t, req.Error)
  642. // assert response
  643. assert.NotNil(t, out) // ensure out variable is used
  644. assert.Equal(t, "bam", *out.Map["baz"])
  645. assert.Equal(t, "bar", *out.Map["qux"])
  646. }