soap4r 1.5.5.20061022

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. data/bin/wsdl2ruby.rb +131 -0
  2. data/bin/xsd2ruby.rb +82 -0
  3. data/lib/soap/XMLSchemaDatatypes.rb +9 -0
  4. data/lib/soap/XMLSchemaDatatypes1999.rb +10 -0
  5. data/lib/soap/attachment.rb +108 -0
  6. data/lib/soap/baseData.rb +992 -0
  7. data/lib/soap/cgistub.rb +9 -0
  8. data/lib/soap/charset.rb +9 -0
  9. data/lib/soap/compat.rb +182 -0
  10. data/lib/soap/driver.rb +9 -0
  11. data/lib/soap/element.rb +266 -0
  12. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  13. data/lib/soap/encodingstyle/handler.rb +109 -0
  14. data/lib/soap/encodingstyle/literalHandler.rb +241 -0
  15. data/lib/soap/encodingstyle/soapHandler.rb +598 -0
  16. data/lib/soap/generator.rb +264 -0
  17. data/lib/soap/header/handler.rb +60 -0
  18. data/lib/soap/header/handlerset.rb +70 -0
  19. data/lib/soap/header/simplehandler.rb +44 -0
  20. data/lib/soap/httpconfigloader.rb +119 -0
  21. data/lib/soap/mapping.rb +12 -0
  22. data/lib/soap/mapping/encodedregistry.rb +531 -0
  23. data/lib/soap/mapping/factory.rb +372 -0
  24. data/lib/soap/mapping/literalregistry.rb +321 -0
  25. data/lib/soap/mapping/mapping.rb +561 -0
  26. data/lib/soap/mapping/registry.rb +258 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +475 -0
  28. data/lib/soap/mapping/typeMap.rb +82 -0
  29. data/lib/soap/mapping/wsdlencodedregistry.rb +253 -0
  30. data/lib/soap/mapping/wsdlliteralregistry.rb +246 -0
  31. data/lib/soap/mappingRegistry.rb +9 -0
  32. data/lib/soap/marshal.rb +59 -0
  33. data/lib/soap/mimemessage.rb +241 -0
  34. data/lib/soap/namespace.rb +9 -0
  35. data/lib/soap/netHttpClient.rb +204 -0
  36. data/lib/soap/parser.rb +251 -0
  37. data/lib/soap/processor.rb +66 -0
  38. data/lib/soap/property.rb +333 -0
  39. data/lib/soap/proxy.rb +14 -0
  40. data/lib/soap/qname.rb +9 -0
  41. data/lib/soap/rpc/cgistub.rb +214 -0
  42. data/lib/soap/rpc/driver.rb +245 -0
  43. data/lib/soap/rpc/element.rb +330 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/proxy.rb +563 -0
  46. data/lib/soap/rpc/router.rb +602 -0
  47. data/lib/soap/rpc/rpc.rb +25 -0
  48. data/lib/soap/rpc/soaplet.rb +162 -0
  49. data/lib/soap/rpc/standaloneServer.rb +43 -0
  50. data/lib/soap/rpcRouter.rb +9 -0
  51. data/lib/soap/rpcUtils.rb +9 -0
  52. data/lib/soap/server.rb +9 -0
  53. data/lib/soap/soap.rb +150 -0
  54. data/lib/soap/standaloneServer.rb +9 -0
  55. data/lib/soap/streamHandler.rb +258 -0
  56. data/lib/soap/wsdlDriver.rb +580 -0
  57. data/lib/wsdl/binding.rb +65 -0
  58. data/lib/wsdl/data.rb +64 -0
  59. data/lib/wsdl/definitions.rb +250 -0
  60. data/lib/wsdl/documentation.rb +32 -0
  61. data/lib/wsdl/import.rb +80 -0
  62. data/lib/wsdl/importer.rb +38 -0
  63. data/lib/wsdl/info.rb +39 -0
  64. data/lib/wsdl/message.rb +54 -0
  65. data/lib/wsdl/operation.rb +175 -0
  66. data/lib/wsdl/operationBinding.rb +116 -0
  67. data/lib/wsdl/param.rb +85 -0
  68. data/lib/wsdl/parser.rb +163 -0
  69. data/lib/wsdl/part.rb +52 -0
  70. data/lib/wsdl/port.rb +84 -0
  71. data/lib/wsdl/portType.rb +75 -0
  72. data/lib/wsdl/service.rb +61 -0
  73. data/lib/wsdl/soap/address.rb +40 -0
  74. data/lib/wsdl/soap/binding.rb +49 -0
  75. data/lib/wsdl/soap/body.rb +56 -0
  76. data/lib/wsdl/soap/cgiStubCreator.rb +88 -0
  77. data/lib/wsdl/soap/classDefCreator.rb +340 -0
  78. data/lib/wsdl/soap/classDefCreatorSupport.rb +131 -0
  79. data/lib/wsdl/soap/clientSkeltonCreator.rb +93 -0
  80. data/lib/wsdl/soap/complexType.rb +166 -0
  81. data/lib/wsdl/soap/data.rb +42 -0
  82. data/lib/wsdl/soap/definitions.rb +151 -0
  83. data/lib/wsdl/soap/driverCreator.rb +110 -0
  84. data/lib/wsdl/soap/element.rb +28 -0
  85. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +117 -0
  86. data/lib/wsdl/soap/fault.rb +56 -0
  87. data/lib/wsdl/soap/header.rb +86 -0
  88. data/lib/wsdl/soap/headerfault.rb +56 -0
  89. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +188 -0
  90. data/lib/wsdl/soap/mappingRegistryCreator.rb +53 -0
  91. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +233 -0
  92. data/lib/wsdl/soap/methodDefCreator.rb +253 -0
  93. data/lib/wsdl/soap/operation.rb +122 -0
  94. data/lib/wsdl/soap/servantSkeltonCreator.rb +78 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +98 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +196 -0
  97. data/lib/wsdl/types.rb +44 -0
  98. data/lib/wsdl/wsdl.rb +23 -0
  99. data/lib/wsdl/xmlSchema/all.rb +24 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  101. data/lib/wsdl/xmlSchema/any.rb +56 -0
  102. data/lib/wsdl/xmlSchema/attribute.rb +123 -0
  103. data/lib/wsdl/xmlSchema/choice.rb +55 -0
  104. data/lib/wsdl/xmlSchema/complexContent.rb +88 -0
  105. data/lib/wsdl/xmlSchema/complexExtension.rb +104 -0
  106. data/lib/wsdl/xmlSchema/complexRestriction.rb +92 -0
  107. data/lib/wsdl/xmlSchema/complexType.rb +152 -0
  108. data/lib/wsdl/xmlSchema/content.rb +74 -0
  109. data/lib/wsdl/xmlSchema/data.rb +90 -0
  110. data/lib/wsdl/xmlSchema/element.rb +158 -0
  111. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  112. data/lib/wsdl/xmlSchema/import.rb +65 -0
  113. data/lib/wsdl/xmlSchema/importer.rb +87 -0
  114. data/lib/wsdl/xmlSchema/include.rb +54 -0
  115. data/lib/wsdl/xmlSchema/length.rb +35 -0
  116. data/lib/wsdl/xmlSchema/list.rb +48 -0
  117. data/lib/wsdl/xmlSchema/maxlength.rb +35 -0
  118. data/lib/wsdl/xmlSchema/minlength.rb +35 -0
  119. data/lib/wsdl/xmlSchema/parser.rb +166 -0
  120. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  121. data/lib/wsdl/xmlSchema/schema.rb +144 -0
  122. data/lib/wsdl/xmlSchema/sequence.rb +51 -0
  123. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  124. data/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  125. data/lib/wsdl/xmlSchema/simpleRestriction.rb +91 -0
  126. data/lib/wsdl/xmlSchema/simpleType.rb +80 -0
  127. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  128. data/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  129. data/lib/xsd/charset.rb +187 -0
  130. data/lib/xsd/codegen.rb +12 -0
  131. data/lib/xsd/codegen/classdef.rb +203 -0
  132. data/lib/xsd/codegen/commentdef.rb +34 -0
  133. data/lib/xsd/codegen/gensupport.rb +168 -0
  134. data/lib/xsd/codegen/methoddef.rb +70 -0
  135. data/lib/xsd/codegen/moduledef.rb +191 -0
  136. data/lib/xsd/datatypes.rb +1282 -0
  137. data/lib/xsd/datatypes1999.rb +20 -0
  138. data/lib/xsd/iconvcharset.rb +33 -0
  139. data/lib/xsd/mapping.rb +42 -0
  140. data/lib/xsd/namedelements.rb +124 -0
  141. data/lib/xsd/ns.rb +146 -0
  142. data/lib/xsd/qname.rb +78 -0
  143. data/lib/xsd/xmlparser.rb +61 -0
  144. data/lib/xsd/xmlparser/parser.rb +96 -0
  145. data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  146. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  147. data/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  148. data/test/16runner.rb +68 -0
  149. data/test/interopR2/README.txt +2 -0
  150. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  151. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  152. data/test/interopR2/base.rb +288 -0
  153. data/test/interopR2/client.NetRemoting.rb +17 -0
  154. data/test/interopR2/client.NetRemoting.rb.result +3410 -0
  155. data/test/interopR2/client.NetRemoting_Base.log +6279 -0
  156. data/test/interopR2/client.NetRemoting_GroupB.log +1188 -0
  157. data/test/interopR2/client.rb +1228 -0
  158. data/test/interopR2/client4S4C.rb +15 -0
  159. data/test/interopR2/client4S4C2.rb +14 -0
  160. data/test/interopR2/client4S4C2_Base.log +4955 -0
  161. data/test/interopR2/client4S4C2_GroupB.log +1000 -0
  162. data/test/interopR2/client4S4C_Base.log +4635 -0
  163. data/test/interopR2/client4S4C_GroupB.log +900 -0
  164. data/test/interopR2/clientASP.NET.rb +17 -0
  165. data/test/interopR2/clientASP.NET_Base.log +5468 -0
  166. data/test/interopR2/clientASP.NET_GroupB.log +977 -0
  167. data/test/interopR2/clientApacheAxis.rb +16 -0
  168. data/test/interopR2/clientApacheAxis_Base.log +3171 -0
  169. data/test/interopR2/clientApacheAxis_GroupB.log +498 -0
  170. data/test/interopR2/clientApacheSOAP.rb +17 -0
  171. data/test/interopR2/clientApacheSOAP_Base.log +3171 -0
  172. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  173. data/test/interopR2/clientBEAWebLogic_Base.log +3171 -0
  174. data/test/interopR2/clientBEAWebLogic_GroupB.log +498 -0
  175. data/test/interopR2/clientBase.rb +1970 -0
  176. data/test/interopR2/clientCapeConnect.rb +18 -0
  177. data/test/interopR2/clientCapeConnect_Base.log +2126 -0
  178. data/test/interopR2/clientDelphi.rb +19 -0
  179. data/test/interopR2/clientDelphi_Base.log +0 -0
  180. data/test/interopR2/clientEasySoap.rb +14 -0
  181. data/test/interopR2/clientEasySoap_Base.log +6187 -0
  182. data/test/interopR2/clientEasySoap_GroupB.log +1076 -0
  183. data/test/interopR2/clientFrontier.rb +25 -0
  184. data/test/interopR2/clientFrontier_Base.log +5188 -0
  185. data/test/interopR2/clientGLUE.rb +32 -0
  186. data/test/interopR2/clientHP.rb +13 -0
  187. data/test/interopR2/clientHP_Base.log +3171 -0
  188. data/test/interopR2/clientHP_GroupB.log +498 -0
  189. data/test/interopR2/clientJAX-RPC.rb +19 -0
  190. data/test/interopR2/clientJSOAP.rb +14 -0
  191. data/test/interopR2/clientJSOAP_Base.log +4465 -0
  192. data/test/interopR2/clientJSOAP_GroupB.log +824 -0
  193. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  194. data/test/interopR2/clientKafkaXSLT_Base.log +10299 -0
  195. data/test/interopR2/clientKafkaXSLT_GroupB.log +1739 -0
  196. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  197. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +4805 -0
  198. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +871 -0
  199. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  200. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +5076 -0
  201. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +908 -0
  202. data/test/interopR2/clientNuSOAP.rb +19 -0
  203. data/test/interopR2/clientNuSOAP_Base.log +5076 -0
  204. data/test/interopR2/clientNuSOAP_GroupB.log +958 -0
  205. data/test/interopR2/clientNuWave.rb +15 -0
  206. data/test/interopR2/clientNuWave_Base.log +2019 -0
  207. data/test/interopR2/clientOpenLink.rb +15 -0
  208. data/test/interopR2/clientOpenLink_Base.log +6171 -0
  209. data/test/interopR2/clientOpenLink_GroupB.log +1094 -0
  210. data/test/interopR2/clientOracle.rb +15 -0
  211. data/test/interopR2/clientOracle_Base.log +5594 -0
  212. data/test/interopR2/clientPEAR.rb +18 -0
  213. data/test/interopR2/clientPEAR_Base.log +6261 -0
  214. data/test/interopR2/clientPEAR_GroupB.log +1106 -0
  215. data/test/interopR2/clientPhalanx.rb +18 -0
  216. data/test/interopR2/clientPhalanx_Base.log +41036 -0
  217. data/test/interopR2/clientPhalanx_GroupB.log +6519 -0
  218. data/test/interopR2/clientSIMACE.rb +18 -0
  219. data/test/interopR2/clientSIMACE_Base.log +6171 -0
  220. data/test/interopR2/clientSIMACE_GroupB.log +1093 -0
  221. data/test/interopR2/clientSOAP4R.rb +18 -0
  222. data/test/interopR2/clientSOAP4R.rb.result +3409 -0
  223. data/test/interopR2/clientSOAP4R_Base.log +6366 -0
  224. data/test/interopR2/clientSOAP4R_GroupB.log +1112 -0
  225. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  226. data/test/interopR2/clientSQLData.rb +18 -0
  227. data/test/interopR2/clientSQLData_Base.log +4857 -0
  228. data/test/interopR2/clientSQLData_GroupB.log +770 -0
  229. data/test/interopR2/clientSilverStream.rb +17 -0
  230. data/test/interopR2/clientSilverStream_Base.log +3171 -0
  231. data/test/interopR2/clientSpray2001.rb +17 -0
  232. data/test/interopR2/clientSpray2001_Base.log +8187 -0
  233. data/test/interopR2/clientSpray2001_GroupB.log +1408 -0
  234. data/test/interopR2/clientSun.rb +19 -0
  235. data/test/interopR2/clientSun_Base.log +4641 -0
  236. data/test/interopR2/clientSun_GroupB.log +856 -0
  237. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  238. data/test/interopR2/clientVWOpentalkSoap_Base.log +5402 -0
  239. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +972 -0
  240. data/test/interopR2/clientWASP.rb +19 -0
  241. data/test/interopR2/clientWASPC.rb +18 -0
  242. data/test/interopR2/clientWASPC_Base.log +4187 -0
  243. data/test/interopR2/clientWASPC_GroupB.log +763 -0
  244. data/test/interopR2/clientWASP_Base.log +5414 -0
  245. data/test/interopR2/clientWASP_GroupB.log +970 -0
  246. data/test/interopR2/clientWebMethods.rb +15 -0
  247. data/test/interopR2/clientWebMethods_Base.log +3075 -0
  248. data/test/interopR2/clientWebMethods_GroupB.log +483 -0
  249. data/test/interopR2/clientWhiteMesa.rb +28 -0
  250. data/test/interopR2/clientWhiteMesa_Base.log +4359 -0
  251. data/test/interopR2/clientWhiteMesa_GroupB.log +808 -0
  252. data/test/interopR2/clientWingfoot.rb +15 -0
  253. data/test/interopR2/clientWingfoot_Base.log +4445 -0
  254. data/test/interopR2/clientWingfoot_GroupB.log +848 -0
  255. data/test/interopR2/clientXMLBus.rb +19 -0
  256. data/test/interopR2/clientXMLBus_Base.log +3075 -0
  257. data/test/interopR2/clientXMLBus_GroupB.log +483 -0
  258. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  259. data/test/interopR2/clientXSOAP.rb +14 -0
  260. data/test/interopR2/clientXSOAP_Base.log +4445 -0
  261. data/test/interopR2/clientZSI.rb +19 -0
  262. data/test/interopR2/clienteSOAP.rb +18 -0
  263. data/test/interopR2/clienteSOAP_Base.log +8728 -0
  264. data/test/interopR2/clientgSOAP.rb +18 -0
  265. data/test/interopR2/clientgSOAP_Base.log +4689 -0
  266. data/test/interopR2/clientgSOAP_GroupB.log +1014 -0
  267. data/test/interopR2/clientkSOAP.rb +17 -0
  268. data/test/interopR2/clientkSOAP_Base.log +5625 -0
  269. data/test/interopR2/iSimonReg.rb +112 -0
  270. data/test/interopR2/interopResultBase.rb +114 -0
  271. data/test/interopR2/interopService.rb +247 -0
  272. data/test/interopR2/result_client.NetRemoting.txt +4593 -0
  273. data/test/interopR2/rwikiInteropService.rb +105 -0
  274. data/test/interopR2/server.cgi +270 -0
  275. data/test/interopR2/server.rb +274 -0
  276. data/test/interopR2/simonReg.rb +123 -0
  277. data/test/interopR2/test.sh +49 -0
  278. data/test/interopR4/client.rb +112 -0
  279. data/test/runner.rb +9 -0
  280. data/test/sm11/classDef.rb +156 -0
  281. data/test/sm11/client.rb +542 -0
  282. data/test/sm11/driver.rb +183 -0
  283. data/test/sm11/servant.rb +1067 -0
  284. data/test/sm11/server.rb +25 -0
  285. data/test/soap/asp.net/hello.wsdl +96 -0
  286. data/test/soap/asp.net/test_aspdotnet.rb +112 -0
  287. data/test/soap/calc/calc.rb +17 -0
  288. data/test/soap/calc/calc2.rb +29 -0
  289. data/test/soap/calc/server.cgi +13 -0
  290. data/test/soap/calc/server.rb +17 -0
  291. data/test/soap/calc/server2.rb +20 -0
  292. data/test/soap/calc/test_calc.rb +49 -0
  293. data/test/soap/calc/test_calc2.rb +53 -0
  294. data/test/soap/calc/test_calc_cgi.rb +69 -0
  295. data/test/soap/fault/test_customfault.rb +58 -0
  296. data/test/soap/header/server.cgi +119 -0
  297. data/test/soap/header/test_authheader.rb +240 -0
  298. data/test/soap/header/test_authheader_cgi.rb +121 -0
  299. data/test/soap/header/test_simplehandler.rb +116 -0
  300. data/test/soap/helloworld/hw_s.rb +16 -0
  301. data/test/soap/helloworld/test_helloworld.rb +41 -0
  302. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  303. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  304. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  305. data/test/soap/literalArrayMapping/test_definedarray.rb +36 -0
  306. data/test/soap/marshal/marshaltestlib.rb +494 -0
  307. data/test/soap/marshal/test_digraph.rb +56 -0
  308. data/test/soap/marshal/test_marshal.rb +26 -0
  309. data/test/soap/marshal/test_struct.rb +47 -0
  310. data/test/soap/ssl/README +1 -0
  311. data/test/soap/ssl/ca.cert +23 -0
  312. data/test/soap/ssl/client.cert +19 -0
  313. data/test/soap/ssl/client.key +15 -0
  314. data/test/soap/ssl/server.cert +19 -0
  315. data/test/soap/ssl/server.key +15 -0
  316. data/test/soap/ssl/sslsvr.rb +57 -0
  317. data/test/soap/ssl/subca.cert +21 -0
  318. data/test/soap/ssl/test_ssl.rb +245 -0
  319. data/test/soap/struct/test_struct.rb +77 -0
  320. data/test/soap/styleuse/client.rb +20 -0
  321. data/test/soap/styleuse/server.rb +86 -0
  322. data/test/soap/swa/test_file.rb +73 -0
  323. data/test/soap/test_basetype.rb +976 -0
  324. data/test/soap/test_custommap.rb +108 -0
  325. data/test/soap/test_empty.rb +79 -0
  326. data/test/soap/test_envelopenamespace.rb +92 -0
  327. data/test/soap/test_httpconfigloader.rb +39 -0
  328. data/test/soap/test_mapping.rb +59 -0
  329. data/test/soap/test_no_indent.rb +86 -0
  330. data/test/soap/test_property.rb +424 -0
  331. data/test/soap/test_response_as_xml.rb +95 -0
  332. data/test/soap/test_soapelement.rb +120 -0
  333. data/test/soap/test_streamhandler.rb +262 -0
  334. data/test/soap/test_styleuse.rb +333 -0
  335. data/test/soap/wsdlDriver/README.txt +2 -0
  336. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  337. data/test/soap/wsdlDriver/document.wsdl +54 -0
  338. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  339. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  340. data/test/soap/wsdlDriver/test_calc.rb +100 -0
  341. data/test/soap/wsdlDriver/test_document.rb +78 -0
  342. data/test/soap/wsdlDriver/test_simpletype.rb +87 -0
  343. data/test/wsdl/abstract/abstract.wsdl +97 -0
  344. data/test/wsdl/abstract/test_abstract.rb +130 -0
  345. data/test/wsdl/any/any.wsdl +51 -0
  346. data/test/wsdl/any/expectedDriver.rb +46 -0
  347. data/test/wsdl/any/expectedEcho.rb +18 -0
  348. data/test/wsdl/any/expectedService.rb +42 -0
  349. data/test/wsdl/any/test_any.rb +193 -0
  350. data/test/wsdl/axisArray/axisArray.wsdl +60 -0
  351. data/test/wsdl/axisArray/itemList.rb +14 -0
  352. data/test/wsdl/axisArray/test_axisarray.rb +69 -0
  353. data/test/wsdl/choice/choice.wsdl +91 -0
  354. data/test/wsdl/choice/test_choice.rb +134 -0
  355. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  356. data/test/wsdl/complexcontent/test_echo.rb +101 -0
  357. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  358. data/test/wsdl/datetime/datetime.rb +0 -0
  359. data/test/wsdl/datetime/datetime.wsdl +45 -0
  360. data/test/wsdl/datetime/datetimeServant.rb +21 -0
  361. data/test/wsdl/datetime/test_datetime.rb +82 -0
  362. data/test/wsdl/document/array/double.wsdl +72 -0
  363. data/test/wsdl/document/array/test_array.rb +117 -0
  364. data/test/wsdl/document/document.wsdl +74 -0
  365. data/test/wsdl/document/number.wsdl +54 -0
  366. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  367. data/test/wsdl/document/test_nosoapaction.rb +109 -0
  368. data/test/wsdl/document/test_number.rb +99 -0
  369. data/test/wsdl/document/test_rpc.rb +211 -0
  370. data/test/wsdl/emptycomplextype.wsdl +31 -0
  371. data/test/wsdl/list/list.wsdl +93 -0
  372. data/test/wsdl/list/test_list.rb +134 -0
  373. data/test/wsdl/map/map.wsdl +92 -0
  374. data/test/wsdl/map/map.xml +43 -0
  375. data/test/wsdl/map/test_map.rb +99 -0
  376. data/test/wsdl/marshal/person.wsdl +21 -0
  377. data/test/wsdl/marshal/person_org.rb +18 -0
  378. data/test/wsdl/marshal/test_wsdlmarshal.rb +79 -0
  379. data/test/wsdl/multiplefault.wsdl +68 -0
  380. data/test/wsdl/overload/overload.wsdl +80 -0
  381. data/test/wsdl/overload/test_overload.rb +118 -0
  382. data/test/wsdl/qualified/lp.wsdl +47 -0
  383. data/test/wsdl/qualified/lp.xsd +26 -0
  384. data/test/wsdl/qualified/np.wsdl +51 -0
  385. data/test/wsdl/qualified/test_qualified.rb +145 -0
  386. data/test/wsdl/qualified/test_unqualified.rb +159 -0
  387. data/test/wsdl/raa/RAA.rb +120 -0
  388. data/test/wsdl/raa/RAAServant.rb +107 -0
  389. data/test/wsdl/raa/RAAService.rb +120 -0
  390. data/test/wsdl/raa/README.txt +8 -0
  391. data/test/wsdl/raa/raa.wsdl +264 -0
  392. data/test/wsdl/raa/server.rb +103 -0
  393. data/test/wsdl/raa/test_raa.rb +91 -0
  394. data/test/wsdl/ref/expectedProduct.rb +158 -0
  395. data/test/wsdl/ref/product.wsdl +147 -0
  396. data/test/wsdl/ref/test_ref.rb +289 -0
  397. data/test/wsdl/rpc/rpc.wsdl +83 -0
  398. data/test/wsdl/rpc/test-rpc-lit.wsdl +364 -0
  399. data/test/wsdl/rpc/test_rpc.rb +173 -0
  400. data/test/wsdl/rpc/test_rpc_lit.rb +407 -0
  401. data/test/wsdl/simplecontent/simplecontent.wsdl +83 -0
  402. data/test/wsdl/simplecontent/test_simplecontent.rb +116 -0
  403. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  404. data/test/wsdl/simpletype/rpc/expectedDriver.rb +55 -0
  405. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +19 -0
  406. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  407. data/test/wsdl/simpletype/rpc/expectedService.rb +51 -0
  408. data/test/wsdl/simpletype/rpc/rpc.wsdl +80 -0
  409. data/test/wsdl/simpletype/rpc/test_rpc.rb +62 -0
  410. data/test/wsdl/simpletype/simpletype.wsdl +95 -0
  411. data/test/wsdl/simpletype/test_simpletype.rb +99 -0
  412. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  413. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  414. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +19 -0
  415. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  416. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +55 -0
  417. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  418. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +44 -0
  419. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +51 -0
  420. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  421. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +31 -0
  422. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  423. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  424. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  425. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +96 -0
  426. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +79 -0
  427. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  428. data/test/wsdl/soaptype/test_soaptype.rb +160 -0
  429. data/test/wsdl/test_emptycomplextype.rb +21 -0
  430. data/test/wsdl/test_fault.rb +50 -0
  431. data/test/wsdl/test_multiplefault.rb +39 -0
  432. data/test/xsd/codegen/test_classdef.rb +214 -0
  433. data/test/xsd/noencoding.xml +4 -0
  434. data/test/xsd/test_noencoding.rb +32 -0
  435. data/test/xsd/test_ns.rb +20 -0
  436. data/test/xsd/test_xmlschemaparser.rb +22 -0
  437. data/test/xsd/test_xsd.rb +1523 -0
  438. data/test/xsd/xmllang.xml +43 -0
  439. data/test/xsd/xmlschema.xml +12 -0
  440. metadata +539 -0
@@ -0,0 +1,172 @@
1
+ require 'amazonEc.rb'
2
+
3
+ require 'soap/rpc/driver'
4
+
5
+ class AWSECommerceServicePortType < ::SOAP::RPC::Driver
6
+ DefaultEndpointUrl = "http://soap.amazon.com/onca/soap?Service=AWSECommerceService"
7
+ MappingRegistry = ::SOAP::Mapping::Registry.new
8
+
9
+ Methods = [
10
+ [ "http://soap.amazon.com",
11
+ "help",
12
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "Help"], true],
13
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "HelpResponse"], true] ],
14
+ { :request_style => :document, :request_use => :literal,
15
+ :response_style => :document, :response_use => :literal }
16
+ ],
17
+ [ "http://soap.amazon.com",
18
+ "itemSearch",
19
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ItemSearch"], true],
20
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ItemSearchResponse"], true] ],
21
+ { :request_style => :document, :request_use => :literal,
22
+ :response_style => :document, :response_use => :literal }
23
+ ],
24
+ [ "http://soap.amazon.com",
25
+ "itemLookup",
26
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ItemLookup"], true],
27
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ItemLookupResponse"], true] ],
28
+ { :request_style => :document, :request_use => :literal,
29
+ :response_style => :document, :response_use => :literal }
30
+ ],
31
+ [ "http://soap.amazon.com",
32
+ "browseNodeLookup",
33
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "BrowseNodeLookup"], true],
34
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "BrowseNodeLookupResponse"], true] ],
35
+ { :request_style => :document, :request_use => :literal,
36
+ :response_style => :document, :response_use => :literal }
37
+ ],
38
+ [ "http://soap.amazon.com",
39
+ "listSearch",
40
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ListSearch"], true],
41
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ListSearchResponse"], true] ],
42
+ { :request_style => :document, :request_use => :literal,
43
+ :response_style => :document, :response_use => :literal }
44
+ ],
45
+ [ "http://soap.amazon.com",
46
+ "listLookup",
47
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ListLookup"], true],
48
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "ListLookupResponse"], true] ],
49
+ { :request_style => :document, :request_use => :literal,
50
+ :response_style => :document, :response_use => :literal }
51
+ ],
52
+ [ "http://soap.amazon.com",
53
+ "customerContentSearch",
54
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CustomerContentSearch"], true],
55
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CustomerContentSearchResponse"], true] ],
56
+ { :request_style => :document, :request_use => :literal,
57
+ :response_style => :document, :response_use => :literal }
58
+ ],
59
+ [ "http://soap.amazon.com",
60
+ "customerContentLookup",
61
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CustomerContentLookup"], true],
62
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CustomerContentLookupResponse"], true] ],
63
+ { :request_style => :document, :request_use => :literal,
64
+ :response_style => :document, :response_use => :literal }
65
+ ],
66
+ [ "http://soap.amazon.com",
67
+ "similarityLookup",
68
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SimilarityLookup"], true],
69
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SimilarityLookupResponse"], true] ],
70
+ { :request_style => :document, :request_use => :literal,
71
+ :response_style => :document, :response_use => :literal }
72
+ ],
73
+ [ "http://soap.amazon.com",
74
+ "sellerLookup",
75
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerLookup"], true],
76
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerLookupResponse"], true] ],
77
+ { :request_style => :document, :request_use => :literal,
78
+ :response_style => :document, :response_use => :literal }
79
+ ],
80
+ [ "http://soap.amazon.com",
81
+ "cartGet",
82
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartGet"], true],
83
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartGetResponse"], true] ],
84
+ { :request_style => :document, :request_use => :literal,
85
+ :response_style => :document, :response_use => :literal }
86
+ ],
87
+ [ "http://soap.amazon.com",
88
+ "cartCreate",
89
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartCreate"], true],
90
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartCreateResponse"], true] ],
91
+ { :request_style => :document, :request_use => :literal,
92
+ :response_style => :document, :response_use => :literal }
93
+ ],
94
+ [ "http://soap.amazon.com",
95
+ "cartAdd",
96
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartAdd"], true],
97
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartAddResponse"], true] ],
98
+ { :request_style => :document, :request_use => :literal,
99
+ :response_style => :document, :response_use => :literal }
100
+ ],
101
+ [ "http://soap.amazon.com",
102
+ "cartModify",
103
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartModify"], true],
104
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartModifyResponse"], true] ],
105
+ { :request_style => :document, :request_use => :literal,
106
+ :response_style => :document, :response_use => :literal }
107
+ ],
108
+ [ "http://soap.amazon.com",
109
+ "cartClear",
110
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartClear"], true],
111
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "CartClearResponse"], true] ],
112
+ { :request_style => :document, :request_use => :literal,
113
+ :response_style => :document, :response_use => :literal }
114
+ ],
115
+ [ "http://soap.amazon.com",
116
+ "transactionLookup",
117
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "TransactionLookup"], true],
118
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "TransactionLookupResponse"], true] ],
119
+ { :request_style => :document, :request_use => :literal,
120
+ :response_style => :document, :response_use => :literal }
121
+ ],
122
+ [ "http://soap.amazon.com",
123
+ "sellerListingSearch",
124
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerListingSearch"], true],
125
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerListingSearchResponse"], true] ],
126
+ { :request_style => :document, :request_use => :literal,
127
+ :response_style => :document, :response_use => :literal }
128
+ ],
129
+ [ "http://soap.amazon.com",
130
+ "sellerListingLookup",
131
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerListingLookup"], true],
132
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "SellerListingLookupResponse"], true] ],
133
+ { :request_style => :document, :request_use => :literal,
134
+ :response_style => :document, :response_use => :literal }
135
+ ],
136
+ [ "http://soap.amazon.com",
137
+ "multiOperation",
138
+ [ ["in", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "MultiOperation"], true],
139
+ ["out", "body", ["::SOAP::SOAPElement", "http://webservices.amazon.com/AWSECommerceService/2006-06-07", "MultiOperationResponse"], true] ],
140
+ { :request_style => :document, :request_use => :literal,
141
+ :response_style => :document, :response_use => :literal }
142
+ ]
143
+ ]
144
+
145
+ def initialize(endpoint_url = nil)
146
+ endpoint_url ||= DefaultEndpointUrl
147
+ super(endpoint_url, nil)
148
+ self.mapping_registry = MappingRegistry
149
+ init_methods
150
+ end
151
+
152
+ private
153
+
154
+ def init_methods
155
+ Methods.each do |definitions|
156
+ opt = definitions.last
157
+ if opt[:request_style] == :document
158
+ add_document_operation(*definitions)
159
+ else
160
+ add_rpc_operation(*definitions)
161
+ qname = definitions[0]
162
+ name = definitions[2]
163
+ if qname.name != name and qname.name.capitalize == name.capitalize
164
+ ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
165
+ __send__(name, *arg)
166
+ end
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end
172
+
@@ -0,0 +1,100 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <SOAP-ENV:Body>
4
+ <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2006-06-07">
5
+ <OperationRequest>
6
+ <HTTPHeaders>
7
+ <Header Name="UserAgent" Value="SOAP4R/1.5.5 (/114, ruby 1.8.4 (2005-12-24) [i686-linux])">
8
+ </Header>
9
+ </HTTPHeaders>
10
+ <RequestId>00000000000000000000</RequestId>
11
+ <Arguments>
12
+ <Argument Name="Service" Value="AWSECommerceService">
13
+ </Argument>
14
+ </Arguments>
15
+ <RequestProcessingTime>0.17442512512207</RequestProcessingTime>
16
+ </OperationRequest>
17
+ <Items>
18
+ <Request>
19
+ <IsValid>True</IsValid>
20
+ </Request>
21
+ <TotalResults>11</TotalResults>
22
+ <TotalPages>2</TotalPages>
23
+ <Item>
24
+ <ASIN>B000AMF800</ASIN>
25
+ <DetailPageURL>the_url_is_too_long</DetailPageURL>
26
+ <ItemAttributes>
27
+ <Artist>Andreas Bieber, Pia Douwes, Thomas Borchert, Felix Martin Uwe</Artist>
28
+ <Manufacturer>Ar-Express (Sony BMG)</Manufacturer>
29
+ <ProductGroup>Music</ProductGroup>
30
+ <Title>Musical Stars</Title>
31
+ </ItemAttributes>
32
+ <OfferSummary>
33
+ <LowestNewPrice>
34
+ <Amount>852</Amount>
35
+ <CurrencyCode>EUR</CurrencyCode>
36
+ <FormattedPrice>EUR 8,52</FormattedPrice>
37
+ </LowestNewPrice>
38
+ <LowestUsedPrice>
39
+ <Amount>852</Amount>
40
+ <CurrencyCode>EUR</CurrencyCode>
41
+ <FormattedPrice>EUR 8,52</FormattedPrice>
42
+ </LowestUsedPrice>
43
+ <TotalNew>12</TotalNew>
44
+ <TotalUsed>2</TotalUsed>
45
+ <TotalCollectible>0</TotalCollectible>
46
+ <TotalRefurbished>0</TotalRefurbished>
47
+ </OfferSummary>
48
+ <Tracks>
49
+ <Disc Number="1">
50
+ <Track Number="1">Totale Finsternis (Tanz der Vampire)</Track>
51
+ <Track Number="2">Ich mir (Elisabeth)</Track>
52
+ <Track Number="3">The Winner Takes It All ("Mamma Mia")</Track>
53
+ <Track Number="4">Cindy (Cindy)</Track>
54
+ <Track Number="5">Beauty And The Beast (Disney's Beauty &amp; The Best)</Track>
55
+ <Track Number="6">Somewhere Out There (American Tail)</Track>
56
+ <Track Number="7">Mamma Mia - Musicalstars singen Abba-Hits</Track>
57
+ <Track Number="8">Dies ist die Stunde (Jekyll &amp; Hyde)</Track>
58
+ <Track Number="9">Bring ihn heim (Les )</Track>
59
+ <Track Number="10">New Hampshire Nights (An Unfinished Song)</Track>
60
+ <Track Number="11">The Door Is Open</Track>
61
+ <Track Number="12">Pinball Wizard (Tommy)</Track>
62
+ <Track Number="13">Ocean Of Love (Poe: Pech und Schwefel)</Track>
63
+ </Disc>
64
+ <Disc Number="2">
65
+ <Track Number="1">Written In The Stars ("Aida"</Track>
66
+ <Track Number="2">I Am (Hero)</Track>
67
+ <Track Number="3">Waterloo - Musicalstars singen Abba-Hits</Track>
68
+ <Track Number="4">Don't Cry For Me Argentina (Evita)</Track>
69
+ <Track Number="5">Gib mir Kraft (Bonifatius: Das Musical)</Track>
70
+ <Track Number="6">Break The Silence (Paradise Of Pain)</Track>
71
+ <Track Number="7">Irgendetwas fehlt (Letterland)</Track>
72
+ <Track Number="8">A Dangerous Game (Jekyll &amp; Hyde)</Track>
73
+ <Track Number="9">I Am A Mirror (Freudiana)</Track>
74
+ <Track Number="10">Easy Terms (Blood Brothers)</Track>
75
+ <Track Number="11">The Shades Of Night (Elisabeth)</Track>
76
+ <Track Number="12">Gold von den Sternen (Mozart!)</Track>
77
+ <Track Number="13">Die Musik der Nacht (Das Phantom der Oper)</Track>
78
+ </Disc>
79
+ <Disc Number="3">
80
+ <Track Number="1">Schlag ein (Poe: Pech und Schwefel) - Edited Version</Track>
81
+ <Track Number="2">Ein Leben lang (Bonifatius: Das Musical)</Track>
82
+ <Track Number="3">Memory (Cats)</Track>
83
+ <Track Number="4">Any Fool Could Se / Oh, Paris (Paris)</Track>
84
+ <Track Number="5">Does Your Mother Know (Mamma Mia)</Track>
85
+ <Track Number="6">Out Of My Pain</Track>
86
+ <Track Number="7">Lullaby From Faraway</Track>
87
+ <Track Number="8">Die unstillbare Gier (Tanz der Vampire)</Track>
88
+ <Track Number="9">Make A Wish Come True (Make-A-Wish-Foundation Song)</Track>
89
+ <Track Number="10">Somewhere In Heaven (Arena)</Track>
90
+ <Track Number="11">Are We Really Angels</Track>
91
+ <Track Number="12">Lost My Mind (Peggy: Das Musical)</Track>
92
+ <Track Number="13">Our Time (Merrily We Roll Along)</Track>
93
+ <Track Number="14">Follow Your Star</Track>
94
+ </Disc>
95
+ </Tracks>
96
+ </Item>
97
+ </Items>
98
+ </ItemSearchResponse>
99
+ </SOAP-ENV:Body>
100
+ </SOAP-ENV:Envelope>
@@ -0,0 +1,36 @@
1
+ require 'test/unit'
2
+ require 'soap/mapping'
3
+ require 'soap/processor'
4
+ require 'soap/rpc/element'
5
+
6
+
7
+ module SOAP
8
+ module Marshal
9
+
10
+
11
+ class TestDefinedArray < Test::Unit::TestCase
12
+ def pathname(filename)
13
+ File.join(File.dirname(__FILE__), filename)
14
+ end
15
+
16
+ def setup
17
+ back = $:.dup
18
+ begin
19
+ $:.unshift(pathname('.'))
20
+ require pathname('amazonEcDriver')
21
+ ensure
22
+ $:.replace(back)
23
+ end
24
+ end
25
+
26
+ def test_amazonresponse
27
+ drv = AWSECommerceServicePortType.new
28
+ drv.test_loopback_response << File.read(pathname('amazonresponse.xml'))
29
+ obj = drv.itemSearch(ItemSearch.new)
30
+ assert_equal(3, obj.items[0].item[0].tracks.size)
31
+ end
32
+ end
33
+
34
+
35
+ end
36
+ end
@@ -0,0 +1,494 @@
1
+ module MarshalTestLib
2
+ # include this module to a Test::Unit::TestCase and definde encode(o) and
3
+ # decode(s) methods. e.g.
4
+ #
5
+ # def encode(o)
6
+ # SOAPMarshal.dump(o)
7
+ # end
8
+ #
9
+ # def decode(s)
10
+ # SOAPMarshal.load(s)
11
+ # end
12
+
13
+ NegativeZero = (-1.0 / (1.0 / 0.0))
14
+
15
+ module Mod1; end
16
+ module Mod2; end
17
+
18
+ def marshaltest(o1)
19
+ str = encode(o1)
20
+ print str, "\n" if $DEBUG
21
+ o2 = decode(str)
22
+ o2
23
+ end
24
+
25
+ def marshal_equal(o1, msg = nil)
26
+ msg = msg ? msg + "(#{ caller[0] })" : caller[0]
27
+ o2 = marshaltest(o1)
28
+ assert_equal(o1.class, o2.class, msg)
29
+ iv1 = o1.instance_variables.sort
30
+ iv2 = o2.instance_variables.sort
31
+ assert_equal(iv1, iv2)
32
+ val1 = iv1.map {|var| o1.instance_eval {eval var}}
33
+ val2 = iv1.map {|var| o2.instance_eval {eval var}}
34
+ assert_equal(val1, val2, msg)
35
+ if block_given?
36
+ assert_equal(yield(o1), yield(o2), msg)
37
+ else
38
+ assert_equal(o1, o2, msg)
39
+ end
40
+ end
41
+
42
+ class MyObject; def initialize(v) @v = v end; attr_reader :v; end
43
+ def test_object
44
+ o1 = Object.new
45
+ o1.instance_eval { @iv = 1 }
46
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
47
+ end
48
+
49
+ def test_object_subclass
50
+ marshal_equal(MyObject.new(2)) {|o| o.v}
51
+ end
52
+
53
+ def test_object_extend
54
+ o1 = Object.new
55
+ o1.extend(Mod1)
56
+ marshal_equal(o1) { |o|
57
+ (class << self; self; end).ancestors
58
+ }
59
+ o1.extend(Mod2)
60
+ marshal_equal(o1) { |o|
61
+ (class << self; self; end).ancestors
62
+ }
63
+ end
64
+
65
+ def test_object_subclass_extend
66
+ o1 = MyObject.new(2)
67
+ o1.extend(Mod1)
68
+ marshal_equal(o1) { |o|
69
+ (class << self; self; end).ancestors
70
+ }
71
+ o1.extend(Mod2)
72
+ marshal_equal(o1) { |o|
73
+ (class << self; self; end).ancestors
74
+ }
75
+ end
76
+
77
+ class MyArray < Array
78
+ def initialize(v, *args)
79
+ super(args)
80
+ @v = v
81
+ end
82
+ end
83
+ def test_array
84
+ marshal_equal(5)
85
+ marshal_equal([1,2,3])
86
+ end
87
+
88
+ def test_array_subclass
89
+ marshal_equal(MyArray.new(0, 1, 2, 3))
90
+ end
91
+
92
+ def test_array_ivar
93
+ o1 = Array.new
94
+ o1.instance_eval { @iv = 1 }
95
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
96
+ end
97
+
98
+ class MyException < Exception; def initialize(v, *args) super(*args); @v = v; end; attr_reader :v; end
99
+ def test_exception
100
+ marshal_equal(Exception.new('foo')) {|o| o.message}
101
+ marshal_equal(assert_raise(NoMethodError) {no_such_method()}) {|o| o.message}
102
+ end
103
+
104
+ def test_exception_subclass
105
+ marshal_equal(MyException.new(20, "bar")) {|o| [o.message, o.v]}
106
+ end
107
+
108
+ def test_false
109
+ marshal_equal(false)
110
+ end
111
+
112
+ class MyHash < Hash; def initialize(v, *args) super(*args); @v = v; end end
113
+ def test_hash
114
+ marshal_equal({1=>2, 3=>4})
115
+ end
116
+
117
+ def test_hash_default
118
+ h = Hash.new(:default)
119
+ h[5] = 6
120
+ marshal_equal(h)
121
+ end
122
+
123
+ def test_hash_subclass
124
+ h = MyHash.new(7, 8)
125
+ h[4] = 5
126
+ marshal_equal(h)
127
+ end
128
+
129
+ def test_hash_default_proc
130
+ h = Hash.new {}
131
+ assert_raises(TypeError) { marshaltest(h) }
132
+ end
133
+
134
+ def test_hash_ivar
135
+ o1 = Hash.new
136
+ o1.instance_eval { @iv = 1 }
137
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
138
+ end
139
+
140
+ def test_hash_extend
141
+ o1 = Hash.new
142
+ o1.extend(Mod1)
143
+ marshal_equal(o1) { |o|
144
+ (class << self; self; end).ancestors
145
+ }
146
+ o1.extend(Mod2)
147
+ marshal_equal(o1) { |o|
148
+ (class << self; self; end).ancestors
149
+ }
150
+ end
151
+
152
+ def test_hash_subclass_extend
153
+ o1 = MyHash.new(2)
154
+ o1.extend(Mod1)
155
+ marshal_equal(o1) { |o|
156
+ (class << self; self; end).ancestors
157
+ }
158
+ o1.extend(Mod2)
159
+ marshal_equal(o1) { |o|
160
+ (class << self; self; end).ancestors
161
+ }
162
+ end
163
+
164
+ def test_bignum
165
+ marshal_equal(-0x4000_0000_0000_0001)
166
+ marshal_equal(-0x4000_0001)
167
+ marshal_equal(0x4000_0000)
168
+ marshal_equal(0x4000_0000_0000_0000)
169
+ end
170
+
171
+ def test_fixnum
172
+ marshal_equal(-0x4000_0000)
173
+ marshal_equal(-0x3fff_ffff)
174
+ marshal_equal(-1)
175
+ marshal_equal(0)
176
+ marshal_equal(1)
177
+ marshal_equal(0x3fff_ffff)
178
+ end
179
+
180
+ def test_fixnum_ivar
181
+ o1 = 1
182
+ o1.instance_eval { @iv = 2 }
183
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
184
+ ensure
185
+ 1.instance_eval { remove_instance_variable("@iv") }
186
+ end
187
+
188
+ def test_fixnum_ivar_self
189
+ o1 = 1
190
+ o1.instance_eval { @iv = 1 }
191
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
192
+ ensure
193
+ 1.instance_eval { remove_instance_variable("@iv") }
194
+ end
195
+
196
+ def test_float
197
+ marshal_equal(-1.0)
198
+ marshal_equal(0.0)
199
+ marshal_equal(1.0)
200
+ end
201
+
202
+ def test_float_inf_nan
203
+ marshal_equal(1.0/0.0)
204
+ marshal_equal(-1.0/0.0)
205
+ marshal_equal(0.0/0.0) {|o| o.nan?}
206
+ marshal_equal(NegativeZero) {|o| 1.0/o}
207
+ end
208
+
209
+ def test_float_ivar
210
+ o1 = 1.23
211
+ o1.instance_eval { @iv = 1 }
212
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
213
+ end
214
+
215
+ def test_float_ivar_self
216
+ o1 = 5.5
217
+ o1.instance_eval { @iv = o1 }
218
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
219
+ end
220
+
221
+ def test_float_extend
222
+ o1 = 0.0/0.0
223
+ o1.extend(Mod1)
224
+ marshal_equal(o1) { |o|
225
+ (class << self; self; end).ancestors
226
+ }
227
+ o1.extend(Mod2)
228
+ marshal_equal(o1) { |o|
229
+ (class << self; self; end).ancestors
230
+ }
231
+ end
232
+
233
+ class MyRange < Range; def initialize(v, *args) super(*args); @v = v; end end
234
+ def test_range
235
+ marshal_equal(1..2)
236
+ marshal_equal(1...3)
237
+ end
238
+
239
+ def test_range_subclass
240
+ marshal_equal(MyRange.new(4,5,8, false))
241
+ end
242
+
243
+ class MyRegexp < Regexp; def initialize(v, *args) super(*args); @v = v; end end
244
+ def test_regexp
245
+ marshal_equal(/a/)
246
+ marshal_equal(/A/i)
247
+ marshal_equal(/A/mx)
248
+ end
249
+
250
+ def test_regexp_subclass
251
+ marshal_equal(MyRegexp.new(10, "a"))
252
+ end
253
+
254
+ class MyString < String; def initialize(v, *args) super(*args); @v = v; end end
255
+ def test_string
256
+ marshal_equal("abc")
257
+ end
258
+
259
+ def test_string_ivar
260
+ o1 = ""
261
+ o1.instance_eval { @iv = 1 }
262
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
263
+ end
264
+
265
+ def test_string_subclass
266
+ marshal_equal(MyString.new(10, "a"))
267
+ end
268
+
269
+ def test_string_subclass_cycle
270
+ str = MyString.new(10, "b")
271
+ str.instance_eval { @v = str }
272
+ marshal_equal(str) { |o|
273
+ assert_equal(o.__id__, o.instance_eval { @v }.__id__)
274
+ o.instance_eval { @v }
275
+ }
276
+ end
277
+
278
+ def test_string_subclass_extend
279
+ o = "abc"
280
+ o.extend(Mod1)
281
+ str = MyString.new(o, "c")
282
+ marshal_equal(str) { |o|
283
+ assert(o.instance_eval { @v }).kind_of?(Mod1)
284
+ }
285
+ end
286
+
287
+ MyStruct = Struct.new("MyStruct", :a, :b)
288
+ if RUBY_VERSION < "1.8.0"
289
+ # Struct#== is not defined in ruby/1.6
290
+ class MyStruct
291
+ def ==(rhs)
292
+ return true if __id__ == rhs.__id__
293
+ return false unless rhs.is_a?(::Struct)
294
+ return false if self.class != rhs.class
295
+ members.each do |member|
296
+ return false if self.__send__(member) != rhs.__send__(member)
297
+ end
298
+ return true
299
+ end
300
+ end
301
+ end
302
+ class MySubStruct < MyStruct; def initialize(v, *args) super(*args); @v = v; end end
303
+ def test_struct
304
+ marshal_equal(MyStruct.new(1,2))
305
+ end
306
+
307
+ def test_struct_subclass
308
+ if RUBY_VERSION < "1.8.0"
309
+ # Substruct instance cannot be dumped in ruby/1.6
310
+ # ::Marshal.dump(MySubStruct.new(10, 1, 2)) #=> uninitialized struct
311
+ return false
312
+ end
313
+ marshal_equal(MySubStruct.new(10,1,2))
314
+ end
315
+
316
+ def test_struct_ivar
317
+ o1 = MyStruct.new
318
+ o1.instance_eval { @iv = 1 }
319
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
320
+ end
321
+
322
+ def test_struct_subclass_extend
323
+ o1 = MyStruct.new
324
+ o1.extend(Mod1)
325
+ marshal_equal(o1) { |o|
326
+ (class << self; self; end).ancestors
327
+ }
328
+ o1.extend(Mod2)
329
+ marshal_equal(o1) { |o|
330
+ (class << self; self; end).ancestors
331
+ }
332
+ end
333
+
334
+ def test_symbol
335
+ marshal_equal(:a)
336
+ marshal_equal(:a?)
337
+ marshal_equal(:a!)
338
+ marshal_equal(:a=)
339
+ marshal_equal(:|)
340
+ marshal_equal(:^)
341
+ marshal_equal(:&)
342
+ marshal_equal(:<=>)
343
+ marshal_equal(:==)
344
+ marshal_equal(:===)
345
+ marshal_equal(:=~)
346
+ marshal_equal(:>)
347
+ marshal_equal(:>=)
348
+ marshal_equal(:<)
349
+ marshal_equal(:<=)
350
+ marshal_equal(:<<)
351
+ marshal_equal(:>>)
352
+ marshal_equal(:+)
353
+ marshal_equal(:-)
354
+ marshal_equal(:*)
355
+ marshal_equal(:/)
356
+ marshal_equal(:%)
357
+ marshal_equal(:**)
358
+ marshal_equal(:~)
359
+ marshal_equal(:+@)
360
+ marshal_equal(:-@)
361
+ marshal_equal(:[])
362
+ marshal_equal(:[]=)
363
+ marshal_equal(:`) #`
364
+ marshal_equal("a b".intern)
365
+ end
366
+
367
+ class MyTime < Time; def initialize(v, *args) super(*args); @v = v; end end
368
+ def test_time
369
+ # once there was a bug caused by usec overflow. try a little harder.
370
+ 10.times do
371
+ t = Time.now
372
+ marshal_equal(t, t.usec.to_s)
373
+ end
374
+ end
375
+
376
+ def test_time_subclass
377
+ marshal_equal(MyTime.new(10))
378
+ end
379
+
380
+ def test_time_ivar
381
+ o1 = Time.now
382
+ o1.instance_eval { @iv = 1 }
383
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
384
+ end
385
+
386
+ def test_true
387
+ marshal_equal(true)
388
+ end
389
+
390
+ def test_nil
391
+ marshal_equal(nil)
392
+ end
393
+
394
+ def test_share
395
+ o = [:share]
396
+ o1 = [o, o]
397
+ o2 = marshaltest(o1)
398
+ assert_same(o2.first, o2.last)
399
+ end
400
+
401
+ class CyclicRange < Range
402
+ def <=>(other); true; end
403
+ end
404
+ def test_range_cyclic
405
+ return unless CyclicRange.respond_to?(:allocate) # test for 1.8
406
+ o1 = CyclicRange.allocate
407
+ o1.instance_eval { initialize(o1, o1) }
408
+ o2 = marshaltest(o1)
409
+ assert_same(o2, o2.begin)
410
+ assert_same(o2, o2.end)
411
+ end
412
+
413
+ def test_singleton
414
+ o = Object.new
415
+ def o.m() end
416
+ assert_raises(TypeError) { marshaltest(o) }
417
+ o = Object.new
418
+ c = class << o
419
+ @v = 1
420
+ class C; self; end
421
+ end
422
+ assert_raises(TypeError) { marshaltest(o) }
423
+ assert_raises(TypeError) { marshaltest(c) }
424
+ assert_raises(TypeError) { marshaltest(ARGF) }
425
+ assert_raises(TypeError) { marshaltest(ENV) }
426
+ end
427
+
428
+ def test_extend
429
+ o = Object.new
430
+ o.extend Mod1
431
+ marshal_equal(o) { |obj| obj.kind_of? Mod1 }
432
+ o = Object.new
433
+ o.extend Mod1
434
+ o.extend Mod2
435
+ marshal_equal(o) {|obj| class << obj; ancestors end}
436
+ o = Object.new
437
+ o.extend Module.new
438
+ assert_raises(TypeError) { marshaltest(o) }
439
+ end
440
+
441
+ def test_extend_string
442
+ o = ""
443
+ o.extend Mod1
444
+ marshal_equal(o) { |obj| obj.kind_of? Mod1 }
445
+ o = ""
446
+ o.extend Mod1
447
+ o.extend Mod2
448
+ marshal_equal(o) {|obj| class << obj; ancestors end}
449
+ o = ""
450
+ o.extend Module.new
451
+ assert_raises(TypeError) { marshaltest(o) }
452
+ end
453
+
454
+ def test_anonymous
455
+ c = Class.new
456
+ assert_raises(TypeError) { marshaltest(c) }
457
+ o = c.new
458
+ assert_raises(TypeError) { marshaltest(o) }
459
+ m = Module.new
460
+ assert_raises(TypeError) { marshaltest(m) }
461
+ end
462
+
463
+ def test_string_empty
464
+ marshal_equal("")
465
+ end
466
+
467
+ def test_string_crlf
468
+ marshal_equal("\r\n")
469
+ end
470
+
471
+ def test_string_escape
472
+ marshal_equal("\0<;;>\1;;")
473
+ end
474
+
475
+ MyStruct2 = Struct.new(:a, :b)
476
+ if RUBY_VERSION < "1.8.0"
477
+ # Struct#== is not defined in ruby/1.6
478
+ class MyStruct2
479
+ def ==(rhs)
480
+ return true if __id__ == rhs.__id__
481
+ return false unless rhs.is_a?(::Struct)
482
+ return false if self.class != rhs.class
483
+ members.each do |member|
484
+ return false if self.__send__(member) != rhs.__send__(member)
485
+ end
486
+ return true
487
+ end
488
+ end
489
+ end
490
+ def test_struct_toplevel
491
+ o = MyStruct2.new(1,2)
492
+ marshal_equal(o)
493
+ end
494
+ end