unmarshal_test.go 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275
  1. package restjson_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/restjson"
  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(restjson.Build)
  49. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  50. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  51. service.Handlers.UnmarshalError.PushBack(restjson.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. ImaHeader *string `location:"header" type:"string"`
  91. ImaHeaderLocation *string `location:"header" locationName:"X-Foo" type:"string"`
  92. Long *int64 `type:"long"`
  93. Num *int64 `type:"integer"`
  94. Status *int64 `location:"statusCode" type:"integer"`
  95. Str *string `type:"string"`
  96. TrueBool *bool `type:"boolean"`
  97. metadataOutputService1TestShapeOutputService1TestCaseOperation1Output `json:"-" xml:"-"`
  98. }
  99. type metadataOutputService1TestShapeOutputService1TestCaseOperation1Output struct {
  100. SDKShapeTraits bool `type:"structure"`
  101. }
  102. type OutputService2ProtocolTest struct {
  103. *service.Service
  104. }
  105. // New returns a new OutputService2ProtocolTest client.
  106. func NewOutputService2ProtocolTest(config *aws.Config) *OutputService2ProtocolTest {
  107. service := &service.Service{
  108. ServiceInfo: serviceinfo.ServiceInfo{
  109. Config: defaults.DefaultConfig.Merge(config),
  110. ServiceName: "outputservice2protocoltest",
  111. APIVersion: "",
  112. },
  113. }
  114. service.Initialize()
  115. // Handlers
  116. service.Handlers.Sign.PushBack(v4.Sign)
  117. service.Handlers.Build.PushBack(restjson.Build)
  118. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  119. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  120. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  121. return &OutputService2ProtocolTest{service}
  122. }
  123. // newRequest creates a new request for a OutputService2ProtocolTest operation and runs any
  124. // custom request initialization.
  125. func (c *OutputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  126. req := c.NewRequest(op, params, data)
  127. return req
  128. }
  129. const opOutputService2TestCaseOperation1 = "OperationName"
  130. // OutputService2TestCaseOperation1Request generates a request for the OutputService2TestCaseOperation1 operation.
  131. func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1Request(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (req *request.Request, output *OutputService2TestShapeOutputService2TestCaseOperation1Output) {
  132. op := &request.Operation{
  133. Name: opOutputService2TestCaseOperation1,
  134. }
  135. if input == nil {
  136. input = &OutputService2TestShapeOutputService2TestCaseOperation1Input{}
  137. }
  138. req = c.newRequest(op, input, output)
  139. output = &OutputService2TestShapeOutputService2TestCaseOperation1Output{}
  140. req.Data = output
  141. return
  142. }
  143. func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
  144. req, out := c.OutputService2TestCaseOperation1Request(input)
  145. err := req.Send()
  146. return out, err
  147. }
  148. type OutputService2TestShapeBlobContainer struct {
  149. Foo []byte `locationName:"foo" type:"blob"`
  150. metadataOutputService2TestShapeBlobContainer `json:"-" xml:"-"`
  151. }
  152. type metadataOutputService2TestShapeBlobContainer struct {
  153. SDKShapeTraits bool `type:"structure"`
  154. }
  155. type OutputService2TestShapeOutputService2TestCaseOperation1Input struct {
  156. metadataOutputService2TestShapeOutputService2TestCaseOperation1Input `json:"-" xml:"-"`
  157. }
  158. type metadataOutputService2TestShapeOutputService2TestCaseOperation1Input struct {
  159. SDKShapeTraits bool `type:"structure"`
  160. }
  161. type OutputService2TestShapeOutputService2TestCaseOperation1Output struct {
  162. BlobMember []byte `type:"blob"`
  163. StructMember *OutputService2TestShapeBlobContainer `type:"structure"`
  164. metadataOutputService2TestShapeOutputService2TestCaseOperation1Output `json:"-" xml:"-"`
  165. }
  166. type metadataOutputService2TestShapeOutputService2TestCaseOperation1Output struct {
  167. SDKShapeTraits bool `type:"structure"`
  168. }
  169. type OutputService3ProtocolTest struct {
  170. *service.Service
  171. }
  172. // New returns a new OutputService3ProtocolTest client.
  173. func NewOutputService3ProtocolTest(config *aws.Config) *OutputService3ProtocolTest {
  174. service := &service.Service{
  175. ServiceInfo: serviceinfo.ServiceInfo{
  176. Config: defaults.DefaultConfig.Merge(config),
  177. ServiceName: "outputservice3protocoltest",
  178. APIVersion: "",
  179. },
  180. }
  181. service.Initialize()
  182. // Handlers
  183. service.Handlers.Sign.PushBack(v4.Sign)
  184. service.Handlers.Build.PushBack(restjson.Build)
  185. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  186. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  187. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  188. return &OutputService3ProtocolTest{service}
  189. }
  190. // newRequest creates a new request for a OutputService3ProtocolTest operation and runs any
  191. // custom request initialization.
  192. func (c *OutputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  193. req := c.NewRequest(op, params, data)
  194. return req
  195. }
  196. const opOutputService3TestCaseOperation1 = "OperationName"
  197. // OutputService3TestCaseOperation1Request generates a request for the OutputService3TestCaseOperation1 operation.
  198. func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1Request(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (req *request.Request, output *OutputService3TestShapeOutputService3TestCaseOperation1Output) {
  199. op := &request.Operation{
  200. Name: opOutputService3TestCaseOperation1,
  201. }
  202. if input == nil {
  203. input = &OutputService3TestShapeOutputService3TestCaseOperation1Input{}
  204. }
  205. req = c.newRequest(op, input, output)
  206. output = &OutputService3TestShapeOutputService3TestCaseOperation1Output{}
  207. req.Data = output
  208. return
  209. }
  210. func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
  211. req, out := c.OutputService3TestCaseOperation1Request(input)
  212. err := req.Send()
  213. return out, err
  214. }
  215. type OutputService3TestShapeOutputService3TestCaseOperation1Input struct {
  216. metadataOutputService3TestShapeOutputService3TestCaseOperation1Input `json:"-" xml:"-"`
  217. }
  218. type metadataOutputService3TestShapeOutputService3TestCaseOperation1Input struct {
  219. SDKShapeTraits bool `type:"structure"`
  220. }
  221. type OutputService3TestShapeOutputService3TestCaseOperation1Output struct {
  222. StructMember *OutputService3TestShapeTimeContainer `type:"structure"`
  223. TimeMember *time.Time `type:"timestamp" timestampFormat:"unix"`
  224. metadataOutputService3TestShapeOutputService3TestCaseOperation1Output `json:"-" xml:"-"`
  225. }
  226. type metadataOutputService3TestShapeOutputService3TestCaseOperation1Output struct {
  227. SDKShapeTraits bool `type:"structure"`
  228. }
  229. type OutputService3TestShapeTimeContainer struct {
  230. Foo *time.Time `locationName:"foo" type:"timestamp" timestampFormat:"unix"`
  231. metadataOutputService3TestShapeTimeContainer `json:"-" xml:"-"`
  232. }
  233. type metadataOutputService3TestShapeTimeContainer struct {
  234. SDKShapeTraits bool `type:"structure"`
  235. }
  236. type OutputService4ProtocolTest struct {
  237. *service.Service
  238. }
  239. // New returns a new OutputService4ProtocolTest client.
  240. func NewOutputService4ProtocolTest(config *aws.Config) *OutputService4ProtocolTest {
  241. service := &service.Service{
  242. ServiceInfo: serviceinfo.ServiceInfo{
  243. Config: defaults.DefaultConfig.Merge(config),
  244. ServiceName: "outputservice4protocoltest",
  245. APIVersion: "",
  246. },
  247. }
  248. service.Initialize()
  249. // Handlers
  250. service.Handlers.Sign.PushBack(v4.Sign)
  251. service.Handlers.Build.PushBack(restjson.Build)
  252. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  253. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  254. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  255. return &OutputService4ProtocolTest{service}
  256. }
  257. // newRequest creates a new request for a OutputService4ProtocolTest operation and runs any
  258. // custom request initialization.
  259. func (c *OutputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  260. req := c.NewRequest(op, params, data)
  261. return req
  262. }
  263. const opOutputService4TestCaseOperation1 = "OperationName"
  264. // OutputService4TestCaseOperation1Request generates a request for the OutputService4TestCaseOperation1 operation.
  265. func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1Request(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation1Output) {
  266. op := &request.Operation{
  267. Name: opOutputService4TestCaseOperation1,
  268. }
  269. if input == nil {
  270. input = &OutputService4TestShapeOutputService4TestCaseOperation1Input{}
  271. }
  272. req = c.newRequest(op, input, output)
  273. output = &OutputService4TestShapeOutputService4TestCaseOperation1Output{}
  274. req.Data = output
  275. return
  276. }
  277. func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
  278. req, out := c.OutputService4TestCaseOperation1Request(input)
  279. err := req.Send()
  280. return out, err
  281. }
  282. type OutputService4TestShapeOutputService4TestCaseOperation1Input struct {
  283. metadataOutputService4TestShapeOutputService4TestCaseOperation1Input `json:"-" xml:"-"`
  284. }
  285. type metadataOutputService4TestShapeOutputService4TestCaseOperation1Input struct {
  286. SDKShapeTraits bool `type:"structure"`
  287. }
  288. type OutputService4TestShapeOutputService4TestCaseOperation1Output struct {
  289. ListMember []*string `type:"list"`
  290. metadataOutputService4TestShapeOutputService4TestCaseOperation1Output `json:"-" xml:"-"`
  291. }
  292. type metadataOutputService4TestShapeOutputService4TestCaseOperation1Output struct {
  293. SDKShapeTraits bool `type:"structure"`
  294. }
  295. type OutputService5ProtocolTest struct {
  296. *service.Service
  297. }
  298. // New returns a new OutputService5ProtocolTest client.
  299. func NewOutputService5ProtocolTest(config *aws.Config) *OutputService5ProtocolTest {
  300. service := &service.Service{
  301. ServiceInfo: serviceinfo.ServiceInfo{
  302. Config: defaults.DefaultConfig.Merge(config),
  303. ServiceName: "outputservice5protocoltest",
  304. APIVersion: "",
  305. },
  306. }
  307. service.Initialize()
  308. // Handlers
  309. service.Handlers.Sign.PushBack(v4.Sign)
  310. service.Handlers.Build.PushBack(restjson.Build)
  311. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  312. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  313. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  314. return &OutputService5ProtocolTest{service}
  315. }
  316. // newRequest creates a new request for a OutputService5ProtocolTest operation and runs any
  317. // custom request initialization.
  318. func (c *OutputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  319. req := c.NewRequest(op, params, data)
  320. return req
  321. }
  322. const opOutputService5TestCaseOperation1 = "OperationName"
  323. // OutputService5TestCaseOperation1Request generates a request for the OutputService5TestCaseOperation1 operation.
  324. func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1Request(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (req *request.Request, output *OutputService5TestShapeOutputService5TestCaseOperation1Output) {
  325. op := &request.Operation{
  326. Name: opOutputService5TestCaseOperation1,
  327. }
  328. if input == nil {
  329. input = &OutputService5TestShapeOutputService5TestCaseOperation1Input{}
  330. }
  331. req = c.newRequest(op, input, output)
  332. output = &OutputService5TestShapeOutputService5TestCaseOperation1Output{}
  333. req.Data = output
  334. return
  335. }
  336. func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
  337. req, out := c.OutputService5TestCaseOperation1Request(input)
  338. err := req.Send()
  339. return out, err
  340. }
  341. type OutputService5TestShapeOutputService5TestCaseOperation1Input struct {
  342. metadataOutputService5TestShapeOutputService5TestCaseOperation1Input `json:"-" xml:"-"`
  343. }
  344. type metadataOutputService5TestShapeOutputService5TestCaseOperation1Input struct {
  345. SDKShapeTraits bool `type:"structure"`
  346. }
  347. type OutputService5TestShapeOutputService5TestCaseOperation1Output struct {
  348. ListMember []*OutputService5TestShapeSingleStruct `type:"list"`
  349. metadataOutputService5TestShapeOutputService5TestCaseOperation1Output `json:"-" xml:"-"`
  350. }
  351. type metadataOutputService5TestShapeOutputService5TestCaseOperation1Output struct {
  352. SDKShapeTraits bool `type:"structure"`
  353. }
  354. type OutputService5TestShapeSingleStruct struct {
  355. Foo *string `type:"string"`
  356. metadataOutputService5TestShapeSingleStruct `json:"-" xml:"-"`
  357. }
  358. type metadataOutputService5TestShapeSingleStruct struct {
  359. SDKShapeTraits bool `type:"structure"`
  360. }
  361. type OutputService6ProtocolTest struct {
  362. *service.Service
  363. }
  364. // New returns a new OutputService6ProtocolTest client.
  365. func NewOutputService6ProtocolTest(config *aws.Config) *OutputService6ProtocolTest {
  366. service := &service.Service{
  367. ServiceInfo: serviceinfo.ServiceInfo{
  368. Config: defaults.DefaultConfig.Merge(config),
  369. ServiceName: "outputservice6protocoltest",
  370. APIVersion: "",
  371. },
  372. }
  373. service.Initialize()
  374. // Handlers
  375. service.Handlers.Sign.PushBack(v4.Sign)
  376. service.Handlers.Build.PushBack(restjson.Build)
  377. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  378. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  379. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  380. return &OutputService6ProtocolTest{service}
  381. }
  382. // newRequest creates a new request for a OutputService6ProtocolTest operation and runs any
  383. // custom request initialization.
  384. func (c *OutputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  385. req := c.NewRequest(op, params, data)
  386. return req
  387. }
  388. const opOutputService6TestCaseOperation1 = "OperationName"
  389. // OutputService6TestCaseOperation1Request generates a request for the OutputService6TestCaseOperation1 operation.
  390. func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1Request(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (req *request.Request, output *OutputService6TestShapeOutputService6TestCaseOperation1Output) {
  391. op := &request.Operation{
  392. Name: opOutputService6TestCaseOperation1,
  393. }
  394. if input == nil {
  395. input = &OutputService6TestShapeOutputService6TestCaseOperation1Input{}
  396. }
  397. req = c.newRequest(op, input, output)
  398. output = &OutputService6TestShapeOutputService6TestCaseOperation1Output{}
  399. req.Data = output
  400. return
  401. }
  402. func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
  403. req, out := c.OutputService6TestCaseOperation1Request(input)
  404. err := req.Send()
  405. return out, err
  406. }
  407. type OutputService6TestShapeOutputService6TestCaseOperation1Input struct {
  408. metadataOutputService6TestShapeOutputService6TestCaseOperation1Input `json:"-" xml:"-"`
  409. }
  410. type metadataOutputService6TestShapeOutputService6TestCaseOperation1Input struct {
  411. SDKShapeTraits bool `type:"structure"`
  412. }
  413. type OutputService6TestShapeOutputService6TestCaseOperation1Output struct {
  414. MapMember map[string][]*int64 `type:"map"`
  415. metadataOutputService6TestShapeOutputService6TestCaseOperation1Output `json:"-" xml:"-"`
  416. }
  417. type metadataOutputService6TestShapeOutputService6TestCaseOperation1Output struct {
  418. SDKShapeTraits bool `type:"structure"`
  419. }
  420. type OutputService7ProtocolTest struct {
  421. *service.Service
  422. }
  423. // New returns a new OutputService7ProtocolTest client.
  424. func NewOutputService7ProtocolTest(config *aws.Config) *OutputService7ProtocolTest {
  425. service := &service.Service{
  426. ServiceInfo: serviceinfo.ServiceInfo{
  427. Config: defaults.DefaultConfig.Merge(config),
  428. ServiceName: "outputservice7protocoltest",
  429. APIVersion: "",
  430. },
  431. }
  432. service.Initialize()
  433. // Handlers
  434. service.Handlers.Sign.PushBack(v4.Sign)
  435. service.Handlers.Build.PushBack(restjson.Build)
  436. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  437. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  438. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  439. return &OutputService7ProtocolTest{service}
  440. }
  441. // newRequest creates a new request for a OutputService7ProtocolTest operation and runs any
  442. // custom request initialization.
  443. func (c *OutputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  444. req := c.NewRequest(op, params, data)
  445. return req
  446. }
  447. const opOutputService7TestCaseOperation1 = "OperationName"
  448. // OutputService7TestCaseOperation1Request generates a request for the OutputService7TestCaseOperation1 operation.
  449. func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1Request(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (req *request.Request, output *OutputService7TestShapeOutputService7TestCaseOperation1Output) {
  450. op := &request.Operation{
  451. Name: opOutputService7TestCaseOperation1,
  452. }
  453. if input == nil {
  454. input = &OutputService7TestShapeOutputService7TestCaseOperation1Input{}
  455. }
  456. req = c.newRequest(op, input, output)
  457. output = &OutputService7TestShapeOutputService7TestCaseOperation1Output{}
  458. req.Data = output
  459. return
  460. }
  461. func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  462. req, out := c.OutputService7TestCaseOperation1Request(input)
  463. err := req.Send()
  464. return out, err
  465. }
  466. type OutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  467. metadataOutputService7TestShapeOutputService7TestCaseOperation1Input `json:"-" xml:"-"`
  468. }
  469. type metadataOutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  470. SDKShapeTraits bool `type:"structure"`
  471. }
  472. type OutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  473. MapMember map[string]*time.Time `type:"map"`
  474. metadataOutputService7TestShapeOutputService7TestCaseOperation1Output `json:"-" xml:"-"`
  475. }
  476. type metadataOutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  477. SDKShapeTraits bool `type:"structure"`
  478. }
  479. type OutputService8ProtocolTest struct {
  480. *service.Service
  481. }
  482. // New returns a new OutputService8ProtocolTest client.
  483. func NewOutputService8ProtocolTest(config *aws.Config) *OutputService8ProtocolTest {
  484. service := &service.Service{
  485. ServiceInfo: serviceinfo.ServiceInfo{
  486. Config: defaults.DefaultConfig.Merge(config),
  487. ServiceName: "outputservice8protocoltest",
  488. APIVersion: "",
  489. },
  490. }
  491. service.Initialize()
  492. // Handlers
  493. service.Handlers.Sign.PushBack(v4.Sign)
  494. service.Handlers.Build.PushBack(restjson.Build)
  495. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  496. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  497. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  498. return &OutputService8ProtocolTest{service}
  499. }
  500. // newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
  501. // custom request initialization.
  502. func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  503. req := c.NewRequest(op, params, data)
  504. return req
  505. }
  506. const opOutputService8TestCaseOperation1 = "OperationName"
  507. // OutputService8TestCaseOperation1Request generates a request for the OutputService8TestCaseOperation1 operation.
  508. func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
  509. op := &request.Operation{
  510. Name: opOutputService8TestCaseOperation1,
  511. }
  512. if input == nil {
  513. input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
  514. }
  515. req = c.newRequest(op, input, output)
  516. output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
  517. req.Data = output
  518. return
  519. }
  520. func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  521. req, out := c.OutputService8TestCaseOperation1Request(input)
  522. err := req.Send()
  523. return out, err
  524. }
  525. type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  526. metadataOutputService8TestShapeOutputService8TestCaseOperation1Input `json:"-" xml:"-"`
  527. }
  528. type metadataOutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  529. SDKShapeTraits bool `type:"structure"`
  530. }
  531. type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  532. StrType *string `type:"string"`
  533. metadataOutputService8TestShapeOutputService8TestCaseOperation1Output `json:"-" xml:"-"`
  534. }
  535. type metadataOutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  536. SDKShapeTraits bool `type:"structure"`
  537. }
  538. type OutputService9ProtocolTest struct {
  539. *service.Service
  540. }
  541. // New returns a new OutputService9ProtocolTest client.
  542. func NewOutputService9ProtocolTest(config *aws.Config) *OutputService9ProtocolTest {
  543. service := &service.Service{
  544. ServiceInfo: serviceinfo.ServiceInfo{
  545. Config: defaults.DefaultConfig.Merge(config),
  546. ServiceName: "outputservice9protocoltest",
  547. APIVersion: "",
  548. },
  549. }
  550. service.Initialize()
  551. // Handlers
  552. service.Handlers.Sign.PushBack(v4.Sign)
  553. service.Handlers.Build.PushBack(restjson.Build)
  554. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  555. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  556. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  557. return &OutputService9ProtocolTest{service}
  558. }
  559. // newRequest creates a new request for a OutputService9ProtocolTest operation and runs any
  560. // custom request initialization.
  561. func (c *OutputService9ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  562. req := c.NewRequest(op, params, data)
  563. return req
  564. }
  565. const opOutputService9TestCaseOperation1 = "OperationName"
  566. // OutputService9TestCaseOperation1Request generates a request for the OutputService9TestCaseOperation1 operation.
  567. func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1Request(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (req *request.Request, output *OutputService9TestShapeOutputService9TestCaseOperation1Output) {
  568. op := &request.Operation{
  569. Name: opOutputService9TestCaseOperation1,
  570. }
  571. if input == nil {
  572. input = &OutputService9TestShapeOutputService9TestCaseOperation1Input{}
  573. }
  574. req = c.newRequest(op, input, output)
  575. output = &OutputService9TestShapeOutputService9TestCaseOperation1Output{}
  576. req.Data = output
  577. return
  578. }
  579. func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (*OutputService9TestShapeOutputService9TestCaseOperation1Output, error) {
  580. req, out := c.OutputService9TestCaseOperation1Request(input)
  581. err := req.Send()
  582. return out, err
  583. }
  584. type OutputService9TestShapeOutputService9TestCaseOperation1Input struct {
  585. metadataOutputService9TestShapeOutputService9TestCaseOperation1Input `json:"-" xml:"-"`
  586. }
  587. type metadataOutputService9TestShapeOutputService9TestCaseOperation1Input struct {
  588. SDKShapeTraits bool `type:"structure"`
  589. }
  590. type OutputService9TestShapeOutputService9TestCaseOperation1Output struct {
  591. AllHeaders map[string]*string `location:"headers" type:"map"`
  592. PrefixedHeaders map[string]*string `location:"headers" locationName:"X-" type:"map"`
  593. metadataOutputService9TestShapeOutputService9TestCaseOperation1Output `json:"-" xml:"-"`
  594. }
  595. type metadataOutputService9TestShapeOutputService9TestCaseOperation1Output struct {
  596. SDKShapeTraits bool `type:"structure"`
  597. }
  598. type OutputService10ProtocolTest struct {
  599. *service.Service
  600. }
  601. // New returns a new OutputService10ProtocolTest client.
  602. func NewOutputService10ProtocolTest(config *aws.Config) *OutputService10ProtocolTest {
  603. service := &service.Service{
  604. ServiceInfo: serviceinfo.ServiceInfo{
  605. Config: defaults.DefaultConfig.Merge(config),
  606. ServiceName: "outputservice10protocoltest",
  607. APIVersion: "",
  608. },
  609. }
  610. service.Initialize()
  611. // Handlers
  612. service.Handlers.Sign.PushBack(v4.Sign)
  613. service.Handlers.Build.PushBack(restjson.Build)
  614. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  615. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  616. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  617. return &OutputService10ProtocolTest{service}
  618. }
  619. // newRequest creates a new request for a OutputService10ProtocolTest operation and runs any
  620. // custom request initialization.
  621. func (c *OutputService10ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  622. req := c.NewRequest(op, params, data)
  623. return req
  624. }
  625. const opOutputService10TestCaseOperation1 = "OperationName"
  626. // OutputService10TestCaseOperation1Request generates a request for the OutputService10TestCaseOperation1 operation.
  627. func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1Request(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (req *request.Request, output *OutputService10TestShapeOutputService10TestCaseOperation1Output) {
  628. op := &request.Operation{
  629. Name: opOutputService10TestCaseOperation1,
  630. }
  631. if input == nil {
  632. input = &OutputService10TestShapeOutputService10TestCaseOperation1Input{}
  633. }
  634. req = c.newRequest(op, input, output)
  635. output = &OutputService10TestShapeOutputService10TestCaseOperation1Output{}
  636. req.Data = output
  637. return
  638. }
  639. func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (*OutputService10TestShapeOutputService10TestCaseOperation1Output, error) {
  640. req, out := c.OutputService10TestCaseOperation1Request(input)
  641. err := req.Send()
  642. return out, err
  643. }
  644. type OutputService10TestShapeBodyStructure struct {
  645. Foo *string `type:"string"`
  646. metadataOutputService10TestShapeBodyStructure `json:"-" xml:"-"`
  647. }
  648. type metadataOutputService10TestShapeBodyStructure struct {
  649. SDKShapeTraits bool `type:"structure"`
  650. }
  651. type OutputService10TestShapeOutputService10TestCaseOperation1Input struct {
  652. metadataOutputService10TestShapeOutputService10TestCaseOperation1Input `json:"-" xml:"-"`
  653. }
  654. type metadataOutputService10TestShapeOutputService10TestCaseOperation1Input struct {
  655. SDKShapeTraits bool `type:"structure"`
  656. }
  657. type OutputService10TestShapeOutputService10TestCaseOperation1Output struct {
  658. Data *OutputService10TestShapeBodyStructure `type:"structure"`
  659. Header *string `location:"header" locationName:"X-Foo" type:"string"`
  660. metadataOutputService10TestShapeOutputService10TestCaseOperation1Output `json:"-" xml:"-"`
  661. }
  662. type metadataOutputService10TestShapeOutputService10TestCaseOperation1Output struct {
  663. SDKShapeTraits bool `type:"structure" payload:"Data"`
  664. }
  665. type OutputService11ProtocolTest struct {
  666. *service.Service
  667. }
  668. // New returns a new OutputService11ProtocolTest client.
  669. func NewOutputService11ProtocolTest(config *aws.Config) *OutputService11ProtocolTest {
  670. service := &service.Service{
  671. ServiceInfo: serviceinfo.ServiceInfo{
  672. Config: defaults.DefaultConfig.Merge(config),
  673. ServiceName: "outputservice11protocoltest",
  674. APIVersion: "",
  675. },
  676. }
  677. service.Initialize()
  678. // Handlers
  679. service.Handlers.Sign.PushBack(v4.Sign)
  680. service.Handlers.Build.PushBack(restjson.Build)
  681. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  682. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  683. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  684. return &OutputService11ProtocolTest{service}
  685. }
  686. // newRequest creates a new request for a OutputService11ProtocolTest operation and runs any
  687. // custom request initialization.
  688. func (c *OutputService11ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  689. req := c.NewRequest(op, params, data)
  690. return req
  691. }
  692. const opOutputService11TestCaseOperation1 = "OperationName"
  693. // OutputService11TestCaseOperation1Request generates a request for the OutputService11TestCaseOperation1 operation.
  694. func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1Request(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (req *request.Request, output *OutputService11TestShapeOutputService11TestCaseOperation1Output) {
  695. op := &request.Operation{
  696. Name: opOutputService11TestCaseOperation1,
  697. }
  698. if input == nil {
  699. input = &OutputService11TestShapeOutputService11TestCaseOperation1Input{}
  700. }
  701. req = c.newRequest(op, input, output)
  702. output = &OutputService11TestShapeOutputService11TestCaseOperation1Output{}
  703. req.Data = output
  704. return
  705. }
  706. func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (*OutputService11TestShapeOutputService11TestCaseOperation1Output, error) {
  707. req, out := c.OutputService11TestCaseOperation1Request(input)
  708. err := req.Send()
  709. return out, err
  710. }
  711. type OutputService11TestShapeOutputService11TestCaseOperation1Input struct {
  712. metadataOutputService11TestShapeOutputService11TestCaseOperation1Input `json:"-" xml:"-"`
  713. }
  714. type metadataOutputService11TestShapeOutputService11TestCaseOperation1Input struct {
  715. SDKShapeTraits bool `type:"structure"`
  716. }
  717. type OutputService11TestShapeOutputService11TestCaseOperation1Output struct {
  718. Stream []byte `type:"blob"`
  719. metadataOutputService11TestShapeOutputService11TestCaseOperation1Output `json:"-" xml:"-"`
  720. }
  721. type metadataOutputService11TestShapeOutputService11TestCaseOperation1Output struct {
  722. SDKShapeTraits bool `type:"structure" payload:"Stream"`
  723. }
  724. type OutputService12ProtocolTest struct {
  725. *service.Service
  726. }
  727. // New returns a new OutputService12ProtocolTest client.
  728. func NewOutputService12ProtocolTest(config *aws.Config) *OutputService12ProtocolTest {
  729. service := &service.Service{
  730. ServiceInfo: serviceinfo.ServiceInfo{
  731. Config: defaults.DefaultConfig.Merge(config),
  732. ServiceName: "outputservice12protocoltest",
  733. APIVersion: "",
  734. },
  735. }
  736. service.Initialize()
  737. // Handlers
  738. service.Handlers.Sign.PushBack(v4.Sign)
  739. service.Handlers.Build.PushBack(restjson.Build)
  740. service.Handlers.Unmarshal.PushBack(restjson.Unmarshal)
  741. service.Handlers.UnmarshalMeta.PushBack(restjson.UnmarshalMeta)
  742. service.Handlers.UnmarshalError.PushBack(restjson.UnmarshalError)
  743. return &OutputService12ProtocolTest{service}
  744. }
  745. // newRequest creates a new request for a OutputService12ProtocolTest operation and runs any
  746. // custom request initialization.
  747. func (c *OutputService12ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  748. req := c.NewRequest(op, params, data)
  749. return req
  750. }
  751. const opOutputService12TestCaseOperation1 = "OperationName"
  752. // OutputService12TestCaseOperation1Request generates a request for the OutputService12TestCaseOperation1 operation.
  753. func (c *OutputService12ProtocolTest) OutputService12TestCaseOperation1Request(input *OutputService12TestShapeOutputService12TestCaseOperation1Input) (req *request.Request, output *OutputService12TestShapeOutputService12TestCaseOperation1Output) {
  754. op := &request.Operation{
  755. Name: opOutputService12TestCaseOperation1,
  756. }
  757. if input == nil {
  758. input = &OutputService12TestShapeOutputService12TestCaseOperation1Input{}
  759. }
  760. req = c.newRequest(op, input, output)
  761. output = &OutputService12TestShapeOutputService12TestCaseOperation1Output{}
  762. req.Data = output
  763. return
  764. }
  765. func (c *OutputService12ProtocolTest) OutputService12TestCaseOperation1(input *OutputService12TestShapeOutputService12TestCaseOperation1Input) (*OutputService12TestShapeOutputService12TestCaseOperation1Output, error) {
  766. req, out := c.OutputService12TestCaseOperation1Request(input)
  767. err := req.Send()
  768. return out, err
  769. }
  770. type OutputService12TestShapeOutputService12TestCaseOperation1Input struct {
  771. metadataOutputService12TestShapeOutputService12TestCaseOperation1Input `json:"-" xml:"-"`
  772. }
  773. type metadataOutputService12TestShapeOutputService12TestCaseOperation1Input struct {
  774. SDKShapeTraits bool `type:"structure"`
  775. }
  776. type OutputService12TestShapeOutputService12TestCaseOperation1Output struct {
  777. String *string `type:"string"`
  778. metadataOutputService12TestShapeOutputService12TestCaseOperation1Output `json:"-" xml:"-"`
  779. }
  780. type metadataOutputService12TestShapeOutputService12TestCaseOperation1Output struct {
  781. SDKShapeTraits bool `type:"structure" payload:"String"`
  782. }
  783. //
  784. // Tests begin here
  785. //
  786. func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  787. svc := NewOutputService1ProtocolTest(nil)
  788. buf := bytes.NewReader([]byte("{\"Str\": \"myname\", \"Num\": 123, \"FalseBool\": false, \"TrueBool\": true, \"Float\": 1.2, \"Double\": 1.3, \"Long\": 200, \"Char\": \"a\"}"))
  789. req, out := svc.OutputService1TestCaseOperation1Request(nil)
  790. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  791. // set headers
  792. req.HTTPResponse.Header.Set("ImaHeader", "test")
  793. req.HTTPResponse.Header.Set("X-Foo", "abc")
  794. // unmarshal response
  795. restjson.UnmarshalMeta(req)
  796. restjson.Unmarshal(req)
  797. assert.NoError(t, req.Error)
  798. // assert response
  799. assert.NotNil(t, out) // ensure out variable is used
  800. assert.Equal(t, "a", *out.Char)
  801. assert.Equal(t, 1.3, *out.Double)
  802. assert.Equal(t, false, *out.FalseBool)
  803. assert.Equal(t, 1.2, *out.Float)
  804. assert.Equal(t, "test", *out.ImaHeader)
  805. assert.Equal(t, "abc", *out.ImaHeaderLocation)
  806. assert.Equal(t, int64(200), *out.Long)
  807. assert.Equal(t, int64(123), *out.Num)
  808. assert.Equal(t, int64(200), *out.Status)
  809. assert.Equal(t, "myname", *out.Str)
  810. assert.Equal(t, true, *out.TrueBool)
  811. }
  812. func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) {
  813. svc := NewOutputService2ProtocolTest(nil)
  814. buf := bytes.NewReader([]byte("{\"BlobMember\": \"aGkh\", \"StructMember\": {\"foo\": \"dGhlcmUh\"}}"))
  815. req, out := svc.OutputService2TestCaseOperation1Request(nil)
  816. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  817. // set headers
  818. // unmarshal response
  819. restjson.UnmarshalMeta(req)
  820. restjson.Unmarshal(req)
  821. assert.NoError(t, req.Error)
  822. // assert response
  823. assert.NotNil(t, out) // ensure out variable is used
  824. assert.Equal(t, "hi!", string(out.BlobMember))
  825. assert.Equal(t, "there!", string(out.StructMember.Foo))
  826. }
  827. func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) {
  828. svc := NewOutputService3ProtocolTest(nil)
  829. buf := bytes.NewReader([]byte("{\"TimeMember\": 1398796238, \"StructMember\": {\"foo\": 1398796238}}"))
  830. req, out := svc.OutputService3TestCaseOperation1Request(nil)
  831. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  832. // set headers
  833. // unmarshal response
  834. restjson.UnmarshalMeta(req)
  835. restjson.Unmarshal(req)
  836. assert.NoError(t, req.Error)
  837. // assert response
  838. assert.NotNil(t, out) // ensure out variable is used
  839. assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.String())
  840. assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeMember.String())
  841. }
  842. func TestOutputService4ProtocolTestListsCase1(t *testing.T) {
  843. svc := NewOutputService4ProtocolTest(nil)
  844. buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", \"b\"]}"))
  845. req, out := svc.OutputService4TestCaseOperation1Request(nil)
  846. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  847. // set headers
  848. // unmarshal response
  849. restjson.UnmarshalMeta(req)
  850. restjson.Unmarshal(req)
  851. assert.NoError(t, req.Error)
  852. // assert response
  853. assert.NotNil(t, out) // ensure out variable is used
  854. assert.Equal(t, "a", *out.ListMember[0])
  855. assert.Equal(t, "b", *out.ListMember[1])
  856. }
  857. func TestOutputService5ProtocolTestListsWithStructureMemberCase1(t *testing.T) {
  858. svc := NewOutputService5ProtocolTest(nil)
  859. buf := bytes.NewReader([]byte("{\"ListMember\": [{\"Foo\": \"a\"}, {\"Foo\": \"b\"}]}"))
  860. req, out := svc.OutputService5TestCaseOperation1Request(nil)
  861. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  862. // set headers
  863. // unmarshal response
  864. restjson.UnmarshalMeta(req)
  865. restjson.Unmarshal(req)
  866. assert.NoError(t, req.Error)
  867. // assert response
  868. assert.NotNil(t, out) // ensure out variable is used
  869. assert.Equal(t, "a", *out.ListMember[0].Foo)
  870. assert.Equal(t, "b", *out.ListMember[1].Foo)
  871. }
  872. func TestOutputService6ProtocolTestMapsCase1(t *testing.T) {
  873. svc := NewOutputService6ProtocolTest(nil)
  874. buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": [1, 2], \"b\": [3, 4]}}"))
  875. req, out := svc.OutputService6TestCaseOperation1Request(nil)
  876. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  877. // set headers
  878. // unmarshal response
  879. restjson.UnmarshalMeta(req)
  880. restjson.Unmarshal(req)
  881. assert.NoError(t, req.Error)
  882. // assert response
  883. assert.NotNil(t, out) // ensure out variable is used
  884. assert.Equal(t, int64(1), *out.MapMember["a"][0])
  885. assert.Equal(t, int64(2), *out.MapMember["a"][1])
  886. assert.Equal(t, int64(3), *out.MapMember["b"][0])
  887. assert.Equal(t, int64(4), *out.MapMember["b"][1])
  888. }
  889. func TestOutputService7ProtocolTestComplexMapValuesCase1(t *testing.T) {
  890. svc := NewOutputService7ProtocolTest(nil)
  891. buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": 1398796238, \"b\": 1398796238}}"))
  892. req, out := svc.OutputService7TestCaseOperation1Request(nil)
  893. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  894. // set headers
  895. // unmarshal response
  896. restjson.UnmarshalMeta(req)
  897. restjson.Unmarshal(req)
  898. assert.NoError(t, req.Error)
  899. // assert response
  900. assert.NotNil(t, out) // ensure out variable is used
  901. assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["a"].String())
  902. assert.Equal(t, time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["b"].String())
  903. }
  904. func TestOutputService8ProtocolTestIgnoresExtraDataCase1(t *testing.T) {
  905. svc := NewOutputService8ProtocolTest(nil)
  906. buf := bytes.NewReader([]byte("{\"foo\": \"bar\"}"))
  907. req, out := svc.OutputService8TestCaseOperation1Request(nil)
  908. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  909. // set headers
  910. // unmarshal response
  911. restjson.UnmarshalMeta(req)
  912. restjson.Unmarshal(req)
  913. assert.NoError(t, req.Error)
  914. // assert response
  915. assert.NotNil(t, out) // ensure out variable is used
  916. }
  917. func TestOutputService9ProtocolTestSupportsHeaderMapsCase1(t *testing.T) {
  918. svc := NewOutputService9ProtocolTest(nil)
  919. buf := bytes.NewReader([]byte("{}"))
  920. req, out := svc.OutputService9TestCaseOperation1Request(nil)
  921. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  922. // set headers
  923. req.HTTPResponse.Header.Set("Content-Length", "10")
  924. req.HTTPResponse.Header.Set("X-bam", "boo")
  925. req.HTTPResponse.Header.Set("x-Foo", "bar")
  926. // unmarshal response
  927. restjson.UnmarshalMeta(req)
  928. restjson.Unmarshal(req)
  929. assert.NoError(t, req.Error)
  930. // assert response
  931. assert.NotNil(t, out) // ensure out variable is used
  932. assert.Equal(t, "10", *out.AllHeaders["Content-Length"])
  933. assert.Equal(t, "boo", *out.AllHeaders["X-Bam"])
  934. assert.Equal(t, "bar", *out.AllHeaders["X-Foo"])
  935. assert.Equal(t, "boo", *out.PrefixedHeaders["Bam"])
  936. assert.Equal(t, "bar", *out.PrefixedHeaders["Foo"])
  937. }
  938. func TestOutputService10ProtocolTestJSONPayloadCase1(t *testing.T) {
  939. svc := NewOutputService10ProtocolTest(nil)
  940. buf := bytes.NewReader([]byte("{\"Foo\": \"abc\"}"))
  941. req, out := svc.OutputService10TestCaseOperation1Request(nil)
  942. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  943. // set headers
  944. req.HTTPResponse.Header.Set("X-Foo", "baz")
  945. // unmarshal response
  946. restjson.UnmarshalMeta(req)
  947. restjson.Unmarshal(req)
  948. assert.NoError(t, req.Error)
  949. // assert response
  950. assert.NotNil(t, out) // ensure out variable is used
  951. assert.Equal(t, "abc", *out.Data.Foo)
  952. assert.Equal(t, "baz", *out.Header)
  953. }
  954. func TestOutputService11ProtocolTestStreamingPayloadCase1(t *testing.T) {
  955. svc := NewOutputService11ProtocolTest(nil)
  956. buf := bytes.NewReader([]byte("abc"))
  957. req, out := svc.OutputService11TestCaseOperation1Request(nil)
  958. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  959. // set headers
  960. // unmarshal response
  961. restjson.UnmarshalMeta(req)
  962. restjson.Unmarshal(req)
  963. assert.NoError(t, req.Error)
  964. // assert response
  965. assert.NotNil(t, out) // ensure out variable is used
  966. assert.Equal(t, "abc", string(out.Stream))
  967. }
  968. func TestOutputService12ProtocolTestStringCase1(t *testing.T) {
  969. svc := NewOutputService12ProtocolTest(nil)
  970. buf := bytes.NewReader([]byte("operation result string"))
  971. req, out := svc.OutputService12TestCaseOperation1Request(nil)
  972. req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  973. // set headers
  974. // unmarshal response
  975. restjson.UnmarshalMeta(req)
  976. restjson.Unmarshal(req)
  977. assert.NoError(t, req.Error)
  978. // assert response
  979. assert.NotNil(t, out) // ensure out variable is used
  980. assert.Equal(t, "operation result string", *out.String)
  981. }