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,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXQIBAAKBgQDRSU8Vqrqd51fXbCQJLqflml5zzSM3KQAN6jBmQyUybH2vA7u2
3
+ cUz9FySuZhE7bQa5+9dXCcQLj9yo6p1vUr7WfZWNrFyemY+trDeS8Bt1VXtuXSNv
4
+ MkdRLGx4yeWY3/bZoIDAumpudncbh27ef7x6OJ4CbihP1PnnhkYrzJ+oBQIDAQAB
5
+ AoGBAIf4CstW2ltQO7+XYGoex7Hh8s9lTSW/G2vu5Hbr1LTHy3fzAvdq8MvVR12O
6
+ rk9fa+lU9vhzPc0NMB0GIDZ9GcHuhW5hD1Wg9OSCbTOkZDoH3CAFqonjh4Qfwv5W
7
+ IPAFn9KHukdqGXkwEMdErsUaPTy9A1V/aROVEaAY+HJgq/eZAkEA/BP1QMV04WEZ
8
+ Oynzz7/lLizJGGxp2AOvEVtqMoycA/Qk+zdKP8ufE0wbmCE3Qd6GoynavsHb6aGK
9
+ gQobb8zDZwJBANSK6MrXlrZTtEaeZuyOB4mAmRzGzOUVkUyULUjEx2GDT93ujAma
10
+ qm/2d3E+wXAkNSeRpjUmlQXy/2oSqnGvYbMCQQDRM+cYyEcGPUVpWpnj0shrF/QU
11
+ 9vSot/X1G775EMTyaw6+BtbyNxVgOIu2J+rqGbn3c+b85XqTXOPL0A2RLYkFAkAm
12
+ syhSDtE9X55aoWsCNZY/vi+i4rvaFoQ/WleogVQAeGVpdo7/DK9t9YWoFBIqth0L
13
+ mGSYFu9ZhvZkvQNV8eYrAkBJ+rOIaLDsmbrgkeDruH+B/9yrm4McDtQ/rgnOGYnH
14
+ LjLpLLOrgUxqpzLWe++EwSLwK2//dHO+SPsQJ4xsyQJy
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,59 @@
1
+ # encoding: ASCII-8BIT
2
+ $:.unshift File.expand_path(File.dirname(__FILE__)+'/../../../lib')
3
+ require 'webrick/https'
4
+ require 'logger'
5
+ require 'rbconfig'
6
+
7
+ require 'soap/rpc/httpserver'
8
+
9
+ class HelloWorldServer < SOAP::RPC::HTTPServer
10
+ private
11
+
12
+ def on_init
13
+ self.level = Logger::Severity::FATAL
14
+ @default_namespace = 'urn:ssltst'
15
+ add_method(self, 'hello_world', 'from')
16
+ end
17
+
18
+ def hello_world(from)
19
+ "Hello World, from #{ from }"
20
+ end
21
+ end
22
+
23
+
24
+ if $0 == __FILE__
25
+ PORT = 17171
26
+ DIR = File.dirname(File.expand_path(__FILE__))
27
+
28
+ def cert(filename)
29
+ OpenSSL::X509::Certificate.new(File.open(File.join(DIR, filename)) { |f|
30
+ f.read
31
+ })
32
+ end
33
+
34
+ def key(filename)
35
+ OpenSSL::PKey::RSA.new(File.open(File.join(DIR, filename)) { |f|
36
+ f.read
37
+ })
38
+ end
39
+
40
+ $server = HelloWorldServer.new(
41
+ :BindAddress => "0.0.0.0",
42
+ :Port => PORT,
43
+ :AccessLog => [],
44
+ :SSLEnable => true,
45
+ :SSLCACertificateFile => File.join(DIR, 'ca.cert'),
46
+ :SSLCertificate => cert('server.cert'),
47
+ :SSLPrivateKey => key('server.key'),
48
+ :SSLVerifyClient => nil, #OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT|OpenSSL::SSL::VERIFY_PEER,
49
+ :SSLClientCA => cert('ca.cert'),
50
+ :SSLCertName => nil
51
+ )
52
+ t = Thread.new {
53
+ Thread.current.abort_on_exception = true
54
+ $server.start
55
+ }
56
+ STDOUT.sync = true
57
+ puts $$
58
+ t.join
59
+ end
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
3
+ MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
4
+ DTA0MDEzMDAwNDMyN1oXDTM1MDEyMjAwNDMyN1owPzELMAkGA1UEBgwCSlAxEjAQ
5
+ BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQ4wDAYDVQQDDAVTdWJDQTCC
6
+ ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ0Ou7AyRcRXnB/kVHv/6kwe
7
+ ANzgg/DyJfsAUqW90m7Lu1nqyug8gK0RBd77yU0w5HOAMHTVSdpjZK0g2sgx4Mb1
8
+ d/213eL9TTl5MRVEChTvQr8q5DVG/8fxPPE7fMI8eOAzd98/NOAChk+80r4Sx7fC
9
+ kGVEE1bKwY1MrUsUNjOY2d6t3M4HHV3HX1V8ShuKfsHxgCmLzdI8U+5CnQedFgkm
10
+ 3e+8tr8IX5RR1wA1Ifw9VadF7OdI/bGMzog/Q8XCLf+WPFjnK7Gcx6JFtzF6Gi4x
11
+ 4dp1Xl45JYiVvi9zQ132wu8A1pDHhiNgQviyzbP+UjcB/tsOpzBQF8abYzgEkWEC
12
+ AwEAAaNyMHAwDwYDVR0TAQH/BAUwAwEB/zAxBglghkgBhvhCAQ0EJBYiUnVieS9P
13
+ cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUlCjXWLsReYzH
14
+ LzsxwVnCXmKoB/owCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCJ/OyN
15
+ rT8Cq2Y+G2yA/L1EMRvvxwFBqxavqaqHl/6rwsIBFlB3zbqGA/0oec6MAVnYynq4
16
+ c4AcHTjx3bQ/S4r2sNTZq0DH4SYbQzIobx/YW8PjQUJt8KQdKMcwwi7arHP7A/Ha
17
+ LKu8eIC2nsUBnP4NhkYSGhbmpJK+PFD0FVtD0ZIRlY/wsnaZNjWWcnWF1/FNuQ4H
18
+ ySjIblqVQkPuzebv3Ror6ZnVDukn96Mg7kP4u6zgxOeqlJGRe1M949SS9Vudjl8X
19
+ SF4aZUUB9pQGhsqQJVqaz2OlhGOp9D0q54xko/rekjAIcuDjl1mdX4F2WRrzpUmZ
20
+ uY/bPeOBYiVsOYVe
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,236 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ begin
4
+ require 'httpclient'
5
+ rescue LoadError
6
+ end
7
+ require 'soap/rpc/driver'
8
+
9
+ if defined?(HTTPClient) and defined?(OpenSSL)
10
+
11
+ module SOAP; module SSL
12
+
13
+
14
+ class TestSSL < Test::Unit::TestCase
15
+ PORT = 17171
16
+
17
+ DIR = File.dirname(File.expand_path(__FILE__))
18
+ require 'rbconfig'
19
+ RUBY = File.join(
20
+ Config::CONFIG["bindir"],
21
+ Config::CONFIG["ruby_install_name"] + Config::CONFIG["EXEEXT"]
22
+ )
23
+
24
+ def setup
25
+ @url = "https://localhost:#{PORT}/hello"
26
+ @serverpid = @client = nil
27
+ @verify_callback_called = false
28
+ setup_server
29
+ setup_client
30
+ end
31
+
32
+ def teardown
33
+ teardown_client
34
+ teardown_server
35
+ end
36
+
37
+ def test_options
38
+ cfg = @client.streamhandler.client.ssl_config
39
+ assert_nil(cfg.client_cert)
40
+ assert_nil(cfg.client_key)
41
+ assert_nil(cfg.client_ca)
42
+ assert_equal(OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT, cfg.verify_mode)
43
+ assert_nil(cfg.verify_callback)
44
+ assert_nil(cfg.timeout)
45
+ assert_equal(OpenSSL::SSL::OP_ALL | OpenSSL::SSL::OP_NO_SSLv2, cfg.options)
46
+ assert_equal("ALL:!ADH:!LOW:!EXP:!MD5:+SSLv2:@STRENGTH", cfg.ciphers)
47
+ assert_instance_of(OpenSSL::X509::Store, cfg.cert_store)
48
+ # dummy call to ensure sslsvr initialization finished.
49
+ assert_raise(OpenSSL::SSL::SSLError) do
50
+ @client.hello_world("ssl client")
51
+ end
52
+ end
53
+
54
+ def test_verification
55
+ cfg = @client.options
56
+ cfg["protocol.http.ssl_config.verify_callback"] = method(:verify_callback).to_proc
57
+ begin
58
+ @verify_callback_called = false
59
+ @client.hello_world("ssl client")
60
+ assert(false)
61
+ rescue OpenSSL::SSL::SSLError => ssle
62
+ assert(/certificate verify failed/ =~ ssle.message)
63
+ assert(@verify_callback_called)
64
+ end
65
+ #
66
+ cfg["protocol.http.ssl_config.client_cert"] = File.join(DIR, "client.cert")
67
+ cfg["protocol.http.ssl_config.client_key"] = File.join(DIR, "client.key")
68
+ @verify_callback_called = false
69
+ begin
70
+ @client.hello_world("ssl client")
71
+ assert(false)
72
+ rescue OpenSSL::SSL::SSLError => ssle
73
+ assert(/certificate verify failed/ =~ ssle.message)
74
+ assert(@verify_callback_called)
75
+ end
76
+ #
77
+ cfg["protocol.http.ssl_config.ca_file"] = File.join(DIR, "ca.cert")
78
+ @verify_callback_called = false
79
+ begin
80
+ @client.hello_world("ssl client")
81
+ assert(false)
82
+ rescue OpenSSL::SSL::SSLError => ssle
83
+ assert(/certificate verify failed/ =~ ssle.message)
84
+ assert(@verify_callback_called)
85
+ end
86
+ #
87
+ cfg["protocol.http.ssl_config.ca_file"] = File.join(DIR, "subca.cert")
88
+ @verify_callback_called = false
89
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
90
+ assert(@verify_callback_called)
91
+ #
92
+ cfg["protocol.http.ssl_config.verify_depth"] = "1"
93
+ @verify_callback_called = false
94
+ begin
95
+ @client.hello_world("ssl client")
96
+ assert(false)
97
+ rescue OpenSSL::SSL::SSLError => ssle
98
+ assert(/certificate verify failed/ =~ ssle.message)
99
+ assert(@verify_callback_called)
100
+ end
101
+ #
102
+ cfg["protocol.http.ssl_config.verify_depth"] = ""
103
+ cfg["protocol.http.ssl_config.cert_store"] = OpenSSL::X509::Store.new
104
+ cfg["protocol.http.ssl_config.verify_mode"] = OpenSSL::SSL::VERIFY_PEER.to_s
105
+ begin
106
+ @client.hello_world("ssl client")
107
+ assert(false)
108
+ rescue OpenSSL::SSL::SSLError => ssle
109
+ assert(/certificate verify failed/ =~ ssle.message)
110
+ end
111
+ #
112
+ cfg["protocol.http.ssl_config.verify_mode"] = ""
113
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
114
+ end
115
+
116
+ def test_property
117
+ testpropertyname = File.join(DIR, 'soapclient.properties')
118
+ File.open(testpropertyname, "w") do |f|
119
+ f <<<<__EOP__
120
+ protocol.http.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_PEER
121
+ # depth: 1 causes an error (intentional)
122
+ protocol.http.ssl_config.verify_depth = 1
123
+ protocol.http.ssl_config.client_cert = #{File.join(DIR, 'client.cert')}
124
+ protocol.http.ssl_config.client_key = #{File.join(DIR, 'client.key')}
125
+ protocol.http.ssl_config.ca_file = #{File.join(DIR, 'ca.cert')}
126
+ protocol.http.ssl_config.ca_file = #{File.join(DIR, 'subca.cert')}
127
+ protocol.http.ssl_config.ciphers = ALL
128
+ __EOP__
129
+ end
130
+ begin
131
+ @client.loadproperty(testpropertyname)
132
+ @client.options["protocol.http.ssl_config.verify_callback"] = method(:verify_callback).to_proc
133
+ @verify_callback_called = false
134
+ # NG with String
135
+ begin
136
+ @client.hello_world("ssl client")
137
+ assert(false)
138
+ rescue OpenSSL::SSL::SSLError => ssle
139
+ assert(/certificate verify failed/ =~ ssle.message)
140
+ assert(@verify_callback_called)
141
+ end
142
+ # NG with Integer
143
+ @client.options["protocol.http.ssl_config.verify_depth"] = 0
144
+ begin
145
+ @client.hello_world("ssl client")
146
+ assert(false)
147
+ rescue OpenSSL::SSL::SSLError => ssle
148
+ assert(/certificate verify failed/ =~ ssle.message)
149
+ assert(@verify_callback_called)
150
+ end
151
+ # OK with empty
152
+ @client.options["protocol.http.ssl_config.verify_depth"] = ""
153
+ @verify_callback_called = false
154
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
155
+ assert(@verify_callback_called)
156
+ # OK with nil
157
+ @client.options["protocol.http.ssl_config.verify_depth"] = nil
158
+ @verify_callback_called = false
159
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
160
+ assert(@verify_callback_called)
161
+ # OK with String
162
+ @client.options["protocol.http.ssl_config.verify_depth"] = "3"
163
+ @verify_callback_called = false
164
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
165
+ assert(@verify_callback_called)
166
+ # OK with Integer
167
+ @client.options["protocol.http.ssl_config.verify_depth"] = 3
168
+ @verify_callback_called = false
169
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
170
+ assert(@verify_callback_called)
171
+ ensure
172
+ File.unlink(testpropertyname)
173
+ end
174
+ end
175
+
176
+ def test_ciphers
177
+ cfg = @client.options
178
+ cfg["protocol.http.ssl_config.client_cert"] = File.join(DIR, 'client.cert')
179
+ cfg["protocol.http.ssl_config.client_key"] = File.join(DIR, 'client.key')
180
+ cfg["protocol.http.ssl_config.ca_file"] = File.join(DIR, "ca.cert")
181
+ cfg["protocol.http.ssl_config.ca_file"] = File.join(DIR, "subca.cert")
182
+ #cfg.timeout = 123
183
+ cfg["protocol.http.ssl_config.ciphers"] = "!ALL"
184
+ #
185
+ begin
186
+ @client.hello_world("ssl client")
187
+ assert(false)
188
+ rescue OpenSSL::SSL::SSLError => ssle
189
+ # depends on OpenSSL version. (?:0.9.8|0.9.7)
190
+ assert_match(/\A(?:SSL_CTX_set_cipher_list:: no cipher match|no ciphers available)\z/, ssle.message)
191
+ end
192
+ #
193
+ cfg["protocol.http.ssl_config.ciphers"] = "ALL"
194
+ assert_equal("Hello World, from ssl client", @client.hello_world("ssl client"))
195
+ end
196
+
197
+ private
198
+
199
+ def q(str)
200
+ %Q["#{str}"]
201
+ end
202
+
203
+ def setup_server
204
+ svrcmd = "#{q(RUBY)} "
205
+ svrcmd << File.join(DIR, "sslsvr.rb")
206
+ svrout = IO.popen(svrcmd)
207
+ @serverpid = Integer(svrout.gets.chomp)
208
+ end
209
+
210
+ def setup_client
211
+ @client = SOAP::RPC::Driver.new(@url, 'urn:ssltst')
212
+ @client.add_method("hello_world", "from")
213
+ end
214
+
215
+ def teardown_server
216
+ if @serverpid
217
+ Process.kill('KILL', @serverpid)
218
+ Process.waitpid(@serverpid)
219
+ end
220
+ end
221
+
222
+ def teardown_client
223
+ @client.reset_stream if @client
224
+ end
225
+
226
+ def verify_callback(ok, cert)
227
+ @verify_callback_called = true
228
+ p ["client", ok, cert] if $DEBUG
229
+ ok
230
+ end
231
+ end
232
+
233
+
234
+ end; end
235
+
236
+ end
@@ -0,0 +1,71 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ require 'testutil'
4
+ require 'soap/rpc/httpserver'
5
+ require 'soap/rpc/driver'
6
+
7
+
8
+ module SOAP; module Struct
9
+
10
+
11
+ class TestStruct < Test::Unit::TestCase
12
+ Namespace = "urn:example.com:simpletype-rpc"
13
+ class Server < ::SOAP::RPC::HTTPServer
14
+ @@test_struct = ::Struct.new(:one, :two)
15
+
16
+ def on_init
17
+ add_method(self, 'a_method')
18
+ end
19
+
20
+ def a_method
21
+ @@test_struct.new("string", 1)
22
+ end
23
+ end
24
+
25
+ Port = 17171
26
+
27
+ def setup
28
+ setup_server
29
+ setup_client
30
+ end
31
+
32
+ def setup_server
33
+ @server = Server.new(
34
+ :Port => Port,
35
+ :BindAddress => "0.0.0.0",
36
+ :AccessLog => [],
37
+ :SOAPDefaultNamespace => Namespace
38
+ )
39
+ @server.level = Logger::Severity::ERROR
40
+ @server_thread = TestUtil.start_server_thread(@server)
41
+ end
42
+
43
+ def setup_client
44
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/", Namespace)
45
+ @client.wiredump_dev = STDERR if $DEBUG
46
+ @client.add_method('a_method')
47
+ end
48
+
49
+ def teardown
50
+ teardown_server if @server
51
+ teardown_client if @client
52
+ end
53
+
54
+ def teardown_server
55
+ @server.shutdown
56
+ @server_thread.kill
57
+ @server_thread.join
58
+ end
59
+
60
+ def teardown_client
61
+ @client.reset_stream
62
+ end
63
+
64
+ def test_struct
65
+ assert_equal("string", @client.a_method.one)
66
+ assert_equal(1, @client.a_method.two)
67
+ end
68
+ end
69
+
70
+
71
+ end; end
@@ -0,0 +1,21 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'soap/rpc/driver'
3
+
4
+ server = 'http://localhost:7000/'
5
+
6
+ app = SOAP::RPC::Driver.new(server, 'urn:styleuse')
7
+ app.add_rpc_method('rpc_serv', 'obj1', 'obj2')
8
+ app.add_document_method('doc_serv', 'urn:doc_serv#doc_serv',
9
+ [XSD::QName.new('urn:styleuse', 'req')],
10
+ [XSD::QName.new('urn:styleuse', 'res')])
11
+ app.add_document_method('doc_serv2', 'urn:doc_serv#doc_serv2',
12
+ [XSD::QName.new('urn:styleuse', 'req')],
13
+ [XSD::QName.new('urn:styleuse', 'res')])
14
+ app.wiredump_dev = STDOUT
15
+
16
+ p app.rpc_serv(true, false)
17
+ p app.rpc_serv("foo", "bar")
18
+ p app.doc_serv({"a" => "2"})
19
+ p app.doc_serv({"a" => {"b" => "2"}})
20
+ p app.doc_serv2({"a" => "2"})
21
+ p app.doc_serv2({"a" => {"b" => "2"}})
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: ASCII-8BIT
3
+
4
+ require 'soap/rpc/standaloneServer'
5
+
6
+ class Server < SOAP::RPC::StandaloneServer
7
+ class RpcServant
8
+ def rpc_serv(obj1, obj2)
9
+ [obj1, obj2]
10
+ end
11
+ end
12
+
13
+ class DocumentServant
14
+ def doc_serv(hash)
15
+ hash
16
+ end
17
+
18
+ def doc_serv2(hash)
19
+ { 'newroot' => hash }
20
+ end
21
+ end
22
+
23
+ class GenericServant
24
+
25
+ # method name style: requeststyle_requestuse_responsestyle_responseuse
26
+
27
+ def rpc_enc_rpc_enc(obj1, obj2)
28
+ [obj1, obj2]
29
+ end
30
+
31
+ alias rpc_enc_rpc_lit rpc_enc_rpc_enc
32
+
33
+ def rpc_enc_doc_enc(obj1, obj2)
34
+ obj1
35
+ end
36
+
37
+ alias rpc_enc_doc_lit rpc_enc_doc_enc
38
+
39
+ def doc_enc_rpc_enc(obj)
40
+ [obj, obj]
41
+ end
42
+
43
+ alias doc_enc_rpc_lit doc_enc_rpc_enc
44
+
45
+ def doc_enc_doc_enc(obj)
46
+ obj
47
+ end
48
+
49
+ alias doc_enc_doc_lit doc_enc_doc_enc
50
+ end
51
+
52
+ def initialize(*arg)
53
+ super
54
+ rpcservant = RpcServant.new
55
+ docservant = DocumentServant.new
56
+ add_rpc_servant(rpcservant)
57
+ add_document_method(docservant, 'urn:doc_serv#doc_serv', 'doc_serv',
58
+ [XSD::QName.new('urn:styleuse', 'req')],
59
+ [XSD::QName.new('urn:styleuse', 'res')])
60
+ add_document_method(docservant, 'urn:doc_serv#doc_serv2', 'doc_serv2',
61
+ [XSD::QName.new('urn:styleuse', 'req')],
62
+ [XSD::QName.new('urn:styleuse', 'res')])
63
+
64
+ #servant = Servant.new
65
+ # ToDo: too plain: should add bare test case
66
+ #qname ||= XSD::QName.new(@default_namespace, name)
67
+ #add_operation(qname, nil, servant, "rpc_enc_rpc_enc", param_def,
68
+ # opt(:rpc, :rpc, :encoded, :encoded))
69
+ end
70
+
71
+ def opt(request_style, request_use, response_style, response_use)
72
+ {
73
+ :request_style => request_style,
74
+ :request_use => request_use,
75
+ :response_style => response_style,
76
+ :response_use => response_use
77
+ }
78
+ end
79
+ end
80
+
81
+ if $0 == __FILE__
82
+ server = Server.new('Server', 'urn:styleuse', '0.0.0.0', 7000)
83
+ trap(:INT) do
84
+ server.shutdown
85
+ end
86
+ server.start
87
+ end
@@ -0,0 +1,76 @@
1
+ # encoding: ASCII-8BIT
2
+ require 'helper'
3
+ require 'soap/rpc/driver'
4
+ require 'soap/rpc/standaloneServer'
5
+ require 'soap/attachment'
6
+
7
+
8
+ module SOAP
9
+ module SWA
10
+
11
+
12
+ class TestFile < Test::Unit::TestCase
13
+ Port = 17171
14
+ THIS_FILE = File.expand_path(__FILE__)
15
+
16
+ class SwAService
17
+ def get_file
18
+ return {
19
+ 'name' => $0,
20
+ 'file' => SOAP::Attachment.new(File.open(THIS_FILE)) # closed when GCed.
21
+ }
22
+ end
23
+
24
+ def put_file(name, file)
25
+ "File '#{name}' was received ok."
26
+ end
27
+ end
28
+
29
+ def setup
30
+ @server = SOAP::RPC::StandaloneServer.new('SwAServer',
31
+ 'http://www.acmetron.com/soap', '0.0.0.0', Port)
32
+ @server.add_servant(SwAService.new)
33
+ @server.level = Logger::Severity::ERROR
34
+ @t = Thread.new {
35
+ @server.start
36
+ }
37
+ @endpoint = "http://localhost:#{Port}/"
38
+ @client = SOAP::RPC::Driver.new(@endpoint, 'http://www.acmetron.com/soap')
39
+ @client.add_method('get_file')
40
+ @client.add_method('put_file', 'name', 'file')
41
+ @client.wiredump_dev = STDERR if $DEBUG
42
+ end
43
+
44
+ def teardown
45
+ @server.shutdown if @server
46
+ if @t
47
+ @t.kill
48
+ @t.join
49
+ end
50
+ @client.reset_stream if @client
51
+ end
52
+
53
+ def test_get_file
54
+ assert_equal(
55
+ File.open(THIS_FILE) { |f| f.read },
56
+ @client.get_file['file'].content
57
+ )
58
+ end
59
+
60
+ def test_put_file
61
+ assert_equal(
62
+ "File 'foo' was received ok.",
63
+ @client.put_file('foo',
64
+ SOAP::Attachment.new(File.open(THIS_FILE)))
65
+ )
66
+ assert_equal(
67
+ "File 'bar' was received ok.",
68
+ @client.put_file('bar',
69
+ SOAP::Attachment.new(File.open(THIS_FILE) { |f| f.read }))
70
+ )
71
+ end
72
+ end
73
+
74
+
75
+ end
76
+ end