rtiss_soap4r 1.6.0

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 (427) hide show
  1. data/bin/wsdl2ruby.rb +139 -0
  2. data/bin/xsd2ruby.rb +91 -0
  3. data/lib/soap/attachment.rb +109 -0
  4. data/lib/soap/attrproxy.rb +35 -0
  5. data/lib/soap/baseData.rb +1095 -0
  6. data/lib/soap/element.rb +278 -0
  7. data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
  8. data/lib/soap/encodingstyle/handler.rb +121 -0
  9. data/lib/soap/encodingstyle/literalHandler.rb +196 -0
  10. data/lib/soap/encodingstyle/soapHandler.rb +560 -0
  11. data/lib/soap/filter/filterchain.rb +52 -0
  12. data/lib/soap/filter/handler.rb +32 -0
  13. data/lib/soap/filter/streamhandler.rb +30 -0
  14. data/lib/soap/filter.rb +14 -0
  15. data/lib/soap/generator.rb +299 -0
  16. data/lib/soap/header/handler.rb +62 -0
  17. data/lib/soap/header/handlerset.rb +71 -0
  18. data/lib/soap/header/mappinghandler.rb +48 -0
  19. data/lib/soap/header/simplehandler.rb +45 -0
  20. data/lib/soap/httpconfigloader.rb +140 -0
  21. data/lib/soap/mapping/encodedregistry.rb +539 -0
  22. data/lib/soap/mapping/factory.rb +389 -0
  23. data/lib/soap/mapping/literalregistry.rb +392 -0
  24. data/lib/soap/mapping/mapping.rb +577 -0
  25. data/lib/soap/mapping/registry.rb +296 -0
  26. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  27. data/lib/soap/mapping/schemadefinition.rb +171 -0
  28. data/lib/soap/mapping/typeMap.rb +107 -0
  29. data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
  30. data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
  31. data/lib/soap/mapping.rb +13 -0
  32. data/lib/soap/marshal.rb +60 -0
  33. data/lib/soap/mimemessage.rb +243 -0
  34. data/lib/soap/nestedexception.rb +43 -0
  35. data/lib/soap/netHttpClient.rb +242 -0
  36. data/lib/soap/ns.rb +39 -0
  37. data/lib/soap/parser.rb +253 -0
  38. data/lib/soap/processor.rb +67 -0
  39. data/lib/soap/property.rb +340 -0
  40. data/lib/soap/proxy.rb +15 -0
  41. data/lib/soap/rpc/cgistub.rb +248 -0
  42. data/lib/soap/rpc/driver.rb +222 -0
  43. data/lib/soap/rpc/element.rb +375 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/methodDef.rb +69 -0
  46. data/lib/soap/rpc/proxy.rb +573 -0
  47. data/lib/soap/rpc/router.rb +663 -0
  48. data/lib/soap/rpc/rpc.rb +26 -0
  49. data/lib/soap/rpc/soaplet.rb +201 -0
  50. data/lib/soap/rpc/standaloneServer.rb +44 -0
  51. data/lib/soap/soap.rb +154 -0
  52. data/lib/soap/streamHandler.rb +306 -0
  53. data/lib/soap/version.rb +9 -0
  54. data/lib/soap/wsdlDriver.rb +165 -0
  55. data/lib/wsdl/binding.rb +66 -0
  56. data/lib/wsdl/data.rb +65 -0
  57. data/lib/wsdl/definitions.rb +237 -0
  58. data/lib/wsdl/documentation.rb +33 -0
  59. data/lib/wsdl/import.rb +81 -0
  60. data/lib/wsdl/importer.rb +39 -0
  61. data/lib/wsdl/info.rb +51 -0
  62. data/lib/wsdl/message.rb +55 -0
  63. data/lib/wsdl/operation.rb +152 -0
  64. data/lib/wsdl/operationBinding.rb +241 -0
  65. data/lib/wsdl/param.rb +94 -0
  66. data/lib/wsdl/parser.rb +165 -0
  67. data/lib/wsdl/part.rb +53 -0
  68. data/lib/wsdl/port.rb +67 -0
  69. data/lib/wsdl/portType.rb +76 -0
  70. data/lib/wsdl/service.rb +62 -0
  71. data/lib/wsdl/soap/address.rb +41 -0
  72. data/lib/wsdl/soap/binding.rb +50 -0
  73. data/lib/wsdl/soap/body.rb +59 -0
  74. data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
  75. data/lib/wsdl/soap/classDefCreator.rb +434 -0
  76. data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
  77. data/lib/wsdl/soap/classNameCreator.rb +55 -0
  78. data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
  79. data/lib/wsdl/soap/complexType.rb +174 -0
  80. data/lib/wsdl/soap/data.rb +43 -0
  81. data/lib/wsdl/soap/definitions.rb +201 -0
  82. data/lib/wsdl/soap/driverCreator.rb +121 -0
  83. data/lib/wsdl/soap/element.rb +34 -0
  84. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
  85. data/lib/wsdl/soap/fault.rb +57 -0
  86. data/lib/wsdl/soap/header.rb +87 -0
  87. data/lib/wsdl/soap/headerfault.rb +57 -0
  88. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
  89. data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
  90. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
  91. data/lib/wsdl/soap/methodDefCreator.rb +200 -0
  92. data/lib/wsdl/soap/operation.rb +113 -0
  93. data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
  94. data/lib/wsdl/soap/servletStubCreator.rb +105 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
  97. data/lib/wsdl/types.rb +45 -0
  98. data/lib/wsdl/wsdl.rb +25 -0
  99. data/lib/wsdl/xmlSchema/all.rb +25 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +35 -0
  101. data/lib/wsdl/xmlSchema/any.rb +62 -0
  102. data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
  103. data/lib/wsdl/xmlSchema/attribute.rb +105 -0
  104. data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
  105. data/lib/wsdl/xmlSchema/choice.rb +59 -0
  106. data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
  107. data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
  108. data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
  109. data/lib/wsdl/xmlSchema/complexType.rb +194 -0
  110. data/lib/wsdl/xmlSchema/content.rb +96 -0
  111. data/lib/wsdl/xmlSchema/data.rb +117 -0
  112. data/lib/wsdl/xmlSchema/element.rb +154 -0
  113. data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
  114. data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
  115. data/lib/wsdl/xmlSchema/group.rb +101 -0
  116. data/lib/wsdl/xmlSchema/import.rb +54 -0
  117. data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
  118. data/lib/wsdl/xmlSchema/importer.rb +103 -0
  119. data/lib/wsdl/xmlSchema/include.rb +49 -0
  120. data/lib/wsdl/xmlSchema/length.rb +38 -0
  121. data/lib/wsdl/xmlSchema/list.rb +49 -0
  122. data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
  123. data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
  124. data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
  125. data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
  126. data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
  127. data/lib/wsdl/xmlSchema/minlength.rb +38 -0
  128. data/lib/wsdl/xmlSchema/parser.rb +168 -0
  129. data/lib/wsdl/xmlSchema/pattern.rb +37 -0
  130. data/lib/wsdl/xmlSchema/ref.rb +34 -0
  131. data/lib/wsdl/xmlSchema/schema.rb +179 -0
  132. data/lib/wsdl/xmlSchema/sequence.rb +55 -0
  133. data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
  134. data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
  135. data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
  136. data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
  137. data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
  138. data/lib/wsdl/xmlSchema/union.rb +36 -0
  139. data/lib/wsdl/xmlSchema/unique.rb +35 -0
  140. data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
  141. data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
  142. data/lib/xsd/charset.rb +190 -0
  143. data/lib/xsd/codegen/classdef.rb +209 -0
  144. data/lib/xsd/codegen/commentdef.rb +35 -0
  145. data/lib/xsd/codegen/gensupport.rb +277 -0
  146. data/lib/xsd/codegen/methoddef.rb +71 -0
  147. data/lib/xsd/codegen/moduledef.rb +209 -0
  148. data/lib/xsd/codegen.rb +13 -0
  149. data/lib/xsd/datatypes.rb +1466 -0
  150. data/lib/xsd/datatypes1999.rb +21 -0
  151. data/lib/xsd/iconvcharset.rb +34 -0
  152. data/lib/xsd/mapping.rb +69 -0
  153. data/lib/xsd/namedelements.rb +133 -0
  154. data/lib/xsd/ns.rb +183 -0
  155. data/lib/xsd/qname.rb +80 -0
  156. data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
  157. data/lib/xsd/xmlparser/parser.rb +101 -0
  158. data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
  159. data/lib/xsd/xmlparser/xmlparser.rb +51 -0
  160. data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
  161. data/lib/xsd/xmlparser.rb +77 -0
  162. data/test/16runner.rb +69 -0
  163. data/test/helper.rb +7 -0
  164. data/test/interopR2/README.txt +2 -0
  165. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  166. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  167. data/test/interopR2/base.rb +289 -0
  168. data/test/interopR2/client.NetRemoting.rb +18 -0
  169. data/test/interopR2/client.rb +1235 -0
  170. data/test/interopR2/client4S4C.rb +16 -0
  171. data/test/interopR2/client4S4C2.rb +15 -0
  172. data/test/interopR2/clientASP.NET.rb +18 -0
  173. data/test/interopR2/clientApacheAxis.rb +17 -0
  174. data/test/interopR2/clientApacheSOAP.rb +18 -0
  175. data/test/interopR2/clientBEAWebLogic.rb +18 -0
  176. data/test/interopR2/clientBase.rb +1968 -0
  177. data/test/interopR2/clientCapeConnect.rb +19 -0
  178. data/test/interopR2/clientDelphi.rb +20 -0
  179. data/test/interopR2/clientEasySoap.rb +15 -0
  180. data/test/interopR2/clientFrontier.rb +26 -0
  181. data/test/interopR2/clientGLUE.rb +33 -0
  182. data/test/interopR2/clientHP.rb +14 -0
  183. data/test/interopR2/clientJAX-RPC.rb +20 -0
  184. data/test/interopR2/clientJSOAP.rb +15 -0
  185. data/test/interopR2/clientKafkaXSLT.rb +16 -0
  186. data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
  187. data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
  188. data/test/interopR2/clientNuSOAP.rb +20 -0
  189. data/test/interopR2/clientNuWave.rb +16 -0
  190. data/test/interopR2/clientOpenLink.rb +16 -0
  191. data/test/interopR2/clientOracle.rb +16 -0
  192. data/test/interopR2/clientPEAR.rb +19 -0
  193. data/test/interopR2/clientPhalanx.rb +19 -0
  194. data/test/interopR2/clientSIMACE.rb +19 -0
  195. data/test/interopR2/clientSOAP4R.rb +19 -0
  196. data/test/interopR2/clientSOAP__Lite.rb +15 -0
  197. data/test/interopR2/clientSQLData.rb +19 -0
  198. data/test/interopR2/clientSilverStream.rb +18 -0
  199. data/test/interopR2/clientSpray2001.rb +18 -0
  200. data/test/interopR2/clientSun.rb +20 -0
  201. data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
  202. data/test/interopR2/clientWASP.rb +20 -0
  203. data/test/interopR2/clientWASPC.rb +19 -0
  204. data/test/interopR2/clientWebMethods.rb +16 -0
  205. data/test/interopR2/clientWhiteMesa.rb +29 -0
  206. data/test/interopR2/clientWingfoot.rb +16 -0
  207. data/test/interopR2/clientXMLBus.rb +20 -0
  208. data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
  209. data/test/interopR2/clientXSOAP.rb +15 -0
  210. data/test/interopR2/clientZSI.rb +20 -0
  211. data/test/interopR2/clienteSOAP.rb +19 -0
  212. data/test/interopR2/clientgSOAP.rb +19 -0
  213. data/test/interopR2/clientkSOAP.rb +18 -0
  214. data/test/interopR2/iSimonReg.rb +113 -0
  215. data/test/interopR2/interopResultBase.rb +115 -0
  216. data/test/interopR2/interopService.rb +248 -0
  217. data/test/interopR2/rwikiInteropService.rb +106 -0
  218. data/test/interopR2/server.cgi +271 -0
  219. data/test/interopR2/server.rb +276 -0
  220. data/test/interopR2/simonReg.rb +124 -0
  221. data/test/interopR2/test.sh +49 -0
  222. data/test/interopR4/client.rb +113 -0
  223. data/test/runner.rb +8 -0
  224. data/test/sm11/classDef.rb +157 -0
  225. data/test/sm11/client.rb +543 -0
  226. data/test/sm11/driver.rb +184 -0
  227. data/test/sm11/servant.rb +1068 -0
  228. data/test/sm11/server.rb +26 -0
  229. data/test/soap/asp.net/hello.wsdl +96 -0
  230. data/test/soap/asp.net/test_aspdotnet.rb +124 -0
  231. data/test/soap/auth/htdigest +2 -0
  232. data/test/soap/auth/htpasswd +2 -0
  233. data/test/soap/auth/test_basic.rb +118 -0
  234. data/test/soap/auth/test_digest.rb +119 -0
  235. data/test/soap/calc/calc.rb +18 -0
  236. data/test/soap/calc/calc2.rb +30 -0
  237. data/test/soap/calc/server.cgi +16 -0
  238. data/test/soap/calc/server.rb +18 -0
  239. data/test/soap/calc/server2.rb +21 -0
  240. data/test/soap/calc/test_calc.rb +53 -0
  241. data/test/soap/calc/test_calc2.rb +57 -0
  242. data/test/soap/calc/test_calc_cgi.rb +72 -0
  243. data/test/soap/case/test_mapping.rb +58 -0
  244. data/test/soap/fault/test_customfault.rb +61 -0
  245. data/test/soap/fault/test_fault.rb +47 -0
  246. data/test/soap/fault/test_soaparray.rb +36 -0
  247. data/test/soap/filter/test_filter.rb +147 -0
  248. data/test/soap/header/server.cgi +121 -0
  249. data/test/soap/header/test_authheader.rb +241 -0
  250. data/test/soap/header/test_authheader_cgi.rb +122 -0
  251. data/test/soap/header/test_simplehandler.rb +117 -0
  252. data/test/soap/helloworld/hw_s.rb +17 -0
  253. data/test/soap/helloworld/test_helloworld.rb +45 -0
  254. data/test/soap/htpasswd +2 -0
  255. data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
  256. data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
  257. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  258. data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
  259. data/test/soap/marshal/marshaltestlib.rb +498 -0
  260. data/test/soap/marshal/test_digraph.rb +57 -0
  261. data/test/soap/marshal/test_marshal.rb +28 -0
  262. data/test/soap/marshal/test_struct.rb +48 -0
  263. data/test/soap/ssl/README +1 -0
  264. data/test/soap/ssl/ca.cert +23 -0
  265. data/test/soap/ssl/client.cert +19 -0
  266. data/test/soap/ssl/client.key +15 -0
  267. data/test/soap/ssl/server.cert +19 -0
  268. data/test/soap/ssl/server.key +15 -0
  269. data/test/soap/ssl/sslsvr.rb +59 -0
  270. data/test/soap/ssl/subca.cert +21 -0
  271. data/test/soap/ssl/test_ssl.rb +236 -0
  272. data/test/soap/struct/test_struct.rb +71 -0
  273. data/test/soap/styleuse/client.rb +21 -0
  274. data/test/soap/styleuse/server.rb +87 -0
  275. data/test/soap/swa/test_file.rb +76 -0
  276. data/test/soap/test_basetype.rb +1091 -0
  277. data/test/soap/test_cookie.rb +113 -0
  278. data/test/soap/test_custom_ns.rb +106 -0
  279. data/test/soap/test_custommap.rb +111 -0
  280. data/test/soap/test_empty.rb +106 -0
  281. data/test/soap/test_envelopenamespace.rb +86 -0
  282. data/test/soap/test_extraattr.rb +55 -0
  283. data/test/soap/test_generator.rb +32 -0
  284. data/test/soap/test_httpconfigloader.rb +72 -0
  285. data/test/soap/test_mapping.rb +132 -0
  286. data/test/soap/test_nestedexception.rb +71 -0
  287. data/test/soap/test_nil.rb +71 -0
  288. data/test/soap/test_no_indent.rb +89 -0
  289. data/test/soap/test_property.rb +429 -0
  290. data/test/soap/test_response_as_xml.rb +118 -0
  291. data/test/soap/test_soapelement.rb +139 -0
  292. data/test/soap/test_streamhandler.rb +271 -0
  293. data/test/soap/test_styleuse.rb +327 -0
  294. data/test/soap/wsdlDriver/README.txt +2 -0
  295. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  296. data/test/soap/wsdlDriver/document.wsdl +54 -0
  297. data/test/soap/wsdlDriver/echo_version.rb +30 -0
  298. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  299. data/test/soap/wsdlDriver/test_calc.rb +72 -0
  300. data/test/soap/wsdlDriver/test_document.rb +72 -0
  301. data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
  302. data/test/testutil.rb +55 -0
  303. data/test/wsdl/abstract/abstract.wsdl +176 -0
  304. data/test/wsdl/abstract/test_abstract.rb +160 -0
  305. data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
  306. data/test/wsdl/anonymous/expectedDriver.rb +60 -0
  307. data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
  308. data/test/wsdl/anonymous/lp.wsdl +147 -0
  309. data/test/wsdl/anonymous/test_anonymous.rb +131 -0
  310. data/test/wsdl/any/any.wsdl +114 -0
  311. data/test/wsdl/any/expectedDriver.rb +69 -0
  312. data/test/wsdl/any/expectedEcho.rb +58 -0
  313. data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
  314. data/test/wsdl/any/expectedService.rb +70 -0
  315. data/test/wsdl/any/test_any.rb +194 -0
  316. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  317. data/test/wsdl/axisArray/test_axisarray.rb +125 -0
  318. data/test/wsdl/choice/choice.wsdl +167 -0
  319. data/test/wsdl/choice/test_choice.rb +311 -0
  320. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  321. data/test/wsdl/complexcontent/test_echo.rb +91 -0
  322. data/test/wsdl/datetime/DatetimeService.rb +45 -0
  323. data/test/wsdl/datetime/datetime.rb +0 -0
  324. data/test/wsdl/datetime/datetime.wsdl +45 -0
  325. data/test/wsdl/datetime/datetimeServant.rb +23 -0
  326. data/test/wsdl/datetime/test_datetime.rb +88 -0
  327. data/test/wsdl/document/array/double.wsdl +161 -0
  328. data/test/wsdl/document/array/test_array.rb +202 -0
  329. data/test/wsdl/document/document.wsdl +76 -0
  330. data/test/wsdl/document/number.wsdl +54 -0
  331. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  332. data/test/wsdl/document/test_nosoapaction.rb +103 -0
  333. data/test/wsdl/document/test_number.rb +93 -0
  334. data/test/wsdl/document/test_rpc.rb +356 -0
  335. data/test/wsdl/emptycomplextype.wsdl +31 -0
  336. data/test/wsdl/fault/fault.wsdl +79 -0
  337. data/test/wsdl/fault/multifault.wsdl +96 -0
  338. data/test/wsdl/fault/test_fault.rb +120 -0
  339. data/test/wsdl/fault/test_multifault.rb +135 -0
  340. data/test/wsdl/group/expectedClassdef.rb +59 -0
  341. data/test/wsdl/group/expectedDriver.rb +52 -0
  342. data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
  343. data/test/wsdl/group/group.wsdl +88 -0
  344. data/test/wsdl/group/test_rpc.rb +146 -0
  345. data/test/wsdl/list/list.wsdl +93 -0
  346. data/test/wsdl/list/test_list.rb +125 -0
  347. data/test/wsdl/map/map.wsdl +92 -0
  348. data/test/wsdl/map/map.xml +43 -0
  349. data/test/wsdl/map/test_map.rb +100 -0
  350. data/test/wsdl/marshal/person.wsdl +21 -0
  351. data/test/wsdl/marshal/person_org.rb +24 -0
  352. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  353. data/test/wsdl/multiplefault.wsdl +75 -0
  354. data/test/wsdl/oneway/oneway.wsdl +36 -0
  355. data/test/wsdl/oneway/test_oneway.rb +109 -0
  356. data/test/wsdl/overload/expectedClient.rb +38 -0
  357. data/test/wsdl/overload/expectedDriver.rb +62 -0
  358. data/test/wsdl/overload/expectedServant.rb +36 -0
  359. data/test/wsdl/overload/overload.wsdl +70 -0
  360. data/test/wsdl/overload/test_overload.rb +132 -0
  361. data/test/wsdl/qualified/lp.wsdl +47 -0
  362. data/test/wsdl/qualified/lp.xsd +26 -0
  363. data/test/wsdl/qualified/np.wsdl +51 -0
  364. data/test/wsdl/qualified/test_qualified.rb +138 -0
  365. data/test/wsdl/qualified/test_unqualified.rb +139 -0
  366. data/test/wsdl/raa/RAAService.rb +126 -0
  367. data/test/wsdl/raa/README.txt +8 -0
  368. data/test/wsdl/raa/expectedClassDef.rb +101 -0
  369. data/test/wsdl/raa/expectedDriver.rb +97 -0
  370. data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
  371. data/test/wsdl/raa/raa.wsdl +264 -0
  372. data/test/wsdl/raa/test_raa.rb +127 -0
  373. data/test/wsdl/ref/expectedDriver.rb +52 -0
  374. data/test/wsdl/ref/expectedProduct.rb +244 -0
  375. data/test/wsdl/ref/product.wsdl +147 -0
  376. data/test/wsdl/ref/test_ref.rb +269 -0
  377. data/test/wsdl/rpc/rpc.wsdl +109 -0
  378. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  379. data/test/wsdl/rpc/test_rpc.rb +177 -0
  380. data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
  381. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  382. data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
  383. data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
  384. data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
  385. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
  386. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
  387. data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
  388. data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
  389. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  390. data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
  391. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  392. data/test/wsdl/simpletype/test_simpletype.rb +93 -0
  393. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  394. data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
  395. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
  396. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
  397. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
  398. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
  399. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
  400. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
  401. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
  402. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  403. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
  404. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  405. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  406. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  407. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
  408. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
  409. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  410. data/test/wsdl/soaptype/test_soaptype.rb +179 -0
  411. data/test/wsdl/test_emptycomplextype.rb +22 -0
  412. data/test/wsdl/test_fault.rb +51 -0
  413. data/test/wsdl/test_multiplefault.rb +42 -0
  414. data/test/xsd/codegen/test_classdef.rb +245 -0
  415. data/test/xsd/noencoding.xml +4 -0
  416. data/test/xsd/test_noencoding.rb +33 -0
  417. data/test/xsd/test_ns.rb +42 -0
  418. data/test/xsd/test_xmlschemaparser.rb +23 -0
  419. data/test/xsd/test_xsd.rb +1639 -0
  420. data/test/xsd/xmllang.xml +43 -0
  421. data/test/xsd/xmlschema.xml +12 -0
  422. data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
  423. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
  424. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
  425. data/test/xsd/xsd2ruby/section.xsd +49 -0
  426. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
  427. metadata +489 -0
@@ -0,0 +1,120 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ require 'testutil'
4
+ require 'wsdl/soap/wsdl2ruby'
5
+ require 'soap/wsdlDriver'
6
+
7
+
8
+ module WSDL; module Fault
9
+
10
+
11
+ class TestFault < Test::Unit::TestCase
12
+ DIR = File.dirname(File.expand_path(__FILE__))
13
+ Port = 17171
14
+
15
+ def setup
16
+ setup_classdef
17
+ setup_server
18
+ @client = nil
19
+ end
20
+
21
+ def teardown
22
+ teardown_server if defined?(@server)
23
+ unless $DEBUG
24
+ File.unlink(pathname('Add.rb'))
25
+ File.unlink(pathname('AddMappingRegistry.rb'))
26
+ File.unlink(pathname('AddServant.rb'))
27
+ File.unlink(pathname('AddService.rb'))
28
+ end
29
+ @client.reset_stream if @client
30
+ end
31
+
32
+ def setup_server
33
+ AddPortType.class_eval do
34
+ define_method(:add) do |request|
35
+ @sum ||= 0
36
+ if (request.value > 100)
37
+ fault = AddFault.new("Value #{request.value} is too large", "Critical")
38
+ raise fault
39
+ end
40
+ @sum += request.value
41
+ return AddResponse.new(@sum)
42
+ end
43
+ end
44
+ @server = AddPortTypeApp.new('app', nil, '0.0.0.0', Port)
45
+ @server.level = Logger::Severity::ERROR
46
+ @server_thread = TestUtil.start_server_thread(@server)
47
+ end
48
+
49
+ def setup_classdef
50
+ gen = WSDL::SOAP::WSDL2Ruby.new
51
+ gen.location = pathname("fault.wsdl")
52
+ gen.basedir = DIR
53
+ gen.logger.level = Logger::FATAL
54
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
55
+ gen.opt['classdef'] = nil
56
+ gen.opt['mapping_registry'] = nil
57
+ gen.opt['servant_skelton'] = nil
58
+ gen.opt['standalone_server_stub'] = nil
59
+ gen.opt['force'] = true
60
+ TestUtil.silent do
61
+ gen.run
62
+ end
63
+ TestUtil.require(DIR, 'Add.rb', 'AddMappingRegistry.rb', 'AddServant.rb', 'AddService.rb')
64
+ end
65
+
66
+ def teardown_server
67
+ @server.shutdown
68
+ @server_thread.kill
69
+ @server_thread.join
70
+ end
71
+
72
+ def pathname(filename)
73
+ File.join(DIR, filename)
74
+ end
75
+
76
+ def test_driver
77
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/")
78
+ @client.mapping_registry = AddMappingRegistry::EncodedRegistry
79
+ @client.literal_mapping_registry = AddMappingRegistry::LiteralRegistry
80
+ @client.add_document_operation(
81
+ "Add",
82
+ "add",
83
+ [ [:in, "request", ["::SOAP::SOAPElement", "http://fault.test/Faulttest", "Add"]],
84
+ [:out, "response", ["::SOAP::SOAPElement", "http://fault.test/Faulttest", "AddResponse"]] ],
85
+ { :request_style => :document, :request_use => :literal,
86
+ :response_style => :document, :response_use => :literal,
87
+ :faults => {"AddFault"=>{:namespace=>nil, :name=>"AddFault", :use=>"literal", :encodingstyle=>"document", :ns=>"http://fault.test/Faulttest"}} }
88
+ )
89
+ @client.wiredump_dev = STDOUT if $DEBUG
90
+ do_test(@client)
91
+ end
92
+
93
+ def test_wsdl
94
+ wsdl = File.join(DIR, 'fault.wsdl')
95
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
96
+ @client.endpoint_url = "http://localhost:#{Port}/"
97
+ @client.mapping_registry = AddMappingRegistry::EncodedRegistry
98
+ @client.literal_mapping_registry = AddMappingRegistry::LiteralRegistry
99
+ @client.wiredump_dev = STDOUT if $DEBUG
100
+ do_test(@client)
101
+ end
102
+
103
+ def do_test(client)
104
+ assert_equal(100, client.add(Add.new(100)).sum)
105
+ assert_equal(100, client.add(Add.new(0)).sum)
106
+ assert_equal(150, client.add(Add.new(50)).sum)
107
+ begin
108
+ client.add(Add.new(101))
109
+ assert(false)
110
+ rescue Exception => e
111
+ assert_equal(::SOAP::FaultError, e.class)
112
+ assert_equal("WSDL::Fault::AddFault", e.faultstring.data)
113
+ assert_equal("Value 101 is too large", e.detail.addFault.reason)
114
+ assert_equal("Critical", e.detail.addFault.severity)
115
+ end
116
+ end
117
+ end
118
+
119
+
120
+ end; end
@@ -0,0 +1,135 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ require 'testutil'
4
+ require 'wsdl/soap/wsdl2ruby'
5
+ require 'soap/wsdlDriver'
6
+
7
+
8
+ module WSDL; module Fault
9
+
10
+
11
+ class TestMultiFault < Test::Unit::TestCase
12
+ DIR = File.dirname(File.expand_path(__FILE__))
13
+ Port = 17171
14
+
15
+ def setup
16
+ setup_classdef
17
+ setup_server
18
+ @client = nil
19
+ end
20
+
21
+ def teardown
22
+ teardown_server if defined?(@server)
23
+ unless $DEBUG
24
+ File.unlink(pathname('AddMulti.rb'))
25
+ File.unlink(pathname('AddMultiMappingRegistry.rb'))
26
+ File.unlink(pathname('AddMultiServant.rb'))
27
+ File.unlink(pathname('AddMultiService.rb'))
28
+ end
29
+ @client.reset_stream if @client
30
+ end
31
+
32
+ def setup_server
33
+ AddPortType.class_eval do
34
+ define_method(:add) do |request|
35
+ @sum ||= 0
36
+ if (request.value > 100)
37
+ fault = AddMultiFault.new("Value #{request.value} is too large", "Critical")
38
+ raise fault
39
+ end
40
+
41
+ if (request.value < 0)
42
+ fault = NegativeValueFault.new("Value #{request.value} is negative", "Fatal")
43
+ raise fault
44
+ end
45
+
46
+ @sum += request.value
47
+ return AddResponse.new(@sum)
48
+ end
49
+ end
50
+ @server = AddPortTypeApp.new('app', nil, '0.0.0.0', Port)
51
+ @server.level = Logger::Severity::ERROR
52
+ @server_thread = TestUtil.start_server_thread(@server)
53
+ end
54
+
55
+ def setup_classdef
56
+ gen = WSDL::SOAP::WSDL2Ruby.new
57
+ gen.location = pathname("multifault.wsdl")
58
+ gen.basedir = DIR
59
+ gen.logger.level = Logger::FATAL
60
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
61
+ gen.opt['classdef'] = nil
62
+ gen.opt['mapping_registry'] = nil
63
+ gen.opt['servant_skelton'] = nil
64
+ gen.opt['standalone_server_stub'] = nil
65
+ gen.opt['force'] = true
66
+ TestUtil.silent do
67
+ gen.run
68
+ end
69
+ TestUtil.require(DIR, 'AddMulti.rb', 'AddMultiMappingRegistry.rb', 'AddMultiServant.rb', 'AddMultiService.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
+ def test_driver
83
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/")
84
+ @client.mapping_registry = AddMappingRegistry::EncodedRegistry
85
+ @client.literal_mapping_registry = AddMappingRegistry::LiteralRegistry
86
+ @client.add_document_operation(
87
+ "Add",
88
+ "add",
89
+ [ [:in, "request", ["::SOAP::SOAPElement", "http://fault.test/Faulttest", "Add"]],
90
+ [:out, "response", ["::SOAP::SOAPElement", "http://fault.test/Faulttest", "AddResponse"]] ],
91
+ { :request_style => :document, :request_use => :literal,
92
+ :response_style => :document, :response_use => :literal,
93
+ :faults => {"AddMultiFault"=>{:namespace=>nil, :name=>"AddMultiFault", :use=>"literal", :encodingstyle=>"document", :ns=>"http://fault.test/Faulttest"}} }
94
+ )
95
+ @client.wiredump_dev = STDOUT if $DEBUG
96
+ do_test(@client)
97
+ end
98
+
99
+ def test_wsdl
100
+ wsdl = File.join(DIR, 'multifault.wsdl')
101
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
102
+ @client.endpoint_url = "http://localhost:#{Port}/"
103
+ @client.mapping_registry = AddMappingRegistry::EncodedRegistry
104
+ @client.literal_mapping_registry = AddMappingRegistry::LiteralRegistry
105
+ @client.wiredump_dev = STDOUT if $DEBUG
106
+ do_test(@client)
107
+ end
108
+
109
+ def do_test(client)
110
+ assert_equal(100, client.add(Add.new(100)).sum)
111
+ assert_equal(100, client.add(Add.new(0)).sum)
112
+ assert_equal(150, client.add(Add.new(50)).sum)
113
+ begin
114
+ client.add(Add.new(101))
115
+ assert(false)
116
+ rescue Exception => e
117
+ assert_equal(::SOAP::FaultError, e.class)
118
+ assert_equal("WSDL::Fault::AddMultiFault", e.faultstring.data)
119
+ assert_equal("Value 101 is too large", e.detail.addMultiFault.reason)
120
+ assert_equal("Critical", e.detail.addMultiFault.severity)
121
+ end
122
+ begin
123
+ client.add(Add.new(-50))
124
+ assert(false)
125
+ rescue Exception => e
126
+ assert_equal(::SOAP::FaultError, e.class)
127
+ assert_equal("WSDL::Fault::NegativeValueFault", e.faultstring.data)
128
+ assert_equal("Value -50 is negative", e.detail.negativeValueFault.reason)
129
+ assert_equal("Fatal", e.detail.negativeValueFault.severity)
130
+ end
131
+ end
132
+ end
133
+
134
+
135
+ end; end
@@ -0,0 +1,59 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'xsd/qname'
3
+
4
+ module WSDL; module Group
5
+
6
+
7
+ # {urn:grouptype}groupele_type
8
+ # comment - SOAP::SOAPString
9
+ # element - SOAP::SOAPString
10
+ # eletype - SOAP::SOAPString
11
+ # var - SOAP::SOAPString
12
+ # xmlattr_attr_min - SOAP::SOAPDecimal
13
+ # xmlattr_attr_max - SOAP::SOAPDecimal
14
+ class Groupele_type
15
+ AttrAttr_max = XSD::QName.new(nil, "attr_max")
16
+ AttrAttr_min = XSD::QName.new(nil, "attr_min")
17
+
18
+ attr_accessor :comment
19
+ attr_reader :__xmlele_any
20
+ attr_accessor :element
21
+ attr_accessor :eletype
22
+ attr_accessor :var
23
+
24
+ def set_any(elements)
25
+ @__xmlele_any = elements
26
+ end
27
+
28
+ def __xmlattr
29
+ @__xmlattr ||= {}
30
+ end
31
+
32
+ def xmlattr_attr_min
33
+ __xmlattr[AttrAttr_min]
34
+ end
35
+
36
+ def xmlattr_attr_min=(value)
37
+ __xmlattr[AttrAttr_min] = value
38
+ end
39
+
40
+ def xmlattr_attr_max
41
+ __xmlattr[AttrAttr_max]
42
+ end
43
+
44
+ def xmlattr_attr_max=(value)
45
+ __xmlattr[AttrAttr_max] = value
46
+ end
47
+
48
+ def initialize(comment = nil, element = nil, eletype = nil, var = nil)
49
+ @comment = comment
50
+ @__xmlele_any = nil
51
+ @element = element
52
+ @eletype = eletype
53
+ @var = var
54
+ @__xmlattr = {}
55
+ end
56
+ end
57
+
58
+
59
+ end; end
@@ -0,0 +1,52 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'echo.rb'
3
+ require 'echoMappingRegistry.rb'
4
+ require 'soap/rpc/driver'
5
+
6
+ module WSDL::Group
7
+
8
+ class Group_porttype < ::SOAP::RPC::Driver
9
+ DefaultEndpointUrl = "http://localhost:17171/"
10
+
11
+ Methods = [
12
+ [ "urn:group:echo",
13
+ "echo",
14
+ [ [:in, "parameters", ["::SOAP::SOAPElement", "urn:grouptype", "groupele"]],
15
+ [:out, "parameters", ["::SOAP::SOAPElement", "urn:grouptype", "groupele"]] ],
16
+ { :request_style => :document, :request_use => :literal,
17
+ :response_style => :document, :response_use => :literal,
18
+ :faults => {} }
19
+ ]
20
+ ]
21
+
22
+ def initialize(endpoint_url = nil)
23
+ endpoint_url ||= DefaultEndpointUrl
24
+ super(endpoint_url, nil)
25
+ self.mapping_registry = EchoMappingRegistry::EncodedRegistry
26
+ self.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
27
+ init_methods
28
+ end
29
+
30
+ private
31
+
32
+ def init_methods
33
+ Methods.each do |definitions|
34
+ opt = definitions.last
35
+ if opt[:request_style] == :document
36
+ add_document_operation(*definitions)
37
+ else
38
+ add_rpc_operation(*definitions)
39
+ qname = definitions[0]
40
+ name = definitions[2]
41
+ if qname.name != name and qname.name.capitalize == name.capitalize
42
+ ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
43
+ __send__(name, *arg)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+
52
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'echo.rb'
3
+ require 'soap/mapping'
4
+
5
+ module WSDL; module Group
6
+
7
+ module EchoMappingRegistry
8
+ EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
9
+ LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
10
+ NsGrouptype = "urn:grouptype"
11
+ NsXMLSchema = "http://www.w3.org/2001/XMLSchema"
12
+
13
+ EncodedRegistry.register(
14
+ :class => WSDL::Group::Groupele_type,
15
+ :schema_type => XSD::QName.new(NsGrouptype, "groupele_type"),
16
+ :schema_element => [
17
+ ["comment", "SOAP::SOAPString", [0, 1]],
18
+ ["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
19
+ [ :choice,
20
+ ["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
21
+ ["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
22
+ ],
23
+ ["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
24
+ ],
25
+ :schema_attribute => {
26
+ XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
27
+ XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
28
+ }
29
+ )
30
+
31
+ LiteralRegistry.register(
32
+ :class => WSDL::Group::Groupele_type,
33
+ :schema_type => XSD::QName.new(NsGrouptype, "groupele_type"),
34
+ :schema_element => [
35
+ ["comment", "SOAP::SOAPString", [0, 1]],
36
+ ["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
37
+ [ :choice,
38
+ ["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
39
+ ["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
40
+ ],
41
+ ["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
42
+ ],
43
+ :schema_attribute => {
44
+ XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
45
+ XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
46
+ }
47
+ )
48
+
49
+ LiteralRegistry.register(
50
+ :class => WSDL::Group::Groupele_type,
51
+ :schema_name => XSD::QName.new(NsGrouptype, "groupele"),
52
+ :schema_element => [
53
+ ["comment", "SOAP::SOAPString", [0, 1]],
54
+ ["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
55
+ [ :choice,
56
+ ["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
57
+ ["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
58
+ ],
59
+ ["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
60
+ ],
61
+ :schema_attribute => {
62
+ XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
63
+ XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
64
+ }
65
+ )
66
+ end
67
+
68
+ end; end
@@ -0,0 +1,88 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <definitions
3
+ name="echo"
4
+ targetNamespace="urn:group"
5
+ xmlns:tns="urn:group"
6
+ xmlns:txd="urn:grouptype"
7
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
8
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
9
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
10
+ <types>
11
+ <xsd:schema elementFormDefault="unqualified" targetNamespace="urn:grouptype">
12
+
13
+ <xsd:element name="comment" type="xsd:string"/>
14
+
15
+ <xsd:simpleType name="attr_type">
16
+ <xsd:restriction base="xsd:decimal">
17
+ <xsd:maxInclusive value="-50"/>
18
+ <xsd:minInclusive value="50"/>
19
+ </xsd:restriction>
20
+ </xsd:simpleType>
21
+
22
+ <xsd:group name="common">
23
+ <xsd:sequence>
24
+ <xsd:element ref="txd:comment" minOccurs="0"/>
25
+ <xsd:any namespace="##any" minOccurs="0"/>
26
+ </xsd:sequence>
27
+ </xsd:group>
28
+
29
+ <xsd:attributeGroup name="common_attr">
30
+ <xsd:attribute name="attr_min" type="txd:attr_type" default="0"/>
31
+ <xsd:attribute name="attr_max" type="txd:attr_type" default="0"/>
32
+ </xsd:attributeGroup>
33
+
34
+ <xsd:group name="common_element">
35
+ <xsd:sequence>
36
+ <xsd:group ref="txd:common"/>
37
+ <xsd:choice>
38
+ <xsd:element name="element" type="xsd:string"/>
39
+ <xsd:element name="eletype" type="xsd:string"/>
40
+ </xsd:choice>
41
+ </xsd:sequence>
42
+ </xsd:group>
43
+
44
+ <xsd:complexType name="groupele_type">
45
+ <xsd:sequence>
46
+ <xsd:group ref="txd:common_element"/>
47
+ <xsd:element name="var" type="xsd:string"/>
48
+ </xsd:sequence>
49
+ <xsd:attributeGroup ref="txd:common_attr"/>
50
+ </xsd:complexType>
51
+
52
+ <xsd:element name="groupele" type="txd:groupele_type"/>
53
+ </xsd:schema>
54
+ </types>
55
+
56
+ <message name="echo_in">
57
+ <part name="parameters" element="txd:groupele" />
58
+ </message>
59
+ <message name="echo_out">
60
+ <part name="parameters" element="txd:groupele" />
61
+ </message>
62
+
63
+ <portType name="group_porttype">
64
+ <operation name="echo">
65
+ <input message="tns:echo_in" />
66
+ <output message="tns:echo_out" />
67
+ </operation>
68
+ </portType>
69
+
70
+ <binding name="group_binding" type="tns:group_porttype">
71
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
72
+ <operation name="echo">
73
+ <soap:operation soapAction="urn:group:echo" style="document" />
74
+ <input>
75
+ <soap:body use="literal" />
76
+ </input>
77
+ <output>
78
+ <soap:body use="literal" />
79
+ </output>
80
+ </operation>
81
+ </binding>
82
+
83
+ <service name="group_service">
84
+ <port name="docprc_service_port" binding="tns:group_binding">
85
+ <soap:address location="http://localhost:17171/" />
86
+ </port>
87
+ </service>
88
+ </definitions>
@@ -0,0 +1,146 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ require 'testutil'
4
+ require 'wsdl/parser'
5
+ require 'wsdl/soap/wsdl2ruby'
6
+ require 'soap/rpc/standaloneServer'
7
+ require 'soap/wsdlDriver'
8
+
9
+
10
+ module WSDL; module Group
11
+
12
+
13
+ class TestGroup < Test::Unit::TestCase
14
+ class Server < ::SOAP::RPC::StandaloneServer
15
+ Namespace = 'urn:group'
16
+ TypeNamespace = 'urn:grouptype'
17
+
18
+ def on_init
19
+ add_document_method(
20
+ self,
21
+ Namespace + ':echo',
22
+ 'echo',
23
+ XSD::QName.new(TypeNamespace, 'groupele'),
24
+ XSD::QName.new(TypeNamespace, 'groupele')
25
+ )
26
+ self.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
27
+ end
28
+
29
+ def echo(arg)
30
+ # arg
31
+ # need to convert for 'any'
32
+ ret = Groupele_type.new(arg.comment, arg.element, arg.eletype, arg.var)
33
+ ret.xmlattr_attr_max = arg.xmlattr_attr_max
34
+ ret.xmlattr_attr_min = arg.xmlattr_attr_min
35
+ ret.set_any([::SOAP::SOAPElement.new("foo", arg.foo)])
36
+ ret
37
+ end
38
+ end
39
+
40
+ DIR = File.dirname(File.expand_path(__FILE__))
41
+
42
+ Port = 17171
43
+
44
+ def setup
45
+ setup_classdef
46
+ setup_server
47
+ @client = nil
48
+ end
49
+
50
+ def teardown
51
+ teardown_server if @server
52
+ File.unlink(pathname('echo.rb')) unless $DEBUG
53
+ File.unlink(pathname('echoMappingRegistry.rb')) unless $DEBUG
54
+ File.unlink(pathname('echoDriver.rb')) unless $DEBUG
55
+ @client.reset_stream if @client
56
+ end
57
+
58
+ def setup_server
59
+ @server = Server.new('Test', "urn:group", '0.0.0.0', Port)
60
+ @server.level = Logger::Severity::ERROR
61
+ @server_thread = TestUtil.start_server_thread(@server)
62
+ end
63
+
64
+ def setup_classdef
65
+ gen = WSDL::SOAP::WSDL2Ruby.new
66
+ gen.location = pathname("group.wsdl")
67
+ gen.basedir = DIR
68
+ gen.logger.level = Logger::FATAL
69
+ gen.opt['classdef'] = nil
70
+ gen.opt['mapping_registry'] = nil
71
+ gen.opt['driver'] = nil
72
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
73
+ gen.opt['force'] = true
74
+ gen.run
75
+ TestUtil.require(DIR, 'echoDriver.rb', 'echoMappingRegistry.rb', 'echo.rb')
76
+ end
77
+
78
+ def teardown_server
79
+ @server.shutdown
80
+ @server_thread.kill
81
+ @server_thread.join
82
+ end
83
+
84
+ def pathname(filename)
85
+ File.join(DIR, filename)
86
+ end
87
+
88
+ def compare(expected, actual)
89
+ TestUtil.filecompare(pathname(expected), pathname(actual))
90
+ end
91
+
92
+ def test_generate
93
+ compare("expectedClassdef.rb", "echo.rb")
94
+ compare("expectedMappingRegistry.rb", "echoMappingRegistry.rb")
95
+ compare("expectedDriver.rb", "echoDriver.rb")
96
+ end
97
+
98
+ def test_wsdl
99
+ wsdl = File.join(DIR, 'group.wsdl')
100
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
101
+ @client.endpoint_url = "http://localhost:#{Port}/"
102
+ @client.wiredump_dev = STDOUT if $DEBUG
103
+ @client.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
104
+ #
105
+ do_test_arg
106
+ end
107
+
108
+ def test_naive
109
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/")
110
+ @client.add_document_method('echo', 'urn:group:echo',
111
+ XSD::QName.new('urn:grouptype', 'groupele'),
112
+ XSD::QName.new('urn:grouptype', 'groupele'))
113
+ @client.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
114
+ @client.wiredump_dev = STDOUT if $DEBUG
115
+ #
116
+ do_test_arg
117
+ end
118
+
119
+ def test_stub
120
+ @client = Group_porttype.new("http://localhost:#{Port}/")
121
+ @client.wiredump_dev = STDOUT if $DEBUG
122
+ #
123
+ do_test_arg
124
+ end
125
+
126
+ def do_test_arg
127
+ arg = Groupele_type.new
128
+ arg.comment = "comment"
129
+ arg.set_any(
130
+ [::SOAP::SOAPElement.new("foo", "bar")]
131
+ )
132
+ arg.eletype = "eletype"
133
+ arg.var = "var"
134
+ arg.xmlattr_attr_min = -3
135
+ arg.xmlattr_attr_max = 3
136
+ ret = @client.echo(arg)
137
+ assert_equal(arg.comment, ret.comment)
138
+ assert_equal(arg.eletype, ret.eletype)
139
+ assert_nil(ret.element)
140
+ assert_equal(arg.var, ret.var)
141
+ assert_equal("bar", ret.foo)
142
+ end
143
+ end
144
+
145
+
146
+ end; end