DefV-soap4r 1.5.8.2

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 (443) 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 +577 -0
  26. data/lib/soap/mapping/registry.rb +295 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +446 -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/element.rb.orig +374 -0
  45. data/lib/soap/rpc/httpserver.rb +142 -0
  46. data/lib/soap/rpc/methodDef.rb +68 -0
  47. data/lib/soap/rpc/proxy.rb +572 -0
  48. data/lib/soap/rpc/router.rb +662 -0
  49. data/lib/soap/rpc/rpc.rb +25 -0
  50. data/lib/soap/rpc/soaplet.rb +200 -0
  51. data/lib/soap/rpc/standaloneServer.rb +43 -0
  52. data/lib/soap/soap.rb +151 -0
  53. data/lib/soap/streamHandler.rb +301 -0
  54. data/lib/soap/wsdlDriver.rb +164 -0
  55. data/lib/wsdl/binding.rb +65 -0
  56. data/lib/wsdl/data.rb +64 -0
  57. data/lib/wsdl/definitions.rb +236 -0
  58. data/lib/wsdl/documentation.rb +32 -0
  59. data/lib/wsdl/import.rb +80 -0
  60. data/lib/wsdl/importer.rb +38 -0
  61. data/lib/wsdl/info.rb +50 -0
  62. data/lib/wsdl/message.rb +54 -0
  63. data/lib/wsdl/operation.rb +151 -0
  64. data/lib/wsdl/operationBinding.rb +240 -0
  65. data/lib/wsdl/param.rb +93 -0
  66. data/lib/wsdl/parser.rb +164 -0
  67. data/lib/wsdl/part.rb +52 -0
  68. data/lib/wsdl/port.rb +66 -0
  69. data/lib/wsdl/portType.rb +75 -0
  70. data/lib/wsdl/service.rb +61 -0
  71. data/lib/wsdl/soap/address.rb +40 -0
  72. data/lib/wsdl/soap/binding.rb +49 -0
  73. data/lib/wsdl/soap/body.rb +58 -0
  74. data/lib/wsdl/soap/cgiStubCreator.rb +92 -0
  75. data/lib/wsdl/soap/classDefCreator.rb +433 -0
  76. data/lib/wsdl/soap/classDefCreatorSupport.rb +240 -0
  77. data/lib/wsdl/soap/classNameCreator.rb +54 -0
  78. data/lib/wsdl/soap/clientSkeltonCreator.rb +104 -0
  79. data/lib/wsdl/soap/complexType.rb +173 -0
  80. data/lib/wsdl/soap/data.rb +42 -0
  81. data/lib/wsdl/soap/definitions.rb +200 -0
  82. data/lib/wsdl/soap/driverCreator.rb +118 -0
  83. data/lib/wsdl/soap/element.rb +33 -0
  84. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +73 -0
  85. data/lib/wsdl/soap/fault.rb +56 -0
  86. data/lib/wsdl/soap/header.rb +86 -0
  87. data/lib/wsdl/soap/headerfault.rb +56 -0
  88. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +115 -0
  89. data/lib/wsdl/soap/mappingRegistryCreator.rb +58 -0
  90. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +376 -0
  91. data/lib/wsdl/soap/methodDefCreator.rb +199 -0
  92. data/lib/wsdl/soap/operation.rb +112 -0
  93. data/lib/wsdl/soap/servantSkeltonCreator.rb +89 -0
  94. data/lib/wsdl/soap/servletStubCreator.rb +104 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +100 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +217 -0
  97. data/lib/wsdl/types.rb +44 -0
  98. data/lib/wsdl/wsdl.rb +24 -0
  99. data/lib/wsdl/xmlSchema/all.rb +24 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  101. data/lib/wsdl/xmlSchema/any.rb +61 -0
  102. data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
  103. data/lib/wsdl/xmlSchema/attribute.rb +104 -0
  104. data/lib/wsdl/xmlSchema/attributeGroup.rb +68 -0
  105. data/lib/wsdl/xmlSchema/choice.rb +58 -0
  106. data/lib/wsdl/xmlSchema/complexContent.rb +97 -0
  107. data/lib/wsdl/xmlSchema/complexExtension.rb +119 -0
  108. data/lib/wsdl/xmlSchema/complexRestriction.rb +104 -0
  109. data/lib/wsdl/xmlSchema/complexType.rb +193 -0
  110. data/lib/wsdl/xmlSchema/content.rb +95 -0
  111. data/lib/wsdl/xmlSchema/data.rb +116 -0
  112. data/lib/wsdl/xmlSchema/element.rb +153 -0
  113. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  114. data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
  115. data/lib/wsdl/xmlSchema/group.rb +100 -0
  116. data/lib/wsdl/xmlSchema/import.rb +53 -0
  117. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  118. data/lib/wsdl/xmlSchema/importer.rb +102 -0
  119. data/lib/wsdl/xmlSchema/include.rb +48 -0
  120. data/lib/wsdl/xmlSchema/length.rb +37 -0
  121. data/lib/wsdl/xmlSchema/list.rb +48 -0
  122. data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
  123. data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
  124. data/lib/wsdl/xmlSchema/maxlength.rb +37 -0
  125. data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
  126. data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
  127. data/lib/wsdl/xmlSchema/minlength.rb +37 -0
  128. data/lib/wsdl/xmlSchema/parser.rb +167 -0
  129. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  130. data/lib/wsdl/xmlSchema/ref.rb +33 -0
  131. data/lib/wsdl/xmlSchema/schema.rb +178 -0
  132. data/lib/wsdl/xmlSchema/sequence.rb +54 -0
  133. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  134. data/lib/wsdl/xmlSchema/simpleExtension.rb +62 -0
  135. data/lib/wsdl/xmlSchema/simpleRestriction.rb +132 -0
  136. data/lib/wsdl/xmlSchema/simpleType.rb +87 -0
  137. data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
  138. data/lib/wsdl/xmlSchema/union.rb +35 -0
  139. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  140. data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
  141. data/lib/wsdl/xmlSchema/xsd2ruby.rb +174 -0
  142. data/lib/xsd/charset.rb +188 -0
  143. data/lib/xsd/codegen.rb +12 -0
  144. data/lib/xsd/codegen/classdef.rb +208 -0
  145. data/lib/xsd/codegen/commentdef.rb +34 -0
  146. data/lib/xsd/codegen/gensupport.rb +273 -0
  147. data/lib/xsd/codegen/methoddef.rb +70 -0
  148. data/lib/xsd/codegen/moduledef.rb +208 -0
  149. data/lib/xsd/datatypes.rb +1466 -0
  150. data/lib/xsd/datatypes1999.rb +20 -0
  151. data/lib/xsd/iconvcharset.rb +33 -0
  152. data/lib/xsd/mapping.rb +68 -0
  153. data/lib/xsd/namedelements.rb +132 -0
  154. data/lib/xsd/ns.rb +182 -0
  155. data/lib/xsd/qname.rb +79 -0
  156. data/lib/xsd/xmlparser.rb +76 -0
  157. data/lib/xsd/xmlparser.rb.orig +76 -0
  158. data/lib/xsd/xmlparser/libxmlparser.rb +119 -0
  159. data/lib/xsd/xmlparser/parser.rb +100 -0
  160. data/lib/xsd/xmlparser/rexmlparser.rb +58 -0
  161. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  162. data/lib/xsd/xmlparser/xmlscanner.rb +149 -0
  163. data/test/16runner.rb +68 -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 +288 -0
  168. data/test/interopR2/client.NetRemoting.rb +17 -0
  169. data/test/interopR2/client.rb +1234 -0
  170. data/test/interopR2/client4S4C.rb +15 -0
  171. data/test/interopR2/client4S4C2.rb +14 -0
  172. data/test/interopR2/clientASP.NET.rb +17 -0
  173. data/test/interopR2/clientApacheAxis.rb +16 -0
  174. data/test/interopR2/clientApacheSOAP.rb +17 -0
  175. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  176. data/test/interopR2/clientBase.rb +1967 -0
  177. data/test/interopR2/clientCapeConnect.rb +18 -0
  178. data/test/interopR2/clientDelphi.rb +19 -0
  179. data/test/interopR2/clientEasySoap.rb +14 -0
  180. data/test/interopR2/clientFrontier.rb +25 -0
  181. data/test/interopR2/clientGLUE.rb +32 -0
  182. data/test/interopR2/clientHP.rb +13 -0
  183. data/test/interopR2/clientJAX-RPC.rb +19 -0
  184. data/test/interopR2/clientJSOAP.rb +14 -0
  185. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  186. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  187. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  188. data/test/interopR2/clientNuSOAP.rb +19 -0
  189. data/test/interopR2/clientNuWave.rb +15 -0
  190. data/test/interopR2/clientOpenLink.rb +15 -0
  191. data/test/interopR2/clientOracle.rb +15 -0
  192. data/test/interopR2/clientPEAR.rb +18 -0
  193. data/test/interopR2/clientPhalanx.rb +18 -0
  194. data/test/interopR2/clientSIMACE.rb +18 -0
  195. data/test/interopR2/clientSOAP4R.rb +18 -0
  196. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  197. data/test/interopR2/clientSQLData.rb +18 -0
  198. data/test/interopR2/clientSilverStream.rb +17 -0
  199. data/test/interopR2/clientSpray2001.rb +17 -0
  200. data/test/interopR2/clientSun.rb +19 -0
  201. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  202. data/test/interopR2/clientWASP.rb +19 -0
  203. data/test/interopR2/clientWASPC.rb +18 -0
  204. data/test/interopR2/clientWebMethods.rb +15 -0
  205. data/test/interopR2/clientWhiteMesa.rb +28 -0
  206. data/test/interopR2/clientWingfoot.rb +15 -0
  207. data/test/interopR2/clientXMLBus.rb +19 -0
  208. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  209. data/test/interopR2/clientXSOAP.rb +14 -0
  210. data/test/interopR2/clientZSI.rb +19 -0
  211. data/test/interopR2/clienteSOAP.rb +18 -0
  212. data/test/interopR2/clientgSOAP.rb +18 -0
  213. data/test/interopR2/clientkSOAP.rb +17 -0
  214. data/test/interopR2/iSimonReg.rb +112 -0
  215. data/test/interopR2/interopResultBase.rb +114 -0
  216. data/test/interopR2/interopService.rb +247 -0
  217. data/test/interopR2/rwikiInteropService.rb +105 -0
  218. data/test/interopR2/server.cgi +270 -0
  219. data/test/interopR2/server.rb +275 -0
  220. data/test/interopR2/simonReg.rb +123 -0
  221. data/test/interopR2/test.sh +49 -0
  222. data/test/interopR4/client.rb +112 -0
  223. data/test/results +4810 -0
  224. data/test/runner.rb +7 -0
  225. data/test/sm11/classDef.rb +156 -0
  226. data/test/sm11/client.rb +542 -0
  227. data/test/sm11/driver.rb +183 -0
  228. data/test/sm11/servant.rb +1067 -0
  229. data/test/sm11/server.rb +25 -0
  230. data/test/soap/asp.net/hello.wsdl +96 -0
  231. data/test/soap/asp.net/test_aspdotnet.rb +123 -0
  232. data/test/soap/auth/htdigest +2 -0
  233. data/test/soap/auth/htpasswd +2 -0
  234. data/test/soap/auth/test_basic.rb +117 -0
  235. data/test/soap/auth/test_digest.rb +118 -0
  236. data/test/soap/calc/calc.rb +17 -0
  237. data/test/soap/calc/calc2.rb +29 -0
  238. data/test/soap/calc/server.cgi +13 -0
  239. data/test/soap/calc/server.rb +17 -0
  240. data/test/soap/calc/server2.rb +20 -0
  241. data/test/soap/calc/test_calc.rb +51 -0
  242. data/test/soap/calc/test_calc2.rb +55 -0
  243. data/test/soap/calc/test_calc_cgi.rb +71 -0
  244. data/test/soap/case/test_mapping.rb +57 -0
  245. data/test/soap/fault/test_customfault.rb +60 -0
  246. data/test/soap/fault/test_fault.rb +46 -0
  247. data/test/soap/fault/test_soaparray.rb +35 -0
  248. data/test/soap/filter/test_filter.rb +146 -0
  249. data/test/soap/header/server.cgi +119 -0
  250. data/test/soap/header/session.pstoredb +0 -0
  251. data/test/soap/header/test_authheader.rb +240 -0
  252. data/test/soap/header/test_authheader_cgi.rb +121 -0
  253. data/test/soap/header/test_simplehandler.rb +116 -0
  254. data/test/soap/helloworld/hw_s.rb +16 -0
  255. data/test/soap/helloworld/test_helloworld.rb +43 -0
  256. data/test/soap/htpasswd +2 -0
  257. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  258. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  259. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  260. data/test/soap/literalArrayMapping/test_definedarray.rb +34 -0
  261. data/test/soap/marshal/marshaltestlib.rb +494 -0
  262. data/test/soap/marshal/test_digraph.rb +56 -0
  263. data/test/soap/marshal/test_marshal.rb +26 -0
  264. data/test/soap/marshal/test_struct.rb +47 -0
  265. data/test/soap/ssl/README +1 -0
  266. data/test/soap/ssl/ca.cert +23 -0
  267. data/test/soap/ssl/client.cert +19 -0
  268. data/test/soap/ssl/client.key +15 -0
  269. data/test/soap/ssl/server.cert +19 -0
  270. data/test/soap/ssl/server.key +15 -0
  271. data/test/soap/ssl/sslsvr.rb +57 -0
  272. data/test/soap/ssl/subca.cert +21 -0
  273. data/test/soap/ssl/test_ssl.rb +235 -0
  274. data/test/soap/struct/test_struct.rb +70 -0
  275. data/test/soap/styleuse/client.rb +20 -0
  276. data/test/soap/styleuse/server.rb +86 -0
  277. data/test/soap/swa/test_file.rb +75 -0
  278. data/test/soap/test_basetype.rb +1090 -0
  279. data/test/soap/test_cookie.rb +112 -0
  280. data/test/soap/test_custom_ns.rb +105 -0
  281. data/test/soap/test_custommap.rb +110 -0
  282. data/test/soap/test_empty.rb +105 -0
  283. data/test/soap/test_envelopenamespace.rb +85 -0
  284. data/test/soap/test_extraattr.rb +54 -0
  285. data/test/soap/test_generator.rb +27 -0
  286. data/test/soap/test_httpconfigloader.rb +71 -0
  287. data/test/soap/test_mapping.rb +131 -0
  288. data/test/soap/test_nestedexception.rb +56 -0
  289. data/test/soap/test_nil.rb +57 -0
  290. data/test/soap/test_no_indent.rb +88 -0
  291. data/test/soap/test_property.rb +428 -0
  292. data/test/soap/test_response_as_xml.rb +117 -0
  293. data/test/soap/test_soapelement.rb +138 -0
  294. data/test/soap/test_streamhandler.rb +270 -0
  295. data/test/soap/test_styleuse.rb +326 -0
  296. data/test/soap/wsdlDriver/README.txt +2 -0
  297. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  298. data/test/soap/wsdlDriver/document.wsdl +54 -0
  299. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  300. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  301. data/test/soap/wsdlDriver/test_calc.rb +71 -0
  302. data/test/soap/wsdlDriver/test_document.rb +71 -0
  303. data/test/soap/wsdlDriver/test_simpletype.rb +80 -0
  304. data/test/testutil.rb +54 -0
  305. data/test/wsdl/abstract/abstract.wsdl +176 -0
  306. data/test/wsdl/abstract/test_abstract.rb +159 -0
  307. data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
  308. data/test/wsdl/anonymous/expectedDriver.rb +59 -0
  309. data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
  310. data/test/wsdl/anonymous/lp.wsdl +147 -0
  311. data/test/wsdl/anonymous/test_anonymous.rb +130 -0
  312. data/test/wsdl/any/any.wsdl +114 -0
  313. data/test/wsdl/any/expectedDriver.rb +68 -0
  314. data/test/wsdl/any/expectedEcho.rb +57 -0
  315. data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
  316. data/test/wsdl/any/expectedService.rb +69 -0
  317. data/test/wsdl/any/test_any.rb +193 -0
  318. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  319. data/test/wsdl/axisArray/test_axisarray.rb +124 -0
  320. data/test/wsdl/choice/choice.wsdl +167 -0
  321. data/test/wsdl/choice/test_choice.rb +310 -0
  322. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  323. data/test/wsdl/complexcontent/test_echo.rb +90 -0
  324. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  325. data/test/wsdl/datetime/datetime.rb +0 -0
  326. data/test/wsdl/datetime/datetime.wsdl +45 -0
  327. data/test/wsdl/datetime/datetimeServant.rb +22 -0
  328. data/test/wsdl/datetime/test_datetime.rb +86 -0
  329. data/test/wsdl/document/array/double.wsdl +161 -0
  330. data/test/wsdl/document/array/test_array.rb +201 -0
  331. data/test/wsdl/document/document.wsdl +76 -0
  332. data/test/wsdl/document/number.wsdl +54 -0
  333. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  334. data/test/wsdl/document/test_nosoapaction.rb +102 -0
  335. data/test/wsdl/document/test_number.rb +92 -0
  336. data/test/wsdl/document/test_rpc.rb +355 -0
  337. data/test/wsdl/emptycomplextype.wsdl +31 -0
  338. data/test/wsdl/fault/fault.wsdl +79 -0
  339. data/test/wsdl/fault/multifault.wsdl +96 -0
  340. data/test/wsdl/fault/test_fault.rb +119 -0
  341. data/test/wsdl/fault/test_multifault.rb +134 -0
  342. data/test/wsdl/group/expectedClassdef.rb +58 -0
  343. data/test/wsdl/group/expectedDriver.rb +51 -0
  344. data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
  345. data/test/wsdl/group/group.wsdl +88 -0
  346. data/test/wsdl/group/test_rpc.rb +145 -0
  347. data/test/wsdl/list/list.wsdl +93 -0
  348. data/test/wsdl/list/test_list.rb +124 -0
  349. data/test/wsdl/map/map.wsdl +92 -0
  350. data/test/wsdl/map/map.xml +43 -0
  351. data/test/wsdl/map/test_map.rb +99 -0
  352. data/test/wsdl/marshal/Person.rb +1 -0
  353. data/test/wsdl/marshal/person.wsdl +21 -0
  354. data/test/wsdl/marshal/person_org.rb +23 -0
  355. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  356. data/test/wsdl/multiplefault.wsdl +75 -0
  357. data/test/wsdl/oneway/oneway.wsdl +36 -0
  358. data/test/wsdl/oneway/test_oneway.rb +108 -0
  359. data/test/wsdl/overload/expectedClient.rb +37 -0
  360. data/test/wsdl/overload/expectedDriver.rb +61 -0
  361. data/test/wsdl/overload/expectedServant.rb +35 -0
  362. data/test/wsdl/overload/overload.wsdl +70 -0
  363. data/test/wsdl/overload/test_overload.rb +131 -0
  364. data/test/wsdl/qualified/lp.wsdl +47 -0
  365. data/test/wsdl/qualified/lp.xsd +26 -0
  366. data/test/wsdl/qualified/np.wsdl +51 -0
  367. data/test/wsdl/qualified/test_qualified.rb +137 -0
  368. data/test/wsdl/qualified/test_unqualified.rb +138 -0
  369. data/test/wsdl/raa/RAAService.rb +125 -0
  370. data/test/wsdl/raa/README.txt +8 -0
  371. data/test/wsdl/raa/expectedClassDef.rb +100 -0
  372. data/test/wsdl/raa/expectedDriver.rb +96 -0
  373. data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
  374. data/test/wsdl/raa/raa.wsdl +264 -0
  375. data/test/wsdl/raa/test_raa.rb +126 -0
  376. data/test/wsdl/ref/expectedDriver.rb +51 -0
  377. data/test/wsdl/ref/expectedProduct.rb +243 -0
  378. data/test/wsdl/ref/product.wsdl +147 -0
  379. data/test/wsdl/ref/test_ref.rb +268 -0
  380. data/test/wsdl/rpc/rpc.wsdl +109 -0
  381. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  382. data/test/wsdl/rpc/test_rpc.rb +176 -0
  383. data/test/wsdl/rpc/test_rpc_lit.rb +470 -0
  384. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  385. data/test/wsdl/simplecontent/test_simplecontent.rb +102 -0
  386. data/test/wsdl/simpletype/rpc/echo_version.rb +1 -0
  387. data/test/wsdl/simpletype/rpc/echo_versionDriver.rb +10 -0
  388. data/test/wsdl/simpletype/rpc/echo_versionMappingRegistry.rb +4 -0
  389. data/test/wsdl/simpletype/rpc/echo_versionServant.rb +3 -0
  390. data/test/wsdl/simpletype/rpc/echo_version_service.rb +3 -0
  391. data/test/wsdl/simpletype/rpc/echo_version_serviceClient.rb +34 -0
  392. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  393. data/test/wsdl/simpletype/rpc/expectedDriver.rb +58 -0
  394. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +36 -0
  395. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +57 -0
  396. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  397. data/test/wsdl/simpletype/rpc/expectedService.rb +55 -0
  398. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  399. data/test/wsdl/simpletype/rpc/test_rpc.rb +52 -0
  400. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  401. data/test/wsdl/simpletype/test_simpletype.rb +92 -0
  402. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  403. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  404. data/test/wsdl/soap/wsdl2ruby/echo_version.rb +1 -0
  405. data/test/wsdl/soap/wsdl2ruby/echo_versionDriver.rb +10 -0
  406. data/test/wsdl/soap/wsdl2ruby/echo_versionMappingRegistry.rb +4 -0
  407. data/test/wsdl/soap/wsdl2ruby/echo_versionServant.rb +3 -0
  408. data/test/wsdl/soap/wsdl2ruby/echo_version_service.cgi +3 -0
  409. data/test/wsdl/soap/wsdl2ruby/echo_version_service.rb +7 -0
  410. data/test/wsdl/soap/wsdl2ruby/echo_version_serviceClient.rb +34 -0
  411. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +21 -0
  412. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  413. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +58 -0
  414. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +36 -0
  415. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  416. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +48 -0
  417. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +55 -0
  418. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  419. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +37 -0
  420. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  421. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +53 -0
  422. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  423. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +83 -0
  424. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +102 -0
  425. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  426. data/test/wsdl/soaptype/test_soaptype.rb +178 -0
  427. data/test/wsdl/test_emptycomplextype.rb +21 -0
  428. data/test/wsdl/test_fault.rb +50 -0
  429. data/test/wsdl/test_multiplefault.rb +41 -0
  430. data/test/xsd/codegen/test_classdef.rb +244 -0
  431. data/test/xsd/noencoding.xml +4 -0
  432. data/test/xsd/test_noencoding.rb +32 -0
  433. data/test/xsd/test_ns.rb +41 -0
  434. data/test/xsd/test_xmlschemaparser.rb +22 -0
  435. data/test/xsd/test_xsd.rb +1638 -0
  436. data/test/xsd/xmllang.xml +43 -0
  437. data/test/xsd/xmlschema.xml +12 -0
  438. data/test/xsd/xsd2ruby/expected_mysample.rb +65 -0
  439. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +11 -0
  440. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +51 -0
  441. data/test/xsd/xsd2ruby/section.xsd +49 -0
  442. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +90 -0
  443. metadata +568 -0
@@ -0,0 +1,275 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(".")
4
+
5
+ #$KCODE = "UTF8" # Set $KCODE before loading 'soap/xmlparser'.
6
+ #$KCODE = "EUC"
7
+ $KCODE = "SJIS"
8
+
9
+ require 'soap/rpc/standaloneServer'
10
+ require 'base'
11
+ require 'xsd/xmlparser/rexmlparser'
12
+
13
+ class InteropApp < SOAP::RPC::StandaloneServer
14
+ include SOAP
15
+
16
+ def initialize(*arg)
17
+ super(*arg)
18
+ self.mapping_registry = SOAPBuildersInterop::MappingRegistry
19
+ self.level = Logger::Severity::ERROR
20
+ end
21
+
22
+ def on_init
23
+ (SOAPBuildersInterop::MethodsBase + SOAPBuildersInterop::MethodsGroupB + SOAPBuildersInterop::MethodsPolyMorph).each do |name, *params|
24
+ add_method(self, name, params)
25
+ end
26
+ end
27
+
28
+ # In echoVoid, 'retval' is not defined. So nothing will be returned.
29
+ def echoVoid
30
+ return SOAP::RPC::SOAPVoid.new
31
+ end
32
+
33
+ def echoBoolean(inputBoolean)
34
+ inputBoolean
35
+ end
36
+
37
+ def echoString(inputString)
38
+ clone(inputString)
39
+ end
40
+
41
+ def echoStringArray(inputStringArray)
42
+ clone(inputStringArray)
43
+ end
44
+
45
+ def echoInteger(inputInteger)
46
+ SOAP::SOAPInt.new(clone(inputInteger))
47
+ end
48
+
49
+ def echoIntegerArray(inputIntegerArray)
50
+ clone(inputIntegerArray)
51
+ end
52
+
53
+ # Float is mapped to SOAPDouble by default.
54
+ def echoFloat(inputFloat)
55
+ SOAP::SOAPFloat.new(inputFloat)
56
+ end
57
+
58
+ def echoDecimal(inputDecimal)
59
+ SOAP::SOAPDecimal.new(clone(inputDecimal))
60
+ end
61
+
62
+ def echoFloatArray(inputFloatArray)
63
+ outArray = SOAPBuildersInterop::FloatArray.new
64
+ inputFloatArray.each do |f|
65
+ outArray << SOAPFloat.new(f)
66
+ end
67
+ outArray
68
+ end
69
+
70
+ def echoStruct(inputStruct)
71
+ clone_Struct(inputStruct)
72
+ end
73
+
74
+ def echoStructArray(inputStructArray)
75
+ clone_StructArray(inputStructArray)
76
+ end
77
+
78
+ def echoDate(inputDate)
79
+ clone(inputDate)
80
+ end
81
+
82
+ def echoBase64(inputBase64)
83
+ o = SOAP::SOAPBase64.new(clone(inputBase64))
84
+ o.as_xsd
85
+ o
86
+ end
87
+
88
+ def echoHexBinary(inputHexBinary)
89
+ SOAP::SOAPHexBinary.new(clone(inputHexBinary))
90
+ end
91
+
92
+ def echoDouble(inputDouble)
93
+ SOAP::SOAPDouble.new(inputDouble)
94
+ end
95
+
96
+ # for Round 2 group B
97
+ def echoStructAsSimpleTypes(inputStruct)
98
+ outputString = inputStruct.varString
99
+ outputInteger = inputStruct.varInt
100
+ outputFloat = inputStruct.varFloat ? SOAPFloat.new(inputStruct.varFloat) : nil
101
+ # retVal is not returned to SOAP client because retVal of this method is
102
+ # not defined in method definition.
103
+ # retVal, out, out, out
104
+ return nil, outputString, outputInteger, outputFloat
105
+ end
106
+
107
+ def echoSimpleTypesAsStruct(inputString, inputInt, inputFloat)
108
+ SOAPBuildersInterop::SOAPStruct.new(inputInt, inputFloat, inputString)
109
+ end
110
+
111
+ def echo2DStringArray(ary)
112
+ # In Ruby, M-D Array is converted to Array of Array now.
113
+ mdary = SOAP::Mapping.ary2md(ary, 2, XSD::Namespace, XSD::StringLiteral)
114
+ if mdary.include?(nil)
115
+ mdary.sparse = true
116
+ end
117
+ mdary
118
+ end
119
+
120
+ def echoNestedStruct(inputStruct)
121
+ clone_StructStruct(inputStruct)
122
+ end
123
+
124
+ def echoNestedArray(inputStruct)
125
+ clone_Struct(inputStruct)
126
+ end
127
+
128
+ def echoMap(inputMap)
129
+ clone(inputMap)
130
+ end
131
+
132
+ def echoMapArray(inputMapArray)
133
+ clone(inputMapArray)
134
+ end
135
+
136
+ def echoPolyMorph(anObject)
137
+ clone(anObject)
138
+ end
139
+
140
+ alias echoPolyMorphStruct echoPolyMorph
141
+ alias echoPolyMorphArray echoPolyMorph
142
+
143
+
144
+ def echoXSDBoolean(inputBoolean)
145
+ inputBoolean
146
+ end
147
+
148
+ def echoXSDString(inputString)
149
+ clone(inputString)
150
+ end
151
+
152
+ def echoXSDDecimal(inputDecimal)
153
+ SOAP::SOAPDecimal.new(clone(inputDecimal))
154
+ end
155
+
156
+ def echoXSDFloat(inputFloat)
157
+ SOAPFloat.new(inputFloat)
158
+ end
159
+
160
+ def echoXSDDouble(inputDouble)
161
+ SOAP::SOAPDouble.new(clone(inputDouble))
162
+ end
163
+
164
+ def echoXSDDuration(inputDuration)
165
+ SOAP::SOAPDuration.new(clone(inputDuration))
166
+ end
167
+
168
+ def echoXSDDateTime(inputXSDDateTime)
169
+ clone(inputXSDDateTime)
170
+ end
171
+
172
+ def echoXSDTime(inputXSDTime)
173
+ SOAP::SOAPTime.new(clone(inputXSDTime))
174
+ end
175
+
176
+ def echoXSDDate(inputXSDDate)
177
+ SOAP::SOAPDate.new(clone(inputXSDDate))
178
+ end
179
+
180
+ def echoXSDgYearMonth(inputGYearMonth)
181
+ SOAP::SOAPgYearMonth.new(clone(inputGYearMonth))
182
+ end
183
+
184
+ def echoXSDgYear(inputGYear)
185
+ SOAP::SOAPgYear.new(clone(inputGYear))
186
+ end
187
+
188
+ def echoXSDgMonthDay(inputGMonthDay)
189
+ SOAP::SOAPgMonthDay.new(clone(inputGMonthDay))
190
+ end
191
+
192
+ def echoXSDgDay(inputGDay)
193
+ SOAP::SOAPgDay.new(clone(inputGDay))
194
+ end
195
+
196
+ def echoXSDgMonth(inputGMonth)
197
+ SOAP::SOAPgMonth.new(clone(inputGMonth))
198
+ end
199
+
200
+ def echoXSDHexBinary(inputHexBinary)
201
+ SOAP::SOAPHexBinary.new(clone(inputHexBinary))
202
+ end
203
+
204
+ def echoXSDBase64(inputBase64)
205
+ o = SOAP::SOAPBase64.new(clone(inputBase64))
206
+ o.as_xsd
207
+ o
208
+ end
209
+
210
+ def echoXSDanyURI(inputAnyURI)
211
+ clone(inputAnyURI)
212
+ end
213
+
214
+ def echoXSDQName(inputQName)
215
+ SOAP::SOAPQName.new(clone(inputQName))
216
+ end
217
+
218
+ def echoXSDInteger(inputXSDInteger)
219
+ clone(inputXSDInteger)
220
+ end
221
+
222
+ def echoXSDLong(inputLong)
223
+ SOAP::SOAPLong.new(clone(inputLong))
224
+ end
225
+
226
+ def echoXSDInt(inputInt)
227
+ SOAP::SOAPInt.new(clone(inputInteger))
228
+ end
229
+
230
+ def echoPolyMorph(anObject)
231
+ clone(anObject)
232
+ end
233
+
234
+ alias echoPolyMorphStruct echoPolyMorph
235
+ alias echoPolyMorphArray echoPolyMorph
236
+
237
+ private
238
+
239
+ def clone(obj)
240
+ begin
241
+ return Marshal.load(Marshal.dump(obj))
242
+ rescue TypeError
243
+ return obj
244
+ end
245
+ end
246
+
247
+ def clone_Struct(struct)
248
+ result = clone(struct)
249
+ result.varFloat = SOAPFloat.new(struct.varFloat) if struct.varFloat
250
+ result
251
+ end
252
+
253
+ def clone_StructArray(structArray)
254
+ result = clone(structArray)
255
+ result.map { |ele|
256
+ ele.varFloat = SOAPFloat.new(ele.varFloat) if ele.varFloat
257
+ }
258
+ result
259
+ end
260
+
261
+ def clone_StructStruct(structStruct)
262
+ result = clone(structStruct)
263
+ result.varFloat = SOAPFloat.new(structStruct.varFloat) if structStruct.varFloat
264
+ if struct = result.varStruct
265
+ struct.varFloat = SOAPFloat.new(struct.varFloat) if struct.varFloat
266
+ end
267
+ result
268
+ end
269
+ end
270
+
271
+ if __FILE__ == $0
272
+ svr = InteropApp.new('InteropApp', InterfaceNS, '0.0.0.0', 10080)
273
+ trap("INT") { svr.shutdown }
274
+ svr.start
275
+ end
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ proxy = ARGV.shift || nil
4
+
5
+ require 'soap/driver'
6
+ require 'logger'
7
+
8
+ require 'iSimonReg'
9
+
10
+ server = 'http://www.4s4c.com/services/4s4c.ashx'
11
+
12
+ class SimonRegApp < Logger::Application
13
+ include SimonReg
14
+
15
+ private
16
+
17
+ AppName = 'SimonRegApp'
18
+
19
+ def initialize( server, proxy )
20
+ super( AppName )
21
+ @server = server
22
+ @proxy = proxy
23
+ @logId = Time.now.gmtime.strftime( "%Y-%m-%dT%X+0000" )
24
+ @drvServices = nil
25
+ @drvClients = nil
26
+ @drvServers = nil
27
+ @drvSubscriber = nil
28
+ end
29
+
30
+ def run()
31
+ @log.level = WARN
32
+ wireDump = getWireDumpLogFile
33
+
34
+ # Services portType
35
+ @drvServices = SOAP::Driver.new( @log, @logId, Services::InterfaceNS, @server, @proxy )
36
+ @drvServices.setWireDumpDev( wireDump )
37
+
38
+ Services::Methods.each do | method, params |
39
+ @drvServices.addMethod( method, *( params[1..-1] ))
40
+ end
41
+ @drvServices.extend( Services )
42
+
43
+ # Clients portType
44
+ @drvClients = SOAP::Driver.new( @log, @logId, Clients::InterfaceNS, @server, @proxy )
45
+ @drvClients.setWireDumpDev( wireDump )
46
+
47
+ Clients::Methods.each do | method, params |
48
+ @drvClients.addMethod( method, *( params[1..-1] ))
49
+ end
50
+ @drvClients.extend( Clients )
51
+
52
+ # Servers portType
53
+ @drvServers = SOAP::Driver.new( @log, @logId, Servers::InterfaceNS, @server, @proxy )
54
+ @drvServers.setWireDumpDev( wireDump )
55
+
56
+ Servers::Methods.each do | method, params |
57
+ @drvServers.addMethod( method, *( params[1..-1] ))
58
+ end
59
+ @drvServers.extend( Services )
60
+
61
+ # Services portType
62
+ @drvSubscriber = SOAP::Driver.new( @log, @logId, Subscriber::InterfaceNS, @server, @proxy )
63
+ @drvSubscriber.setWireDumpDev( wireDump )
64
+
65
+ Subscriber::Methods.each do | method, params |
66
+ @drvSubscriber.addMethod( method, *( params[1..-1] ))
67
+ end
68
+ @drvSubscriber.extend( Subscriber )
69
+
70
+ # Service information
71
+ #services = @drvServices.ServiceList
72
+ #groupA = services.find { | service | service.name == 'SoapBuilders Interop Group A' }
73
+ #groupB = services.find { | service | service.name == 'SoapBuilders Interop Group B' }
74
+
75
+ # SOAP4R information
76
+ version = '1.4.1'
77
+ soap4rClientInfo = Clients::ClientInfo.new( 'SOAP4R', version,
78
+ 'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/wiki.cgi?cmd=view;name=InteropResults'
79
+ )
80
+ soap4rServerInfo = Servers::ServerInfo.new( 'SOAP4R', version,
81
+ 'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/SOAPBuildersInterop/',
82
+ 'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/SOAPBuildersInterop/SOAP4R_SOAPBuildersInteropTest_R2base.wsdl' )
83
+ soap4rGroupAClientID = '{7B1DF876-055E-4259-ACAE-55E13E399264}'
84
+ soap4rGroupBClientID = '{62723003-BC86-4BC0-AABC-C6A3FDE11655}'
85
+ soap4rGroupAServerID = '{3094F6C7-F6AA-4BE5-A4EB-194C82103728}'
86
+ soap4rGroupBServerID = '{A16357C9-6C7F-45CD-AC3D-72F0FC5F4F99}'
87
+
88
+ # Client registration
89
+ # clientID = @drvClients.RegisterClient( groupA.id, soap4rClientInfo )
90
+ # clientID = @drvClients.RegisterClient( groupB.id, soap4rClientInfo )
91
+
92
+ # Client remove
93
+ # @drvClients.RemoveClient( soap4rClientID )
94
+
95
+ # Server registration
96
+ # serverID = @drvServers.RegisterServer( groupA.id, soap4rServerInfo )
97
+ # serverID = @drvServers.RegisterServer( groupB.id, soap4rServerInfo )
98
+ # p serverID
99
+
100
+ # Update
101
+ @drvClients.UpdateClient( soap4rGroupAClientID, soap4rClientInfo )
102
+ @drvClients.UpdateClient( soap4rGroupBClientID, soap4rClientInfo )
103
+ @drvServers.UpdateServer( soap4rGroupAServerID, soap4rServerInfo )
104
+ @drvServers.UpdateServer( soap4rGroupBServerID, soap4rServerInfo )
105
+ end
106
+
107
+
108
+ ###
109
+ ## Other utility methods
110
+ #
111
+ def log( sev, message )
112
+ @log.add( sev, "<#{ @logId }> #{ message }", @appName ) if @log
113
+ end
114
+
115
+ def getWireDumpLogFile
116
+ logFilename = File.basename( $0 ) + '.log'
117
+ f = File.open( logFilename, 'w' )
118
+ f << "File: #{ logFilename } - Wiredumps for SOAP4R client.\n"
119
+ f << "Date: #{ Time.now }\n\n"
120
+ end
121
+ end
122
+
123
+ app = SimonRegApp.new( server, proxy ).start()
@@ -0,0 +1,49 @@
1
+ #!/bin/sh -
2
+
3
+ ruby clientSOAP4R.rb
4
+
5
+ ruby client4S4C.rb
6
+ ruby client4S4C2.rb
7
+ ruby clientApacheAxis.rb
8
+ ruby clientApacheSOAP.rb
9
+ ruby clientASP.NET.rb
10
+ ruby clientBEAWebLogic.rb
11
+ ruby clientCapeConnect.rb
12
+ ruby clientDelphi.rb
13
+ ruby clientEasySoap.rb
14
+ ruby clienteSOAP.rb
15
+ ruby clientgSOAP.rb
16
+ ruby clientFrontier.rb
17
+ ruby clientGLUE.rb
18
+ ruby clientHP.rb
19
+ ruby clientXMLBus.rb
20
+ ruby clientKafkaXSLT.rb
21
+ ruby clientkSOAP.rb
22
+ ruby client.NetRemoting.rb
23
+ ruby clientMSSOAPToolkit2.0.rb
24
+ ruby clientMSSOAPToolkit3.0.rb
25
+ ruby clientNuSOAP.rb
26
+ ruby clientNuWave.rb
27
+ ruby clientOpenLink.rb
28
+ ruby clientOracle.rb
29
+ ruby clientPEAR.rb
30
+ ruby clientPhalanx.rb
31
+ ruby clientSilverStream.rb
32
+ ruby clientSIMACE.rb
33
+ ruby clientSOAP::Lite.rb
34
+ ruby clientJSOAP.rb
35
+ ruby clientSpray2001.rb
36
+ ruby clientSQLData.rb
37
+ ruby clientSun.rb
38
+ ruby clientVWOpentalkSoap.rb
39
+ ruby clientWASP.rb
40
+ ruby clientWASPC.rb
41
+ ruby clientWebMethods.rb
42
+ ruby clientWhiteMesa.rb
43
+ ruby clientWingfoot.rb
44
+ ruby clientXSOAP.rb
45
+
46
+ # Permanent
47
+ #ruby clientTclSOAP.rb
48
+ #ruby clientXMLRPC-EPI.rb
49
+ #ruby clientZSI.rb
@@ -0,0 +1,112 @@
1
+ require 'test/unit'
2
+ require 'soap/rpc/driver'
3
+
4
+
5
+ class TestInteropR4 < Test::Unit::TestCase
6
+ include SOAP
7
+
8
+ class ArrayOfBinary < Array; end
9
+ MappingRegistry = Mapping::DefaultRegistry.dup
10
+ MappingRegistry.add(
11
+ ArrayOfBinary,
12
+ SOAPArray,
13
+ Mapping::Registry::TypedArrayFactory,
14
+ { :type => XSD::XSDBase64Binary::Type }
15
+ )
16
+
17
+ class << self
18
+ include SOAP
19
+ def setup(name, location)
20
+ setup_log(name)
21
+ setup_drv(location)
22
+ end
23
+
24
+ def teardown
25
+ end
26
+
27
+ private
28
+
29
+ def setup_log(name)
30
+ filename = File.basename($0).sub(/\.rb$/, '') << '.log'
31
+ @@log = File.open(filename, 'w')
32
+ @@log << "File: #{ filename } - Wiredumps for SOAP4R client / #{ name } server.\n"
33
+ @@log << "Date: #{ Time.now }\n\n"
34
+ end
35
+
36
+ def setup_drv(location)
37
+ namespace = "http://soapinterop.org/attachments/"
38
+ soap_action = "http://soapinterop.org/attachments/"
39
+ @@drv = RPC::Driver.new(location, namespace, soap_action)
40
+ @@drv.mapping_registry = MappingRegistry
41
+ @@drv.wiredump_dev = @@log
42
+ method_def(@@drv, soap_action)
43
+ end
44
+
45
+ def method_def(drv, soap_action = nil)
46
+ drv.add_method("EchoAttachment",
47
+ [[:in, 'In', nil], [:retval, 'Out', nil]])
48
+ drv.add_method("EchoAttachments",
49
+ [[:in, 'In', nil], [:retval, 'Out', nil]])
50
+ drv.add_method("EchoAttachmentAsBase64",
51
+ [[:in, 'In', nil], [:retval, 'Out', nil]])
52
+ drv.add_method("EchoBase64AsAttachment",
53
+ [[:in, 'In', nil], [:retval, 'Out', nil]])
54
+ end
55
+ end
56
+
57
+ def setup
58
+ end
59
+
60
+ def teardown
61
+ end
62
+
63
+ def drv
64
+ @@drv
65
+ end
66
+
67
+ def log_test
68
+ /`([^']+)'/ =~ caller(1)[0]
69
+ title = $1
70
+ title = "==== " + title + " " << "=" * (title.length > 72 ? 0 : (72 - title.length))
71
+ @@log << "#{title}\n\n"
72
+ end
73
+
74
+ def test_EchoAttachment
75
+ log_test
76
+ var = drv.EchoAttachment(Attachment.new("foobar"))
77
+ assert_equal("foobar", var.content)
78
+ end
79
+
80
+ def test_EchoAttachments
81
+ log_test
82
+ var = drv.EchoAttachments(
83
+ ArrayOfBinary[
84
+ Attachment.new("foobar"),
85
+ Attachment.new("abc\0\0\0def"),
86
+ Attachment.new("ghi")
87
+ ]
88
+ )
89
+ assert_equal(3, var.size)
90
+ assert_equal("foobar", var[0].content)
91
+ assert_equal("abc\0\0\0def", var[1].content)
92
+ assert_equal("ghi", var[2].content)
93
+ end
94
+
95
+ def test_EchoAttachmentAsBase64
96
+ log_test
97
+ var = drv.EchoAttachmentAsBase64(Attachment.new("foobar"))
98
+ assert_equal("foobar", var)
99
+ end
100
+
101
+ def test_EchoBase64AsAttachment
102
+ log_test
103
+ var = drv.EchoBase64AsAttachment("abc\0\1\2def")
104
+ assert_equal("abc\0\1\2def", var.content)
105
+ end
106
+ end
107
+
108
+ if $0 == __FILE__
109
+ name = ARGV.shift || 'localhost'
110
+ location = ARGV.shift || 'http://localhost:10080/'
111
+ TestInteropR4.setup(name, location)
112
+ end