teo-soap4r 1.5.9b

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 (425) hide show
  1. data/bin/wsdl2ruby.rb +137 -0
  2. data/bin/xsd2ruby.rb +90 -0
  3. data/lib/soap/attachment.rb +108 -0
  4. data/lib/soap/attrproxy.rb +34 -0
  5. data/lib/soap/baseData.rb +1094 -0
  6. data/lib/soap/element.rb +277 -0
  7. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  8. data/lib/soap/encodingstyle/handler.rb +120 -0
  9. data/lib/soap/encodingstyle/literalHandler.rb +195 -0
  10. data/lib/soap/encodingstyle/soapHandler.rb +559 -0
  11. data/lib/soap/filter.rb +13 -0
  12. data/lib/soap/filter/filterchain.rb +51 -0
  13. data/lib/soap/filter/handler.rb +31 -0
  14. data/lib/soap/filter/streamhandler.rb +29 -0
  15. data/lib/soap/generator.rb +299 -0
  16. data/lib/soap/header/handler.rb +61 -0
  17. data/lib/soap/header/handlerset.rb +70 -0
  18. data/lib/soap/header/mappinghandler.rb +47 -0
  19. data/lib/soap/header/simplehandler.rb +44 -0
  20. data/lib/soap/httpconfigloader.rb +139 -0
  21. data/lib/soap/mapping.rb +12 -0
  22. data/lib/soap/mapping/encodedregistry.rb +537 -0
  23. data/lib/soap/mapping/factory.rb +388 -0
  24. data/lib/soap/mapping/literalregistry.rb +391 -0
  25. data/lib/soap/mapping/mapping.rb +576 -0
  26. data/lib/soap/mapping/registry.rb +295 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +445 -0
  28. data/lib/soap/mapping/schemadefinition.rb +170 -0
  29. data/lib/soap/mapping/typeMap.rb +106 -0
  30. data/lib/soap/mapping/wsdlencodedregistry.rb +211 -0
  31. data/lib/soap/mapping/wsdlliteralregistry.rb +248 -0
  32. data/lib/soap/marshal.rb +59 -0
  33. data/lib/soap/mimemessage.rb +241 -0
  34. data/lib/soap/nestedexception.rb +42 -0
  35. data/lib/soap/netHttpClient.rb +241 -0
  36. data/lib/soap/ns.rb +34 -0
  37. data/lib/soap/parser.rb +252 -0
  38. data/lib/soap/processor.rb +66 -0
  39. data/lib/soap/property.rb +333 -0
  40. data/lib/soap/proxy.rb +14 -0
  41. data/lib/soap/rpc/cgistub.rb +247 -0
  42. data/lib/soap/rpc/driver.rb +221 -0
  43. data/lib/soap/rpc/element.rb +374 -0
  44. data/lib/soap/rpc/httpserver.rb +142 -0
  45. data/lib/soap/rpc/methodDef.rb +68 -0
  46. data/lib/soap/rpc/proxy.rb +572 -0
  47. data/lib/soap/rpc/router.rb +662 -0
  48. data/lib/soap/rpc/rpc.rb +25 -0
  49. data/lib/soap/rpc/soaplet.rb +200 -0
  50. data/lib/soap/rpc/standaloneServer.rb +43 -0
  51. data/lib/soap/soap.rb +151 -0
  52. data/lib/soap/streamHandler.rb +301 -0
  53. data/lib/soap/wsdlDriver.rb +164 -0
  54. data/lib/wsdl/binding.rb +65 -0
  55. data/lib/wsdl/data.rb +64 -0
  56. data/lib/wsdl/definitions.rb +236 -0
  57. data/lib/wsdl/documentation.rb +32 -0
  58. data/lib/wsdl/import.rb +80 -0
  59. data/lib/wsdl/importer.rb +38 -0
  60. data/lib/wsdl/info.rb +50 -0
  61. data/lib/wsdl/message.rb +54 -0
  62. data/lib/wsdl/operation.rb +151 -0
  63. data/lib/wsdl/operationBinding.rb +240 -0
  64. data/lib/wsdl/param.rb +93 -0
  65. data/lib/wsdl/parser.rb +164 -0
  66. data/lib/wsdl/part.rb +52 -0
  67. data/lib/wsdl/port.rb +66 -0
  68. data/lib/wsdl/portType.rb +75 -0
  69. data/lib/wsdl/service.rb +61 -0
  70. data/lib/wsdl/soap/address.rb +40 -0
  71. data/lib/wsdl/soap/binding.rb +49 -0
  72. data/lib/wsdl/soap/body.rb +58 -0
  73. data/lib/wsdl/soap/cgiStubCreator.rb +92 -0
  74. data/lib/wsdl/soap/classDefCreator.rb +433 -0
  75. data/lib/wsdl/soap/classDefCreatorSupport.rb +240 -0
  76. data/lib/wsdl/soap/classNameCreator.rb +54 -0
  77. data/lib/wsdl/soap/clientSkeltonCreator.rb +104 -0
  78. data/lib/wsdl/soap/complexType.rb +173 -0
  79. data/lib/wsdl/soap/data.rb +42 -0
  80. data/lib/wsdl/soap/definitions.rb +200 -0
  81. data/lib/wsdl/soap/driverCreator.rb +118 -0
  82. data/lib/wsdl/soap/element.rb +33 -0
  83. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +73 -0
  84. data/lib/wsdl/soap/fault.rb +56 -0
  85. data/lib/wsdl/soap/header.rb +86 -0
  86. data/lib/wsdl/soap/headerfault.rb +56 -0
  87. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +115 -0
  88. data/lib/wsdl/soap/mappingRegistryCreator.rb +58 -0
  89. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +376 -0
  90. data/lib/wsdl/soap/methodDefCreator.rb +199 -0
  91. data/lib/wsdl/soap/operation.rb +112 -0
  92. data/lib/wsdl/soap/servantSkeltonCreator.rb +89 -0
  93. data/lib/wsdl/soap/servletStubCreator.rb +104 -0
  94. data/lib/wsdl/soap/standaloneServerStubCreator.rb +100 -0
  95. data/lib/wsdl/soap/wsdl2ruby.rb +217 -0
  96. data/lib/wsdl/types.rb +44 -0
  97. data/lib/wsdl/wsdl.rb +24 -0
  98. data/lib/wsdl/xmlSchema/all.rb +24 -0
  99. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  100. data/lib/wsdl/xmlSchema/any.rb +61 -0
  101. data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
  102. data/lib/wsdl/xmlSchema/attribute.rb +104 -0
  103. data/lib/wsdl/xmlSchema/attributeGroup.rb +68 -0
  104. data/lib/wsdl/xmlSchema/choice.rb +58 -0
  105. data/lib/wsdl/xmlSchema/complexContent.rb +97 -0
  106. data/lib/wsdl/xmlSchema/complexExtension.rb +119 -0
  107. data/lib/wsdl/xmlSchema/complexRestriction.rb +104 -0
  108. data/lib/wsdl/xmlSchema/complexType.rb +193 -0
  109. data/lib/wsdl/xmlSchema/content.rb +95 -0
  110. data/lib/wsdl/xmlSchema/data.rb +116 -0
  111. data/lib/wsdl/xmlSchema/element.rb +153 -0
  112. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  113. data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
  114. data/lib/wsdl/xmlSchema/group.rb +100 -0
  115. data/lib/wsdl/xmlSchema/import.rb +53 -0
  116. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  117. data/lib/wsdl/xmlSchema/importer.rb +102 -0
  118. data/lib/wsdl/xmlSchema/include.rb +48 -0
  119. data/lib/wsdl/xmlSchema/length.rb +37 -0
  120. data/lib/wsdl/xmlSchema/list.rb +48 -0
  121. data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
  122. data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
  123. data/lib/wsdl/xmlSchema/maxlength.rb +37 -0
  124. data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
  125. data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
  126. data/lib/wsdl/xmlSchema/minlength.rb +37 -0
  127. data/lib/wsdl/xmlSchema/parser.rb +167 -0
  128. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  129. data/lib/wsdl/xmlSchema/ref.rb +33 -0
  130. data/lib/wsdl/xmlSchema/schema.rb +178 -0
  131. data/lib/wsdl/xmlSchema/sequence.rb +54 -0
  132. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  133. data/lib/wsdl/xmlSchema/simpleExtension.rb +62 -0
  134. data/lib/wsdl/xmlSchema/simpleRestriction.rb +132 -0
  135. data/lib/wsdl/xmlSchema/simpleType.rb +87 -0
  136. data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
  137. data/lib/wsdl/xmlSchema/union.rb +35 -0
  138. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  139. data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
  140. data/lib/wsdl/xmlSchema/xsd2ruby.rb +174 -0
  141. data/lib/xsd/charset.rb +189 -0
  142. data/lib/xsd/codegen.rb +12 -0
  143. data/lib/xsd/codegen/classdef.rb +208 -0
  144. data/lib/xsd/codegen/commentdef.rb +34 -0
  145. data/lib/xsd/codegen/gensupport.rb +273 -0
  146. data/lib/xsd/codegen/methoddef.rb +70 -0
  147. data/lib/xsd/codegen/moduledef.rb +208 -0
  148. data/lib/xsd/datatypes.rb +1466 -0
  149. data/lib/xsd/datatypes1999.rb +20 -0
  150. data/lib/xsd/iconvcharset.rb +33 -0
  151. data/lib/xsd/mapping.rb +68 -0
  152. data/lib/xsd/namedelements.rb +132 -0
  153. data/lib/xsd/ns.rb +182 -0
  154. data/lib/xsd/qname.rb +79 -0
  155. data/lib/xsd/xmlparser.rb +76 -0
  156. data/lib/xsd/xmlparser/libxmlparser.rb +115 -0
  157. data/lib/xsd/xmlparser/parser.rb +100 -0
  158. data/lib/xsd/xmlparser/rexmlparser.rb +58 -0
  159. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  160. data/lib/xsd/xmlparser/xmlscanner.rb +149 -0
  161. data/test/16runner.rb +68 -0
  162. data/test/interopR2/README.txt +2 -0
  163. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  164. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  165. data/test/interopR2/base.rb +288 -0
  166. data/test/interopR2/client.NetRemoting.rb +17 -0
  167. data/test/interopR2/client.rb +1234 -0
  168. data/test/interopR2/client4S4C.rb +15 -0
  169. data/test/interopR2/client4S4C2.rb +14 -0
  170. data/test/interopR2/clientASP.NET.rb +17 -0
  171. data/test/interopR2/clientApacheAxis.rb +16 -0
  172. data/test/interopR2/clientApacheSOAP.rb +17 -0
  173. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  174. data/test/interopR2/clientBase.rb +1967 -0
  175. data/test/interopR2/clientCapeConnect.rb +18 -0
  176. data/test/interopR2/clientDelphi.rb +19 -0
  177. data/test/interopR2/clientEasySoap.rb +14 -0
  178. data/test/interopR2/clientFrontier.rb +25 -0
  179. data/test/interopR2/clientGLUE.rb +32 -0
  180. data/test/interopR2/clientHP.rb +13 -0
  181. data/test/interopR2/clientJAX-RPC.rb +19 -0
  182. data/test/interopR2/clientJSOAP.rb +14 -0
  183. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  184. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  185. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  186. data/test/interopR2/clientNuSOAP.rb +19 -0
  187. data/test/interopR2/clientNuWave.rb +15 -0
  188. data/test/interopR2/clientOpenLink.rb +15 -0
  189. data/test/interopR2/clientOracle.rb +15 -0
  190. data/test/interopR2/clientPEAR.rb +18 -0
  191. data/test/interopR2/clientPhalanx.rb +18 -0
  192. data/test/interopR2/clientSIMACE.rb +18 -0
  193. data/test/interopR2/clientSOAP4R.rb +18 -0
  194. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  195. data/test/interopR2/clientSQLData.rb +18 -0
  196. data/test/interopR2/clientSilverStream.rb +17 -0
  197. data/test/interopR2/clientSpray2001.rb +17 -0
  198. data/test/interopR2/clientSun.rb +19 -0
  199. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  200. data/test/interopR2/clientWASP.rb +19 -0
  201. data/test/interopR2/clientWASPC.rb +18 -0
  202. data/test/interopR2/clientWebMethods.rb +15 -0
  203. data/test/interopR2/clientWhiteMesa.rb +28 -0
  204. data/test/interopR2/clientWingfoot.rb +15 -0
  205. data/test/interopR2/clientXMLBus.rb +19 -0
  206. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  207. data/test/interopR2/clientXSOAP.rb +14 -0
  208. data/test/interopR2/clientZSI.rb +19 -0
  209. data/test/interopR2/clienteSOAP.rb +18 -0
  210. data/test/interopR2/clientgSOAP.rb +18 -0
  211. data/test/interopR2/clientkSOAP.rb +17 -0
  212. data/test/interopR2/iSimonReg.rb +112 -0
  213. data/test/interopR2/interopResultBase.rb +114 -0
  214. data/test/interopR2/interopService.rb +247 -0
  215. data/test/interopR2/rwikiInteropService.rb +105 -0
  216. data/test/interopR2/server.cgi +270 -0
  217. data/test/interopR2/server.rb +275 -0
  218. data/test/interopR2/simonReg.rb +123 -0
  219. data/test/interopR2/test.sh +49 -0
  220. data/test/interopR4/client.rb +112 -0
  221. data/test/runner.rb +7 -0
  222. data/test/sm11/classDef.rb +156 -0
  223. data/test/sm11/client.rb +542 -0
  224. data/test/sm11/driver.rb +183 -0
  225. data/test/sm11/servant.rb +1067 -0
  226. data/test/sm11/server.rb +25 -0
  227. data/test/soap/asp.net/hello.wsdl +96 -0
  228. data/test/soap/asp.net/test_aspdotnet.rb +123 -0
  229. data/test/soap/auth/htdigest +2 -0
  230. data/test/soap/auth/htpasswd +2 -0
  231. data/test/soap/auth/test_basic.rb +117 -0
  232. data/test/soap/auth/test_digest.rb +118 -0
  233. data/test/soap/calc/calc.rb +17 -0
  234. data/test/soap/calc/calc2.rb +29 -0
  235. data/test/soap/calc/server.cgi +13 -0
  236. data/test/soap/calc/server.rb +17 -0
  237. data/test/soap/calc/server2.rb +20 -0
  238. data/test/soap/calc/test_calc.rb +51 -0
  239. data/test/soap/calc/test_calc2.rb +55 -0
  240. data/test/soap/calc/test_calc_cgi.rb +71 -0
  241. data/test/soap/case/test_mapping.rb +57 -0
  242. data/test/soap/fault/test_customfault.rb +60 -0
  243. data/test/soap/fault/test_fault.rb +46 -0
  244. data/test/soap/fault/test_soaparray.rb +35 -0
  245. data/test/soap/filter/test_filter.rb +146 -0
  246. data/test/soap/header/server.cgi +119 -0
  247. data/test/soap/header/test_authheader.rb +240 -0
  248. data/test/soap/header/test_authheader_cgi.rb +121 -0
  249. data/test/soap/header/test_simplehandler.rb +116 -0
  250. data/test/soap/helloworld/hw_s.rb +16 -0
  251. data/test/soap/helloworld/test_helloworld.rb +43 -0
  252. data/test/soap/htpasswd +2 -0
  253. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  254. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  255. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  256. data/test/soap/literalArrayMapping/test_definedarray.rb +34 -0
  257. data/test/soap/marshal/marshaltestlib.rb +494 -0
  258. data/test/soap/marshal/test_digraph.rb +56 -0
  259. data/test/soap/marshal/test_marshal.rb +26 -0
  260. data/test/soap/marshal/test_struct.rb +47 -0
  261. data/test/soap/ssl/README +1 -0
  262. data/test/soap/ssl/ca.cert +23 -0
  263. data/test/soap/ssl/client.cert +19 -0
  264. data/test/soap/ssl/client.key +15 -0
  265. data/test/soap/ssl/server.cert +19 -0
  266. data/test/soap/ssl/server.key +15 -0
  267. data/test/soap/ssl/sslsvr.rb +57 -0
  268. data/test/soap/ssl/subca.cert +21 -0
  269. data/test/soap/ssl/test_ssl.rb +235 -0
  270. data/test/soap/struct/test_struct.rb +70 -0
  271. data/test/soap/styleuse/client.rb +20 -0
  272. data/test/soap/styleuse/server.rb +86 -0
  273. data/test/soap/swa/test_file.rb +75 -0
  274. data/test/soap/test_basetype.rb +1090 -0
  275. data/test/soap/test_cookie.rb +112 -0
  276. data/test/soap/test_custom_ns.rb +105 -0
  277. data/test/soap/test_custommap.rb +110 -0
  278. data/test/soap/test_empty.rb +105 -0
  279. data/test/soap/test_envelopenamespace.rb +85 -0
  280. data/test/soap/test_extraattr.rb +54 -0
  281. data/test/soap/test_generator.rb +27 -0
  282. data/test/soap/test_httpconfigloader.rb +71 -0
  283. data/test/soap/test_mapping.rb +131 -0
  284. data/test/soap/test_nestedexception.rb +56 -0
  285. data/test/soap/test_nil.rb +57 -0
  286. data/test/soap/test_no_indent.rb +88 -0
  287. data/test/soap/test_property.rb +427 -0
  288. data/test/soap/test_response_as_xml.rb +117 -0
  289. data/test/soap/test_soapelement.rb +138 -0
  290. data/test/soap/test_streamhandler.rb +270 -0
  291. data/test/soap/test_styleuse.rb +326 -0
  292. data/test/soap/wsdlDriver/README.txt +2 -0
  293. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  294. data/test/soap/wsdlDriver/document.wsdl +54 -0
  295. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  296. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  297. data/test/soap/wsdlDriver/test_calc.rb +71 -0
  298. data/test/soap/wsdlDriver/test_document.rb +71 -0
  299. data/test/soap/wsdlDriver/test_simpletype.rb +80 -0
  300. data/test/testutil.rb +54 -0
  301. data/test/wsdl/abstract/abstract.wsdl +176 -0
  302. data/test/wsdl/abstract/test_abstract.rb +159 -0
  303. data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
  304. data/test/wsdl/anonymous/expectedDriver.rb +59 -0
  305. data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
  306. data/test/wsdl/anonymous/lp.wsdl +147 -0
  307. data/test/wsdl/anonymous/test_anonymous.rb +130 -0
  308. data/test/wsdl/any/any.wsdl +114 -0
  309. data/test/wsdl/any/expectedDriver.rb +68 -0
  310. data/test/wsdl/any/expectedEcho.rb +57 -0
  311. data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
  312. data/test/wsdl/any/expectedService.rb +69 -0
  313. data/test/wsdl/any/test_any.rb +193 -0
  314. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  315. data/test/wsdl/axisArray/test_axisarray.rb +124 -0
  316. data/test/wsdl/choice/choice.wsdl +167 -0
  317. data/test/wsdl/choice/test_choice.rb +310 -0
  318. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  319. data/test/wsdl/complexcontent/test_echo.rb +90 -0
  320. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  321. data/test/wsdl/datetime/datetime.rb +0 -0
  322. data/test/wsdl/datetime/datetime.wsdl +45 -0
  323. data/test/wsdl/datetime/datetimeServant.rb +22 -0
  324. data/test/wsdl/datetime/test_datetime.rb +86 -0
  325. data/test/wsdl/document/array/double.wsdl +161 -0
  326. data/test/wsdl/document/array/test_array.rb +201 -0
  327. data/test/wsdl/document/document.wsdl +76 -0
  328. data/test/wsdl/document/number.wsdl +54 -0
  329. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  330. data/test/wsdl/document/test_nosoapaction.rb +102 -0
  331. data/test/wsdl/document/test_number.rb +92 -0
  332. data/test/wsdl/document/test_rpc.rb +355 -0
  333. data/test/wsdl/emptycomplextype.wsdl +31 -0
  334. data/test/wsdl/fault/fault.wsdl +79 -0
  335. data/test/wsdl/fault/multifault.wsdl +96 -0
  336. data/test/wsdl/fault/test_fault.rb +119 -0
  337. data/test/wsdl/fault/test_multifault.rb +134 -0
  338. data/test/wsdl/group/expectedClassdef.rb +58 -0
  339. data/test/wsdl/group/expectedDriver.rb +51 -0
  340. data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
  341. data/test/wsdl/group/group.wsdl +88 -0
  342. data/test/wsdl/group/test_rpc.rb +145 -0
  343. data/test/wsdl/list/list.wsdl +93 -0
  344. data/test/wsdl/list/test_list.rb +124 -0
  345. data/test/wsdl/map/map.wsdl +92 -0
  346. data/test/wsdl/map/map.xml +43 -0
  347. data/test/wsdl/map/test_map.rb +99 -0
  348. data/test/wsdl/marshal/person.wsdl +21 -0
  349. data/test/wsdl/marshal/person_org.rb +23 -0
  350. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  351. data/test/wsdl/multiplefault.wsdl +75 -0
  352. data/test/wsdl/oneway/oneway.wsdl +36 -0
  353. data/test/wsdl/oneway/test_oneway.rb +108 -0
  354. data/test/wsdl/overload/expectedClient.rb +37 -0
  355. data/test/wsdl/overload/expectedDriver.rb +61 -0
  356. data/test/wsdl/overload/expectedServant.rb +35 -0
  357. data/test/wsdl/overload/overload.wsdl +70 -0
  358. data/test/wsdl/overload/test_overload.rb +131 -0
  359. data/test/wsdl/qualified/lp.wsdl +47 -0
  360. data/test/wsdl/qualified/lp.xsd +26 -0
  361. data/test/wsdl/qualified/np.wsdl +51 -0
  362. data/test/wsdl/qualified/test_qualified.rb +137 -0
  363. data/test/wsdl/qualified/test_unqualified.rb +138 -0
  364. data/test/wsdl/raa/RAAService.rb +125 -0
  365. data/test/wsdl/raa/README.txt +8 -0
  366. data/test/wsdl/raa/expectedClassDef.rb +100 -0
  367. data/test/wsdl/raa/expectedDriver.rb +96 -0
  368. data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
  369. data/test/wsdl/raa/raa.wsdl +264 -0
  370. data/test/wsdl/raa/test_raa.rb +126 -0
  371. data/test/wsdl/ref/expectedDriver.rb +51 -0
  372. data/test/wsdl/ref/expectedProduct.rb +243 -0
  373. data/test/wsdl/ref/product.wsdl +147 -0
  374. data/test/wsdl/ref/test_ref.rb +268 -0
  375. data/test/wsdl/rpc/rpc.wsdl +109 -0
  376. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  377. data/test/wsdl/rpc/test_rpc.rb +176 -0
  378. data/test/wsdl/rpc/test_rpc_lit.rb +470 -0
  379. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  380. data/test/wsdl/simplecontent/test_simplecontent.rb +102 -0
  381. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  382. data/test/wsdl/simpletype/rpc/expectedDriver.rb +58 -0
  383. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +36 -0
  384. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +57 -0
  385. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  386. data/test/wsdl/simpletype/rpc/expectedService.rb +55 -0
  387. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  388. data/test/wsdl/simpletype/rpc/test_rpc.rb +52 -0
  389. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  390. data/test/wsdl/simpletype/test_simpletype.rb +92 -0
  391. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  392. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  393. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +21 -0
  394. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  395. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +58 -0
  396. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +36 -0
  397. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  398. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +48 -0
  399. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +55 -0
  400. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  401. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +37 -0
  402. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  403. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +53 -0
  404. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  405. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +83 -0
  406. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +102 -0
  407. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  408. data/test/wsdl/soaptype/test_soaptype.rb +178 -0
  409. data/test/wsdl/test_emptycomplextype.rb +21 -0
  410. data/test/wsdl/test_fault.rb +50 -0
  411. data/test/wsdl/test_multiplefault.rb +41 -0
  412. data/test/xsd/codegen/test_classdef.rb +244 -0
  413. data/test/xsd/noencoding.xml +4 -0
  414. data/test/xsd/test_noencoding.rb +32 -0
  415. data/test/xsd/test_ns.rb +41 -0
  416. data/test/xsd/test_xmlschemaparser.rb +22 -0
  417. data/test/xsd/test_xsd.rb +1638 -0
  418. data/test/xsd/xmllang.xml +43 -0
  419. data/test/xsd/xmlschema.xml +12 -0
  420. data/test/xsd/xsd2ruby/expected_mysample.rb +65 -0
  421. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +11 -0
  422. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +51 -0
  423. data/test/xsd/xsd2ruby/section.xsd +49 -0
  424. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +90 -0
  425. metadata +487 -0
@@ -0,0 +1,37 @@
1
+ require 'xsd/qname'
2
+
3
+ # {urn:mysample}question
4
+ # something - SOAP::SOAPString
5
+ class Question
6
+ attr_accessor :something
7
+
8
+ def initialize(something = nil)
9
+ @something = something
10
+ end
11
+ end
12
+
13
+ # {urn:mysample}section
14
+ # sectionID - SOAP::SOAPInt
15
+ # name - SOAP::SOAPString
16
+ # description - SOAP::SOAPString
17
+ # index - SOAP::SOAPInt
18
+ # firstQuestion - Question
19
+ class Section
20
+ attr_accessor :sectionID
21
+ attr_accessor :name
22
+ attr_accessor :description
23
+ attr_accessor :index
24
+ attr_accessor :firstQuestion
25
+
26
+ def initialize(sectionID = nil, name = nil, description = nil, index = nil, firstQuestion = nil)
27
+ @sectionID = sectionID
28
+ @name = name
29
+ @description = description
30
+ @index = index
31
+ @firstQuestion = firstQuestion
32
+ end
33
+ end
34
+
35
+ # {urn:mysample}sectionArray
36
+ class SectionArray < ::Array
37
+ end
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema targetNamespace="urn:mysample"
3
+ xmlns:tns="urn:mysample"
4
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
+ xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"
6
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
7
+
8
+ <xsd:complexType name="question">
9
+ <xsd:sequence>
10
+ <xsd:element name="something" type="xsd:string" />
11
+ </xsd:sequence>
12
+ </xsd:complexType>
13
+
14
+ <xsd:complexType name="section">
15
+ <xsd:sequence>
16
+ <xsd:element name="sectionID" type="xsd:int" />
17
+ <xsd:element name="name" type="xsd:string" />
18
+ <xsd:element name="description" type="xsd:string" />
19
+ <xsd:element name="index" type="xsd:int" />
20
+ <xsd:element name="firstQuestion" type="tns:question" />
21
+ </xsd:sequence>
22
+ </xsd:complexType>
23
+
24
+ <xsd:complexType name="sectionArray">
25
+ <xsd:complexContent>
26
+ <xsd:restriction base="enc:Array">
27
+ <xsd:attribute ref="enc:arrayType" wsdl:arrayType="tns:section[]"/>
28
+ </xsd:restriction>
29
+ </xsd:complexContent>
30
+ </xsd:complexType>
31
+ </xsd:schema>
@@ -0,0 +1,53 @@
1
+ require 'test/unit'
2
+ require 'soap/marshal'
3
+ require 'rbconfig'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', '..', 'testutil.rb')
5
+
6
+
7
+ module WSDL; module SOAP
8
+
9
+
10
+ class TestSection < Test::Unit::TestCase
11
+ DIR = File.dirname(File.expand_path(__FILE__))
12
+ RUBY = Config::CONFIG['RUBY_INSTALL_NAME']
13
+
14
+ def setup
15
+ system("cd #{DIR} && #{RUBY} #{pathname("../../../../../bin/xsd2ruby.rb")} --xsd #{pathname("section.xsd")} --classdef --force --quiet")
16
+ end
17
+
18
+ def teardown
19
+ File.unlink(pathname("mysample.rb")) unless $DEBUG
20
+ end
21
+
22
+ def test_classdef
23
+ compare("expectedClassdef.rb", "mysample.rb")
24
+ end
25
+
26
+ def test_marshal
27
+ # avoid name crash (<item> => an Item when a class Item is defined)
28
+ if ::Object.constants.include?("Item")
29
+ ::Object.instance_eval { remove_const("Item") }
30
+ end
31
+ TestUtil.require(DIR, 'mysample.rb')
32
+ s1 = Section.new(1, "section1", "section 1", 1001, Question.new("q1"))
33
+ s2 = Section.new(2, "section2", "section 2", 1002, Question.new("q2"))
34
+ org = SectionArray[s1, s2]
35
+ obj = ::SOAP::Marshal.unmarshal(::SOAP::Marshal.marshal(org))
36
+ assert_equal(SectionArray, obj.class)
37
+ assert_equal(Section, obj[0].class)
38
+ assert_equal(Question, obj[0].firstQuestion.class)
39
+ end
40
+
41
+ private
42
+
43
+ def pathname(filename)
44
+ File.join(DIR, filename)
45
+ end
46
+
47
+ def compare(expected, actual)
48
+ TestUtil.filecompare(pathname(expected), pathname(actual))
49
+ end
50
+ end
51
+
52
+
53
+ end; end
@@ -0,0 +1,64 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <definitions name="echo"
3
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
4
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
5
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
6
+ xmlns:tns="urn:example.com:soapenc"
7
+ xmlns:txd="urn:example.com:soapenc-type"
8
+ targetNamespace="urn:example.com:soapenc"
9
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
10
+ <types>
11
+ <xsd:schema targetNamespace="urn:example.com:soapenc-type">
12
+ <xsd:complexType name="version_struct">
13
+ <xsd:all>
14
+ <xsd:element name="version" type="txd:t_version" />
15
+ <xsd:element name="msg" type="soapenc:string" />
16
+ </xsd:all>
17
+ </xsd:complexType>
18
+
19
+ <xsd:simpleType name="t_version">
20
+ <xsd:restriction base="soapenc:string">
21
+ <xsd:enumeration value="1.6"/>
22
+ <xsd:enumeration value="1.8"/>
23
+ <xsd:enumeration value="1.9"/>
24
+ </xsd:restriction>
25
+ </xsd:simpleType>
26
+ </xsd:schema>
27
+ </types>
28
+
29
+ <message name="msg_version">
30
+ <part name="version" type="txd:t_version"/>
31
+ </message>
32
+
33
+ <message name="msg_version_struct">
34
+ <part name="version_struct" type="txd:version_struct"/>
35
+ </message>
36
+
37
+ <portType name="echo_version_port_type">
38
+ <operation name="echo_version">
39
+ <input message="tns:msg_version"/>
40
+ <output message="tns:msg_version_struct"/>
41
+ </operation>
42
+ </portType>
43
+
44
+ <binding name="echo_version_binding" type="tns:echo_version_port_type">
45
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
46
+ <operation name="echo_version">
47
+ <soap:operation soapAction="urn:example.com:soapenc"/>
48
+ <input>
49
+ <soap:body use="encoded" namespace="urn:example.com:soapenc"
50
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
51
+ </input>
52
+ <output>
53
+ <soap:body use="encoded" namespace="urn:example.com:soapenc"
54
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
55
+ </output>
56
+ </operation>
57
+ </binding>
58
+
59
+ <service name="echo_version_service">
60
+ <port name="echo_version_port" binding="tns:echo_version_binding">
61
+ <soap:address location="http://localhost:10080"/>
62
+ </port>
63
+ </service>
64
+ </definitions>
@@ -0,0 +1,83 @@
1
+ require 'test/unit'
2
+ require 'wsdl/parser'
3
+ require 'wsdl/soap/wsdl2ruby'
4
+ require 'soap/rpc/standaloneServer'
5
+ require 'soap/wsdlDriver'
6
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', '..', 'testutil.rb')
7
+
8
+
9
+ module WSDL; module SOAP; module T_WSDL2Ruby
10
+
11
+
12
+ class TestSOAPENC < Test::Unit::TestCase
13
+ class Server < ::SOAP::RPC::StandaloneServer
14
+ def on_init
15
+ add_rpc_method(self, 'echo_version', 'version')
16
+ end
17
+
18
+ def echo_version(version)
19
+ Version_struct.new(version, "hello")
20
+ end
21
+ end
22
+
23
+ DIR = File.dirname(File.expand_path(__FILE__))
24
+
25
+ Port = 17171
26
+
27
+ def setup
28
+ setup_classdef
29
+ setup_server
30
+ @client = nil
31
+ end
32
+
33
+ def teardown
34
+ teardown_server if @server
35
+ unless $DEBUG
36
+ File.unlink(pathname('echo.rb'))
37
+ end
38
+ @client.reset_stream if @client
39
+ end
40
+
41
+ def setup_server
42
+ @server = Server.new('Test', "urn:example.com:soapenc", '0.0.0.0', Port)
43
+ @server.level = Logger::Severity::ERROR
44
+ @server_thread = TestUtil.start_server_thread(@server)
45
+ end
46
+
47
+ def setup_classdef
48
+ if ::Object.constants.include?("Version_struct")
49
+ ::Object.instance_eval { remove_const("Version_struct") }
50
+ end
51
+ gen = WSDL::SOAP::WSDL2Ruby.new
52
+ gen.location = pathname("soapenc.wsdl")
53
+ gen.basedir = DIR
54
+ gen.logger.level = Logger::FATAL
55
+ gen.opt['classdef'] = nil
56
+ gen.opt['force'] = true
57
+ gen.run
58
+ TestUtil.require(DIR, 'echo.rb')
59
+ end
60
+
61
+ def teardown_server
62
+ @server.shutdown
63
+ @server_thread.kill
64
+ @server_thread.join
65
+ end
66
+
67
+ def pathname(filename)
68
+ File.join(DIR, filename)
69
+ end
70
+
71
+ def test_wsdl
72
+ wsdl = File.join(DIR, 'soapenc.wsdl')
73
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
74
+ @client.endpoint_url = "http://localhost:#{Port}/"
75
+ @client.wiredump_dev = STDOUT if $DEBUG
76
+ ret = @client.echo_version(T_version::C_19)
77
+ assert_equal(T_version::C_19, ret.version)
78
+ assert_equal("hello", ret.msg)
79
+ end
80
+ end
81
+
82
+
83
+ end; end; end
@@ -0,0 +1,102 @@
1
+ require 'test/unit'
2
+ require 'wsdl/parser'
3
+ require 'wsdl/soap/wsdl2ruby'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', 'testutil.rb')
5
+
6
+
7
+ module WSDL; module SOAP
8
+
9
+
10
+ class TestWSDL2Ruby < Test::Unit::TestCase
11
+ DIR = File.dirname(File.expand_path(__FILE__))
12
+
13
+ def setup
14
+ Dir.chdir(DIR) do
15
+ gen = WSDL::SOAP::WSDL2Ruby.new
16
+ gen.location = pathname("rpc.wsdl")
17
+ gen.basedir = DIR
18
+ gen.logger.level = Logger::FATAL
19
+ gen.opt['classdef'] = nil
20
+ gen.opt['client_skelton'] = nil
21
+ gen.opt['servant_skelton'] = nil
22
+ gen.opt['cgi_stub'] = nil
23
+ gen.opt['standalone_server_stub'] = nil
24
+ gen.opt['mapping_registry'] = nil
25
+ gen.opt['driver'] = nil
26
+ gen.opt['force'] = true
27
+ TestUtil.silent do
28
+ gen.run
29
+ end
30
+ end
31
+ end
32
+
33
+ def teardown
34
+ # leave generated file for debug.
35
+ end
36
+
37
+ def test_rpc
38
+ compare("expectedServant.rb", "echo_versionServant.rb")
39
+ compare("expectedClassdef.rb", "echo_version.rb")
40
+ compare("expectedService.rb", "echo_version_service.rb")
41
+ compare("expectedService.cgi", "echo_version_service.cgi")
42
+ compare("expectedMappingRegistry.rb", "echo_versionMappingRegistry.rb")
43
+ compare("expectedDriver.rb", "echo_versionDriver.rb")
44
+ compare("expectedClient.rb", "echo_version_serviceClient.rb")
45
+
46
+ File.unlink(pathname("echo_versionServant.rb"))
47
+ File.unlink(pathname("echo_version.rb"))
48
+ File.unlink(pathname("echo_version_service.rb"))
49
+ File.unlink(pathname("echo_version_service.cgi"))
50
+ File.unlink(pathname("echo_versionMappingRegistry.rb"))
51
+ File.unlink(pathname("echo_versionDriver.rb"))
52
+ File.unlink(pathname("echo_version_serviceClient.rb"))
53
+ end
54
+
55
+ EXPECTED_CLASSDEF = <<__RB__
56
+ require 'xsd/qname'
57
+
58
+ module TEST
59
+
60
+
61
+ # {urn:example.com:simpletype-rpc-type}version_struct
62
+ # version - TEST::Version
63
+ # msg - SOAP::SOAPString
64
+ class Version_struct
65
+ attr_accessor :version
66
+ attr_accessor :msg
67
+
68
+ def initialize(version = nil, msg = nil)
69
+ @version = version
70
+ @msg = msg
71
+ end
72
+ end
73
+
74
+
75
+ end
76
+ __RB__
77
+
78
+ def test_classdefcreator
79
+ wsdl = WSDL::Importer.import(pathname("rpc.wsdl"))
80
+ name_creator = WSDL::SOAP::ClassNameCreator.new
81
+ creator = WSDL::SOAP::ClassDefCreator.new(wsdl, name_creator, 'TEST')
82
+ classdef = creator.dump(XSD::QName.new('urn:example.com:simpletype-rpc-type', 'version_struct'))
83
+ assert_equal(EXPECTED_CLASSDEF, classdef)
84
+ end
85
+
86
+ private
87
+
88
+ def pathname(filename)
89
+ File.join(DIR, filename)
90
+ end
91
+
92
+ def compare(expected, actual)
93
+ TestUtil.filecompare(pathname(expected), pathname(actual))
94
+ end
95
+
96
+ def loadfile(file)
97
+ File.open(pathname(file)) { |f| f.read }
98
+ end
99
+ end
100
+
101
+
102
+ end; end
@@ -0,0 +1,61 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <definitions name="echo"
3
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
4
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
+ xmlns:tns="urn:soaptype"
6
+ xmlns:txd="urn:soaptype-type"
7
+ targetNamespace="urn:soaptype"
8
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
9
+ <types>
10
+ <xsd:schema targetNamespace="urn:soaptype-type">
11
+ <xsd:complexType name="wrapper">
12
+ <xsd:all>
13
+ <xsd:element name="short" type="xsd:short" />
14
+ <xsd:element name="long" type="xsd:long" />
15
+ <xsd:element name="double" type="xsd:double" />
16
+ </xsd:all>
17
+ </xsd:complexType>
18
+ </xsd:schema>
19
+ </types>
20
+
21
+ <message name="echo_in">
22
+ <part name="arg" type="txd:wrapper"/>
23
+ </message>
24
+
25
+ <message name="echo_out">
26
+ <part name="return" type="txd:wrapper"/>
27
+ </message>
28
+
29
+ <portType name="echo_port_type">
30
+ <operation name="echo_soaptype">
31
+ <input message="tns:echo_in"/>
32
+ <output message="tns:echo_out"/>
33
+ </operation>
34
+
35
+ <operation name="echo_err">
36
+ <input message="tns:echo_in"/>
37
+ <output message="tns:echo_out"/>
38
+ </operation>
39
+ </portType>
40
+
41
+ <binding name="echo_binding" type="tns:echo_port_type">
42
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
43
+ <operation name="echo_soaptype">
44
+ <soap:operation soapAction=""/>
45
+ <input>
46
+ <soap:body use="encoded" namespace="urn:soaptype"
47
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
48
+ </input>
49
+ <output>
50
+ <soap:body use="encoded" namespace="urn:soaptype"
51
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
52
+ </output>
53
+ </operation>
54
+ </binding>
55
+
56
+ <service name="echo_service">
57
+ <port name="echo_port" binding="tns:echo_binding">
58
+ <soap:address location="http://localhost:10080"/>
59
+ </port>
60
+ </service>
61
+ </definitions>
@@ -0,0 +1,178 @@
1
+ require 'test/unit'
2
+ require 'wsdl/parser'
3
+ require 'wsdl/soap/wsdl2ruby'
4
+ require 'soap/rpc/standaloneServer'
5
+ require 'soap/wsdlDriver'
6
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
7
+
8
+
9
+ module WSDL; module RPC
10
+
11
+
12
+ class TestSOAPTYPE < Test::Unit::TestCase
13
+ include ::SOAP
14
+
15
+ class Server < ::SOAP::RPC::StandaloneServer
16
+ include ::SOAP
17
+
18
+ def on_init
19
+ #self.generate_explicit_type = false
20
+ add_rpc_method(self, 'echo_soaptype', 'arg')
21
+ end
22
+
23
+ def echo_soaptype(arg)
24
+ res = Wrapper.new
25
+ res.short = SOAPShort.new(arg.short)
26
+ res.long = SOAPLong.new(arg.long)
27
+ res.double = SOAPFloat.new(arg.double)
28
+ res
29
+ end
30
+ end
31
+
32
+ DIR = File.dirname(File.expand_path(__FILE__))
33
+
34
+ Port = 17171
35
+
36
+ def setup
37
+ setup_server
38
+ setup_classdef
39
+ @client = nil
40
+ end
41
+
42
+ def teardown
43
+ teardown_server if @server
44
+ unless $DEBUG
45
+ File.unlink(pathname('echo.rb'))
46
+ File.unlink(pathname('echoMappingRegistry.rb'))
47
+ File.unlink(pathname('echoDriver.rb'))
48
+ end
49
+ @client.reset_stream if @client
50
+ end
51
+
52
+ def setup_server
53
+ @server = Server.new('Test', "urn:soaptype", '0.0.0.0', Port)
54
+ @server.level = Logger::Severity::ERROR
55
+ @server_thread = TestUtil.start_server_thread(@server)
56
+ end
57
+
58
+ def setup_classdef
59
+ gen = WSDL::SOAP::WSDL2Ruby.new
60
+ gen.location = pathname("soaptype.wsdl")
61
+ gen.basedir = DIR
62
+ gen.logger.level = Logger::FATAL
63
+ gen.opt['classdef'] = nil
64
+ gen.opt['mapping_registry'] = nil
65
+ gen.opt['driver'] = nil
66
+ gen.opt['force'] = true
67
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
68
+ gen.run
69
+ TestUtil.require(DIR, 'echo.rb', 'echoMappingRegistry.rb', 'echoDriver.rb')
70
+ end
71
+
72
+ def teardown_server
73
+ @server.shutdown
74
+ @server_thread.kill
75
+ @server_thread.join
76
+ end
77
+
78
+ def pathname(filename)
79
+ File.join(DIR, filename)
80
+ end
81
+
82
+ SOAPTYPE_WSDL_XML = %q[<?xml version="1.0" encoding="utf-8" ?>
83
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
84
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
85
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
86
+ <env:Body>
87
+ <n1:echo_soaptype xmlns:n1="urn:soaptype"
88
+ env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
89
+ <arg xmlns:n2="urn:soaptype-type"
90
+ xsi:type="n2:wrapper">
91
+ <short xsi:type="xsd:short">123</short>
92
+ <long xsi:type="xsd:long">456</long>
93
+ <double xsi:type="xsd:double">+789</double>
94
+ </arg>
95
+ </n1:echo_soaptype>
96
+ </env:Body>
97
+ </env:Envelope>]
98
+
99
+ SOAPTYPE_NATIVE_XML = %q[<?xml version="1.0" encoding="utf-8" ?>
100
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
101
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
102
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
103
+ <env:Body>
104
+ <n1:echo_soaptype xmlns:n1="urn:soaptype"
105
+ env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
106
+ <arg xsi:type="xsd:anyType">
107
+ <short xsi:type="xsd:short">123</short>
108
+ <long xsi:type="xsd:long">456</long>
109
+ <double xsi:type="xsd:double">+789</double>
110
+ </arg>
111
+ </n1:echo_soaptype>
112
+ </env:Body>
113
+ </env:Envelope>]
114
+
115
+ def test_wsdl
116
+ wsdl = File.join(DIR, 'soaptype.wsdl')
117
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
118
+ @client.endpoint_url = "http://localhost:#{Port}/"
119
+ @client.wiredump_dev = str = ''
120
+
121
+ arg = Wrapper.new
122
+ arg.short = 123
123
+ arg.long = 456
124
+ arg.double = 789
125
+ res = @client.echo_soaptype(arg)
126
+
127
+ assert_equal(123, res.short)
128
+ assert_equal(456, res.long)
129
+ assert_equal(789.0, res.double)
130
+
131
+ assert_equal(SOAPTYPE_WSDL_XML, parse_requestxml(str))
132
+ end
133
+
134
+ def test_stub
135
+ @client = WSDL::RPC::Echo_port_type.new("http://localhost:#{Port}/")
136
+ @client.wiredump_dev = str = ''
137
+
138
+ arg = WSDL::RPC::Wrapper.new
139
+ arg.short = 123
140
+ arg.long = 456
141
+ arg.double = 789
142
+ res = @client.echo_soaptype(arg)
143
+
144
+ assert_equal(123, res.short)
145
+ assert_equal(456, res.long)
146
+ assert_equal(789.0, res.double)
147
+
148
+ assert_equal(SOAPTYPE_WSDL_XML, parse_requestxml(str))
149
+ end
150
+
151
+ def test_native
152
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/", 'urn:soaptype')
153
+ @client.endpoint_url = "http://localhost:#{Port}/"
154
+ @client.add_method('echo_soaptype', 'arg')
155
+ @client.wiredump_dev = str = ''
156
+ @client.mapping_registry = WSDL::RPC::EchoMappingRegistry::EncodedRegistry
157
+ @client.literal_mapping_registry = WSDL::RPC::EchoMappingRegistry::LiteralRegistry
158
+
159
+ arg = ::Struct.new(:short, :long, :double).new
160
+ arg.short = SOAPShort.new(123)
161
+ arg.long = SOAPLong.new(456)
162
+ arg.double = SOAPDouble.new(789)
163
+ res = @client.echo_soaptype(arg)
164
+
165
+ assert_equal(123, res.short)
166
+ assert_equal(456, res.long)
167
+ assert_equal(789.0, res.double)
168
+
169
+ assert_equal(SOAPTYPE_NATIVE_XML, parse_requestxml(str))
170
+ end
171
+
172
+ def parse_requestxml(str)
173
+ str.split(/\r?\n\r?\n/)[3]
174
+ end
175
+ end
176
+
177
+
178
+ end; end