soap4r 1.5.5.20061022

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. data/bin/wsdl2ruby.rb +131 -0
  2. data/bin/xsd2ruby.rb +82 -0
  3. data/lib/soap/XMLSchemaDatatypes.rb +9 -0
  4. data/lib/soap/XMLSchemaDatatypes1999.rb +10 -0
  5. data/lib/soap/attachment.rb +108 -0
  6. data/lib/soap/baseData.rb +992 -0
  7. data/lib/soap/cgistub.rb +9 -0
  8. data/lib/soap/charset.rb +9 -0
  9. data/lib/soap/compat.rb +182 -0
  10. data/lib/soap/driver.rb +9 -0
  11. data/lib/soap/element.rb +266 -0
  12. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  13. data/lib/soap/encodingstyle/handler.rb +109 -0
  14. data/lib/soap/encodingstyle/literalHandler.rb +241 -0
  15. data/lib/soap/encodingstyle/soapHandler.rb +598 -0
  16. data/lib/soap/generator.rb +264 -0
  17. data/lib/soap/header/handler.rb +60 -0
  18. data/lib/soap/header/handlerset.rb +70 -0
  19. data/lib/soap/header/simplehandler.rb +44 -0
  20. data/lib/soap/httpconfigloader.rb +119 -0
  21. data/lib/soap/mapping.rb +12 -0
  22. data/lib/soap/mapping/encodedregistry.rb +531 -0
  23. data/lib/soap/mapping/factory.rb +372 -0
  24. data/lib/soap/mapping/literalregistry.rb +321 -0
  25. data/lib/soap/mapping/mapping.rb +561 -0
  26. data/lib/soap/mapping/registry.rb +258 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +475 -0
  28. data/lib/soap/mapping/typeMap.rb +82 -0
  29. data/lib/soap/mapping/wsdlencodedregistry.rb +253 -0
  30. data/lib/soap/mapping/wsdlliteralregistry.rb +246 -0
  31. data/lib/soap/mappingRegistry.rb +9 -0
  32. data/lib/soap/marshal.rb +59 -0
  33. data/lib/soap/mimemessage.rb +241 -0
  34. data/lib/soap/namespace.rb +9 -0
  35. data/lib/soap/netHttpClient.rb +204 -0
  36. data/lib/soap/parser.rb +251 -0
  37. data/lib/soap/processor.rb +66 -0
  38. data/lib/soap/property.rb +333 -0
  39. data/lib/soap/proxy.rb +14 -0
  40. data/lib/soap/qname.rb +9 -0
  41. data/lib/soap/rpc/cgistub.rb +214 -0
  42. data/lib/soap/rpc/driver.rb +245 -0
  43. data/lib/soap/rpc/element.rb +330 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/proxy.rb +563 -0
  46. data/lib/soap/rpc/router.rb +602 -0
  47. data/lib/soap/rpc/rpc.rb +25 -0
  48. data/lib/soap/rpc/soaplet.rb +162 -0
  49. data/lib/soap/rpc/standaloneServer.rb +43 -0
  50. data/lib/soap/rpcRouter.rb +9 -0
  51. data/lib/soap/rpcUtils.rb +9 -0
  52. data/lib/soap/server.rb +9 -0
  53. data/lib/soap/soap.rb +150 -0
  54. data/lib/soap/standaloneServer.rb +9 -0
  55. data/lib/soap/streamHandler.rb +258 -0
  56. data/lib/soap/wsdlDriver.rb +580 -0
  57. data/lib/wsdl/binding.rb +65 -0
  58. data/lib/wsdl/data.rb +64 -0
  59. data/lib/wsdl/definitions.rb +250 -0
  60. data/lib/wsdl/documentation.rb +32 -0
  61. data/lib/wsdl/import.rb +80 -0
  62. data/lib/wsdl/importer.rb +38 -0
  63. data/lib/wsdl/info.rb +39 -0
  64. data/lib/wsdl/message.rb +54 -0
  65. data/lib/wsdl/operation.rb +175 -0
  66. data/lib/wsdl/operationBinding.rb +116 -0
  67. data/lib/wsdl/param.rb +85 -0
  68. data/lib/wsdl/parser.rb +163 -0
  69. data/lib/wsdl/part.rb +52 -0
  70. data/lib/wsdl/port.rb +84 -0
  71. data/lib/wsdl/portType.rb +75 -0
  72. data/lib/wsdl/service.rb +61 -0
  73. data/lib/wsdl/soap/address.rb +40 -0
  74. data/lib/wsdl/soap/binding.rb +49 -0
  75. data/lib/wsdl/soap/body.rb +56 -0
  76. data/lib/wsdl/soap/cgiStubCreator.rb +88 -0
  77. data/lib/wsdl/soap/classDefCreator.rb +340 -0
  78. data/lib/wsdl/soap/classDefCreatorSupport.rb +131 -0
  79. data/lib/wsdl/soap/clientSkeltonCreator.rb +93 -0
  80. data/lib/wsdl/soap/complexType.rb +166 -0
  81. data/lib/wsdl/soap/data.rb +42 -0
  82. data/lib/wsdl/soap/definitions.rb +151 -0
  83. data/lib/wsdl/soap/driverCreator.rb +110 -0
  84. data/lib/wsdl/soap/element.rb +28 -0
  85. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +117 -0
  86. data/lib/wsdl/soap/fault.rb +56 -0
  87. data/lib/wsdl/soap/header.rb +86 -0
  88. data/lib/wsdl/soap/headerfault.rb +56 -0
  89. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +188 -0
  90. data/lib/wsdl/soap/mappingRegistryCreator.rb +53 -0
  91. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +233 -0
  92. data/lib/wsdl/soap/methodDefCreator.rb +253 -0
  93. data/lib/wsdl/soap/operation.rb +122 -0
  94. data/lib/wsdl/soap/servantSkeltonCreator.rb +78 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +98 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +196 -0
  97. data/lib/wsdl/types.rb +44 -0
  98. data/lib/wsdl/wsdl.rb +23 -0
  99. data/lib/wsdl/xmlSchema/all.rb +24 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  101. data/lib/wsdl/xmlSchema/any.rb +56 -0
  102. data/lib/wsdl/xmlSchema/attribute.rb +123 -0
  103. data/lib/wsdl/xmlSchema/choice.rb +55 -0
  104. data/lib/wsdl/xmlSchema/complexContent.rb +88 -0
  105. data/lib/wsdl/xmlSchema/complexExtension.rb +104 -0
  106. data/lib/wsdl/xmlSchema/complexRestriction.rb +92 -0
  107. data/lib/wsdl/xmlSchema/complexType.rb +152 -0
  108. data/lib/wsdl/xmlSchema/content.rb +74 -0
  109. data/lib/wsdl/xmlSchema/data.rb +90 -0
  110. data/lib/wsdl/xmlSchema/element.rb +158 -0
  111. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  112. data/lib/wsdl/xmlSchema/import.rb +65 -0
  113. data/lib/wsdl/xmlSchema/importer.rb +87 -0
  114. data/lib/wsdl/xmlSchema/include.rb +54 -0
  115. data/lib/wsdl/xmlSchema/length.rb +35 -0
  116. data/lib/wsdl/xmlSchema/list.rb +48 -0
  117. data/lib/wsdl/xmlSchema/maxlength.rb +35 -0
  118. data/lib/wsdl/xmlSchema/minlength.rb +35 -0
  119. data/lib/wsdl/xmlSchema/parser.rb +166 -0
  120. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  121. data/lib/wsdl/xmlSchema/schema.rb +144 -0
  122. data/lib/wsdl/xmlSchema/sequence.rb +51 -0
  123. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  124. data/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  125. data/lib/wsdl/xmlSchema/simpleRestriction.rb +91 -0
  126. data/lib/wsdl/xmlSchema/simpleType.rb +80 -0
  127. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  128. data/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  129. data/lib/xsd/charset.rb +187 -0
  130. data/lib/xsd/codegen.rb +12 -0
  131. data/lib/xsd/codegen/classdef.rb +203 -0
  132. data/lib/xsd/codegen/commentdef.rb +34 -0
  133. data/lib/xsd/codegen/gensupport.rb +168 -0
  134. data/lib/xsd/codegen/methoddef.rb +70 -0
  135. data/lib/xsd/codegen/moduledef.rb +191 -0
  136. data/lib/xsd/datatypes.rb +1282 -0
  137. data/lib/xsd/datatypes1999.rb +20 -0
  138. data/lib/xsd/iconvcharset.rb +33 -0
  139. data/lib/xsd/mapping.rb +42 -0
  140. data/lib/xsd/namedelements.rb +124 -0
  141. data/lib/xsd/ns.rb +146 -0
  142. data/lib/xsd/qname.rb +78 -0
  143. data/lib/xsd/xmlparser.rb +61 -0
  144. data/lib/xsd/xmlparser/parser.rb +96 -0
  145. data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  146. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  147. data/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  148. data/test/16runner.rb +68 -0
  149. data/test/interopR2/README.txt +2 -0
  150. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  151. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  152. data/test/interopR2/base.rb +288 -0
  153. data/test/interopR2/client.NetRemoting.rb +17 -0
  154. data/test/interopR2/client.NetRemoting.rb.result +3410 -0
  155. data/test/interopR2/client.NetRemoting_Base.log +6279 -0
  156. data/test/interopR2/client.NetRemoting_GroupB.log +1188 -0
  157. data/test/interopR2/client.rb +1228 -0
  158. data/test/interopR2/client4S4C.rb +15 -0
  159. data/test/interopR2/client4S4C2.rb +14 -0
  160. data/test/interopR2/client4S4C2_Base.log +4955 -0
  161. data/test/interopR2/client4S4C2_GroupB.log +1000 -0
  162. data/test/interopR2/client4S4C_Base.log +4635 -0
  163. data/test/interopR2/client4S4C_GroupB.log +900 -0
  164. data/test/interopR2/clientASP.NET.rb +17 -0
  165. data/test/interopR2/clientASP.NET_Base.log +5468 -0
  166. data/test/interopR2/clientASP.NET_GroupB.log +977 -0
  167. data/test/interopR2/clientApacheAxis.rb +16 -0
  168. data/test/interopR2/clientApacheAxis_Base.log +3171 -0
  169. data/test/interopR2/clientApacheAxis_GroupB.log +498 -0
  170. data/test/interopR2/clientApacheSOAP.rb +17 -0
  171. data/test/interopR2/clientApacheSOAP_Base.log +3171 -0
  172. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  173. data/test/interopR2/clientBEAWebLogic_Base.log +3171 -0
  174. data/test/interopR2/clientBEAWebLogic_GroupB.log +498 -0
  175. data/test/interopR2/clientBase.rb +1970 -0
  176. data/test/interopR2/clientCapeConnect.rb +18 -0
  177. data/test/interopR2/clientCapeConnect_Base.log +2126 -0
  178. data/test/interopR2/clientDelphi.rb +19 -0
  179. data/test/interopR2/clientDelphi_Base.log +0 -0
  180. data/test/interopR2/clientEasySoap.rb +14 -0
  181. data/test/interopR2/clientEasySoap_Base.log +6187 -0
  182. data/test/interopR2/clientEasySoap_GroupB.log +1076 -0
  183. data/test/interopR2/clientFrontier.rb +25 -0
  184. data/test/interopR2/clientFrontier_Base.log +5188 -0
  185. data/test/interopR2/clientGLUE.rb +32 -0
  186. data/test/interopR2/clientHP.rb +13 -0
  187. data/test/interopR2/clientHP_Base.log +3171 -0
  188. data/test/interopR2/clientHP_GroupB.log +498 -0
  189. data/test/interopR2/clientJAX-RPC.rb +19 -0
  190. data/test/interopR2/clientJSOAP.rb +14 -0
  191. data/test/interopR2/clientJSOAP_Base.log +4465 -0
  192. data/test/interopR2/clientJSOAP_GroupB.log +824 -0
  193. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  194. data/test/interopR2/clientKafkaXSLT_Base.log +10299 -0
  195. data/test/interopR2/clientKafkaXSLT_GroupB.log +1739 -0
  196. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  197. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +4805 -0
  198. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +871 -0
  199. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  200. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +5076 -0
  201. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +908 -0
  202. data/test/interopR2/clientNuSOAP.rb +19 -0
  203. data/test/interopR2/clientNuSOAP_Base.log +5076 -0
  204. data/test/interopR2/clientNuSOAP_GroupB.log +958 -0
  205. data/test/interopR2/clientNuWave.rb +15 -0
  206. data/test/interopR2/clientNuWave_Base.log +2019 -0
  207. data/test/interopR2/clientOpenLink.rb +15 -0
  208. data/test/interopR2/clientOpenLink_Base.log +6171 -0
  209. data/test/interopR2/clientOpenLink_GroupB.log +1094 -0
  210. data/test/interopR2/clientOracle.rb +15 -0
  211. data/test/interopR2/clientOracle_Base.log +5594 -0
  212. data/test/interopR2/clientPEAR.rb +18 -0
  213. data/test/interopR2/clientPEAR_Base.log +6261 -0
  214. data/test/interopR2/clientPEAR_GroupB.log +1106 -0
  215. data/test/interopR2/clientPhalanx.rb +18 -0
  216. data/test/interopR2/clientPhalanx_Base.log +41036 -0
  217. data/test/interopR2/clientPhalanx_GroupB.log +6519 -0
  218. data/test/interopR2/clientSIMACE.rb +18 -0
  219. data/test/interopR2/clientSIMACE_Base.log +6171 -0
  220. data/test/interopR2/clientSIMACE_GroupB.log +1093 -0
  221. data/test/interopR2/clientSOAP4R.rb +18 -0
  222. data/test/interopR2/clientSOAP4R.rb.result +3409 -0
  223. data/test/interopR2/clientSOAP4R_Base.log +6366 -0
  224. data/test/interopR2/clientSOAP4R_GroupB.log +1112 -0
  225. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  226. data/test/interopR2/clientSQLData.rb +18 -0
  227. data/test/interopR2/clientSQLData_Base.log +4857 -0
  228. data/test/interopR2/clientSQLData_GroupB.log +770 -0
  229. data/test/interopR2/clientSilverStream.rb +17 -0
  230. data/test/interopR2/clientSilverStream_Base.log +3171 -0
  231. data/test/interopR2/clientSpray2001.rb +17 -0
  232. data/test/interopR2/clientSpray2001_Base.log +8187 -0
  233. data/test/interopR2/clientSpray2001_GroupB.log +1408 -0
  234. data/test/interopR2/clientSun.rb +19 -0
  235. data/test/interopR2/clientSun_Base.log +4641 -0
  236. data/test/interopR2/clientSun_GroupB.log +856 -0
  237. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  238. data/test/interopR2/clientVWOpentalkSoap_Base.log +5402 -0
  239. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +972 -0
  240. data/test/interopR2/clientWASP.rb +19 -0
  241. data/test/interopR2/clientWASPC.rb +18 -0
  242. data/test/interopR2/clientWASPC_Base.log +4187 -0
  243. data/test/interopR2/clientWASPC_GroupB.log +763 -0
  244. data/test/interopR2/clientWASP_Base.log +5414 -0
  245. data/test/interopR2/clientWASP_GroupB.log +970 -0
  246. data/test/interopR2/clientWebMethods.rb +15 -0
  247. data/test/interopR2/clientWebMethods_Base.log +3075 -0
  248. data/test/interopR2/clientWebMethods_GroupB.log +483 -0
  249. data/test/interopR2/clientWhiteMesa.rb +28 -0
  250. data/test/interopR2/clientWhiteMesa_Base.log +4359 -0
  251. data/test/interopR2/clientWhiteMesa_GroupB.log +808 -0
  252. data/test/interopR2/clientWingfoot.rb +15 -0
  253. data/test/interopR2/clientWingfoot_Base.log +4445 -0
  254. data/test/interopR2/clientWingfoot_GroupB.log +848 -0
  255. data/test/interopR2/clientXMLBus.rb +19 -0
  256. data/test/interopR2/clientXMLBus_Base.log +3075 -0
  257. data/test/interopR2/clientXMLBus_GroupB.log +483 -0
  258. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  259. data/test/interopR2/clientXSOAP.rb +14 -0
  260. data/test/interopR2/clientXSOAP_Base.log +4445 -0
  261. data/test/interopR2/clientZSI.rb +19 -0
  262. data/test/interopR2/clienteSOAP.rb +18 -0
  263. data/test/interopR2/clienteSOAP_Base.log +8728 -0
  264. data/test/interopR2/clientgSOAP.rb +18 -0
  265. data/test/interopR2/clientgSOAP_Base.log +4689 -0
  266. data/test/interopR2/clientgSOAP_GroupB.log +1014 -0
  267. data/test/interopR2/clientkSOAP.rb +17 -0
  268. data/test/interopR2/clientkSOAP_Base.log +5625 -0
  269. data/test/interopR2/iSimonReg.rb +112 -0
  270. data/test/interopR2/interopResultBase.rb +114 -0
  271. data/test/interopR2/interopService.rb +247 -0
  272. data/test/interopR2/result_client.NetRemoting.txt +4593 -0
  273. data/test/interopR2/rwikiInteropService.rb +105 -0
  274. data/test/interopR2/server.cgi +270 -0
  275. data/test/interopR2/server.rb +274 -0
  276. data/test/interopR2/simonReg.rb +123 -0
  277. data/test/interopR2/test.sh +49 -0
  278. data/test/interopR4/client.rb +112 -0
  279. data/test/runner.rb +9 -0
  280. data/test/sm11/classDef.rb +156 -0
  281. data/test/sm11/client.rb +542 -0
  282. data/test/sm11/driver.rb +183 -0
  283. data/test/sm11/servant.rb +1067 -0
  284. data/test/sm11/server.rb +25 -0
  285. data/test/soap/asp.net/hello.wsdl +96 -0
  286. data/test/soap/asp.net/test_aspdotnet.rb +112 -0
  287. data/test/soap/calc/calc.rb +17 -0
  288. data/test/soap/calc/calc2.rb +29 -0
  289. data/test/soap/calc/server.cgi +13 -0
  290. data/test/soap/calc/server.rb +17 -0
  291. data/test/soap/calc/server2.rb +20 -0
  292. data/test/soap/calc/test_calc.rb +49 -0
  293. data/test/soap/calc/test_calc2.rb +53 -0
  294. data/test/soap/calc/test_calc_cgi.rb +69 -0
  295. data/test/soap/fault/test_customfault.rb +58 -0
  296. data/test/soap/header/server.cgi +119 -0
  297. data/test/soap/header/test_authheader.rb +240 -0
  298. data/test/soap/header/test_authheader_cgi.rb +121 -0
  299. data/test/soap/header/test_simplehandler.rb +116 -0
  300. data/test/soap/helloworld/hw_s.rb +16 -0
  301. data/test/soap/helloworld/test_helloworld.rb +41 -0
  302. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  303. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  304. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  305. data/test/soap/literalArrayMapping/test_definedarray.rb +36 -0
  306. data/test/soap/marshal/marshaltestlib.rb +494 -0
  307. data/test/soap/marshal/test_digraph.rb +56 -0
  308. data/test/soap/marshal/test_marshal.rb +26 -0
  309. data/test/soap/marshal/test_struct.rb +47 -0
  310. data/test/soap/ssl/README +1 -0
  311. data/test/soap/ssl/ca.cert +23 -0
  312. data/test/soap/ssl/client.cert +19 -0
  313. data/test/soap/ssl/client.key +15 -0
  314. data/test/soap/ssl/server.cert +19 -0
  315. data/test/soap/ssl/server.key +15 -0
  316. data/test/soap/ssl/sslsvr.rb +57 -0
  317. data/test/soap/ssl/subca.cert +21 -0
  318. data/test/soap/ssl/test_ssl.rb +245 -0
  319. data/test/soap/struct/test_struct.rb +77 -0
  320. data/test/soap/styleuse/client.rb +20 -0
  321. data/test/soap/styleuse/server.rb +86 -0
  322. data/test/soap/swa/test_file.rb +73 -0
  323. data/test/soap/test_basetype.rb +976 -0
  324. data/test/soap/test_custommap.rb +108 -0
  325. data/test/soap/test_empty.rb +79 -0
  326. data/test/soap/test_envelopenamespace.rb +92 -0
  327. data/test/soap/test_httpconfigloader.rb +39 -0
  328. data/test/soap/test_mapping.rb +59 -0
  329. data/test/soap/test_no_indent.rb +86 -0
  330. data/test/soap/test_property.rb +424 -0
  331. data/test/soap/test_response_as_xml.rb +95 -0
  332. data/test/soap/test_soapelement.rb +120 -0
  333. data/test/soap/test_streamhandler.rb +262 -0
  334. data/test/soap/test_styleuse.rb +333 -0
  335. data/test/soap/wsdlDriver/README.txt +2 -0
  336. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  337. data/test/soap/wsdlDriver/document.wsdl +54 -0
  338. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  339. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  340. data/test/soap/wsdlDriver/test_calc.rb +100 -0
  341. data/test/soap/wsdlDriver/test_document.rb +78 -0
  342. data/test/soap/wsdlDriver/test_simpletype.rb +87 -0
  343. data/test/wsdl/abstract/abstract.wsdl +97 -0
  344. data/test/wsdl/abstract/test_abstract.rb +130 -0
  345. data/test/wsdl/any/any.wsdl +51 -0
  346. data/test/wsdl/any/expectedDriver.rb +46 -0
  347. data/test/wsdl/any/expectedEcho.rb +18 -0
  348. data/test/wsdl/any/expectedService.rb +42 -0
  349. data/test/wsdl/any/test_any.rb +193 -0
  350. data/test/wsdl/axisArray/axisArray.wsdl +60 -0
  351. data/test/wsdl/axisArray/itemList.rb +14 -0
  352. data/test/wsdl/axisArray/test_axisarray.rb +69 -0
  353. data/test/wsdl/choice/choice.wsdl +91 -0
  354. data/test/wsdl/choice/test_choice.rb +134 -0
  355. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  356. data/test/wsdl/complexcontent/test_echo.rb +101 -0
  357. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  358. data/test/wsdl/datetime/datetime.rb +0 -0
  359. data/test/wsdl/datetime/datetime.wsdl +45 -0
  360. data/test/wsdl/datetime/datetimeServant.rb +21 -0
  361. data/test/wsdl/datetime/test_datetime.rb +82 -0
  362. data/test/wsdl/document/array/double.wsdl +72 -0
  363. data/test/wsdl/document/array/test_array.rb +117 -0
  364. data/test/wsdl/document/document.wsdl +74 -0
  365. data/test/wsdl/document/number.wsdl +54 -0
  366. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  367. data/test/wsdl/document/test_nosoapaction.rb +109 -0
  368. data/test/wsdl/document/test_number.rb +99 -0
  369. data/test/wsdl/document/test_rpc.rb +211 -0
  370. data/test/wsdl/emptycomplextype.wsdl +31 -0
  371. data/test/wsdl/list/list.wsdl +93 -0
  372. data/test/wsdl/list/test_list.rb +134 -0
  373. data/test/wsdl/map/map.wsdl +92 -0
  374. data/test/wsdl/map/map.xml +43 -0
  375. data/test/wsdl/map/test_map.rb +99 -0
  376. data/test/wsdl/marshal/person.wsdl +21 -0
  377. data/test/wsdl/marshal/person_org.rb +18 -0
  378. data/test/wsdl/marshal/test_wsdlmarshal.rb +79 -0
  379. data/test/wsdl/multiplefault.wsdl +68 -0
  380. data/test/wsdl/overload/overload.wsdl +80 -0
  381. data/test/wsdl/overload/test_overload.rb +118 -0
  382. data/test/wsdl/qualified/lp.wsdl +47 -0
  383. data/test/wsdl/qualified/lp.xsd +26 -0
  384. data/test/wsdl/qualified/np.wsdl +51 -0
  385. data/test/wsdl/qualified/test_qualified.rb +145 -0
  386. data/test/wsdl/qualified/test_unqualified.rb +159 -0
  387. data/test/wsdl/raa/RAA.rb +120 -0
  388. data/test/wsdl/raa/RAAServant.rb +107 -0
  389. data/test/wsdl/raa/RAAService.rb +120 -0
  390. data/test/wsdl/raa/README.txt +8 -0
  391. data/test/wsdl/raa/raa.wsdl +264 -0
  392. data/test/wsdl/raa/server.rb +103 -0
  393. data/test/wsdl/raa/test_raa.rb +91 -0
  394. data/test/wsdl/ref/expectedProduct.rb +158 -0
  395. data/test/wsdl/ref/product.wsdl +147 -0
  396. data/test/wsdl/ref/test_ref.rb +289 -0
  397. data/test/wsdl/rpc/rpc.wsdl +83 -0
  398. data/test/wsdl/rpc/test-rpc-lit.wsdl +364 -0
  399. data/test/wsdl/rpc/test_rpc.rb +173 -0
  400. data/test/wsdl/rpc/test_rpc_lit.rb +407 -0
  401. data/test/wsdl/simplecontent/simplecontent.wsdl +83 -0
  402. data/test/wsdl/simplecontent/test_simplecontent.rb +116 -0
  403. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  404. data/test/wsdl/simpletype/rpc/expectedDriver.rb +55 -0
  405. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +19 -0
  406. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  407. data/test/wsdl/simpletype/rpc/expectedService.rb +51 -0
  408. data/test/wsdl/simpletype/rpc/rpc.wsdl +80 -0
  409. data/test/wsdl/simpletype/rpc/test_rpc.rb +62 -0
  410. data/test/wsdl/simpletype/simpletype.wsdl +95 -0
  411. data/test/wsdl/simpletype/test_simpletype.rb +99 -0
  412. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  413. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  414. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +19 -0
  415. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  416. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +55 -0
  417. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  418. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +44 -0
  419. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +51 -0
  420. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  421. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +31 -0
  422. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  423. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  424. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  425. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +96 -0
  426. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +79 -0
  427. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  428. data/test/wsdl/soaptype/test_soaptype.rb +160 -0
  429. data/test/wsdl/test_emptycomplextype.rb +21 -0
  430. data/test/wsdl/test_fault.rb +50 -0
  431. data/test/wsdl/test_multiplefault.rb +39 -0
  432. data/test/xsd/codegen/test_classdef.rb +214 -0
  433. data/test/xsd/noencoding.xml +4 -0
  434. data/test/xsd/test_noencoding.rb +32 -0
  435. data/test/xsd/test_ns.rb +20 -0
  436. data/test/xsd/test_xmlschemaparser.rb +22 -0
  437. data/test/xsd/test_xsd.rb +1523 -0
  438. data/test/xsd/xmllang.xml +43 -0
  439. data/test/xsd/xmlschema.xml +12 -0
  440. metadata +539 -0
@@ -0,0 +1,1228 @@
1
+ $KCODE = 'EUC'
2
+
3
+ require 'test/unit'
4
+ require 'soap/rpc/driver'
5
+ require 'soap/mapping'
6
+ require 'base'
7
+ require 'interopResultBase'
8
+ #XSD::Charset.encoding = 'EUC'
9
+
10
+ class Float
11
+ Precision = 5
12
+ def ==(rhs)
13
+ if rhs.is_a?(Float)
14
+ if self.nan? and rhs.nan?
15
+ true
16
+ elsif self.infinite? == rhs.infinite?
17
+ true
18
+ elsif (rhs - self).abs <= (10 ** (- Precision))
19
+ true
20
+ else
21
+ false
22
+ end
23
+ else
24
+ false
25
+ end
26
+ end
27
+ end
28
+
29
+ class FakeFloat < SOAP::SOAPFloat
30
+ def initialize(str)
31
+ super()
32
+ @data = str
33
+ end
34
+
35
+ def to_s
36
+ @data.to_s
37
+ end
38
+ end
39
+
40
+ class FakeDateTime < SOAP::SOAPDateTime
41
+ def initialize(str)
42
+ super()
43
+ @data = str
44
+ end
45
+
46
+ def to_s
47
+ @data.to_s
48
+ end
49
+ end
50
+
51
+ class FakeDecimal < SOAP::SOAPDecimal
52
+ def initialize(str)
53
+ super()
54
+ @data = str
55
+ end
56
+
57
+ def to_s
58
+ @data.to_s
59
+ end
60
+ end
61
+
62
+ class FakeInt < SOAP::SOAPInt
63
+ def initialize(str)
64
+ super()
65
+ @data = str
66
+ end
67
+
68
+ def to_s
69
+ @data.to_s
70
+ end
71
+ end
72
+
73
+ class SOAPBuildersTest < Test::Unit::TestCase
74
+ include SOAP
75
+ include SOAPBuildersInterop
76
+
77
+ NegativeZero = (-1.0 / (1.0 / 0.0))
78
+
79
+ class << self
80
+ include SOAP
81
+ def setup(name, location)
82
+ setup_log(name)
83
+ setup_drv(location)
84
+ end
85
+
86
+ def teardown
87
+ end
88
+
89
+ private
90
+
91
+ def setup_log(name)
92
+ filename = File.basename($0).sub(/\.rb$/, '') << '.log'
93
+ @@log = File.open(filename, 'w')
94
+ @@log << "File: #{ filename } - Wiredumps for SOAP4R client / #{ name } server.\n"
95
+ @@log << "Date: #{ Time.now }\n\n"
96
+ end
97
+
98
+ def setup_drv(location)
99
+ namespace = InterfaceNS
100
+ soap_action = InterfaceNS
101
+ @@drv = RPC::Driver.new(location, namespace, soap_action)
102
+ @@drv.mapping_registry = SOAPBuildersInterop::MappingRegistry
103
+ @@drv.wiredump_dev = @@log
104
+ method_def(@@drv, soap_action)
105
+ end
106
+
107
+ def method_def(drv, soap_action = nil)
108
+ do_method_def(drv, SOAPBuildersInterop::MethodsBase, soap_action)
109
+ do_method_def(drv, SOAPBuildersInterop::MethodsGroupB, soap_action)
110
+ end
111
+
112
+ def do_method_def(drv, defs, soap_action = nil)
113
+ defs.each do |name, *params|
114
+ drv.add_rpc_operation(
115
+ XSD::QName.new(InterfaceNS, name), soap_action, name, params)
116
+ end
117
+ end
118
+ end
119
+
120
+ def setup
121
+ end
122
+
123
+ def teardown
124
+ end
125
+
126
+ def drv
127
+ @@drv
128
+ end
129
+
130
+ def log_test
131
+ /`([^']+)'/ =~ caller(1)[0]
132
+ title = $1
133
+ title = "==== " + title + " " << "=" * (title.length > 72 ? 0 : (72 - title.length))
134
+ @@log << "#{title}\n\n"
135
+ end
136
+
137
+ def assert_exception(klass_or_module)
138
+ begin
139
+ yield
140
+ assert(false, "Exception was not raised.")
141
+ rescue Exception => e
142
+ if klass_or_module.is_a?(Module)
143
+ assert_kind_of(klass_or_module, e)
144
+ elsif klass_or_module.is_a?(Class)
145
+ assert_instance_of(klass_or_module, e)
146
+ else
147
+ assert(false, "Must be a klass or a mogule.")
148
+ end
149
+ end
150
+ end
151
+
152
+ def inspect_with_id(obj)
153
+ case obj
154
+ when Array
155
+ obj.collect { |ele| inspect_with_id(ele) }
156
+ else
157
+ # String#== compares content of args.
158
+ "#{ obj.class }##{ obj.__id__ }"
159
+ end
160
+ end
161
+
162
+ def dump_result(title, result, resultStr)
163
+ @@test_result.add(
164
+ SOAPBuildersInteropResult::TestResult.new(
165
+ title,
166
+ result,
167
+ resultStr,
168
+ $wireDumpDev.dup
169
+ )
170
+ )
171
+ $wireDumpLogFile << "Result: #{ resultStr || 'OK' }\n\n"
172
+ $wireDumpLogFile << $wireDumpDev
173
+ $wireDumpLogFile << "\n"
174
+
175
+ $wireDumpDev.replace('')
176
+ end
177
+
178
+ def test_echoVoid
179
+ log_test
180
+ var = drv.echoVoid()
181
+ assert_equal(nil, var)
182
+ end
183
+
184
+ def test_echoString
185
+ log_test
186
+ arg = "SOAP4R Interoperability Test"
187
+ var = drv.echoString(arg)
188
+ assert_equal(arg, var)
189
+ end
190
+
191
+ def test_echoString_Entity_reference
192
+ log_test
193
+ arg = "<>\"& &lt;&gt;&quot;&amp; &amp&amp;><<<"
194
+ var = drv.echoString(arg)
195
+ assert_equal(arg, var)
196
+ end
197
+
198
+ def test_echoString_haracter_reference
199
+ log_test
200
+ arg = "\x20&#x20;\040&#32;\x7f&#x7f;\177&#127;"
201
+ tobe = " \177\177\177\177"
202
+ var = drv.echoString(SOAP::SOAPRawString.new(arg))
203
+ assert_equal(tobe, var)
204
+ end
205
+
206
+ def test_echoString_Leading_and_trailing_whitespace
207
+ log_test
208
+ arg = " SOAP4R\nInteroperability\nTest "
209
+ var = drv.echoString(arg)
210
+ assert_equal(arg, var)
211
+ end
212
+
213
+ def test_echoString_EUC_encoded
214
+ log_test
215
+ arg = "Hello (���ܸ�Japanese) ����ˤ���"
216
+ var = drv.echoString(arg)
217
+ assert_equal(arg, var)
218
+ end
219
+
220
+ def test_echoString_EUC_encoded_again
221
+ log_test
222
+ arg = "Hello (���ܸ�Japanese) ����ˤ���"
223
+ var = drv.echoString(arg)
224
+ assert_equal(arg, var)
225
+ end
226
+
227
+ def test_echoString_SJIS_encoded
228
+ log_test
229
+ arg = "Hello (���ܸ�Japanese) ����ˤ���"
230
+ require 'nkf'
231
+ arg = NKF.nkf("-sm0", arg)
232
+ drv.options["soap.mapping.external_ces"] = 'SJIS'
233
+ begin
234
+ var = drv.echoString(arg)
235
+ assert_equal(arg, var)
236
+ ensure
237
+ drv.options["soap.mapping.external_ces"] = nil
238
+ end
239
+ end
240
+
241
+ def test_echoString_empty
242
+ log_test
243
+ arg = ''
244
+ var = drv.echoString(arg)
245
+ assert_equal(arg, var)
246
+ end
247
+
248
+ def test_echoString_space
249
+ log_test
250
+ arg = ' '
251
+ var = drv.echoString(arg)
252
+ assert_equal(arg, var)
253
+ end
254
+
255
+ def test_echoString_whitespaces
256
+ log_test
257
+ arg = "\r \n \t \r \n \t"
258
+ var = drv.echoString(arg)
259
+ assert_equal(arg, var)
260
+ end
261
+
262
+ def test_echoStringArray
263
+ log_test
264
+ arg = StringArray["SOAP4R\n", " Interoperability ", "\tTest\t"]
265
+ var = drv.echoStringArray(arg)
266
+ assert_equal(arg, var)
267
+ end
268
+
269
+ def test_echoStringArray_multi_ref
270
+ log_test
271
+ str1 = "SOAP4R"
272
+ str2 = "SOAP4R"
273
+ arg = StringArray[str1, str2, str1]
274
+ var = drv.echoStringArray(arg)
275
+ assert_equal(arg, var)
276
+ end
277
+
278
+ def test_echoStringArray_multi_ref_idmatch
279
+ log_test
280
+ str1 = "SOAP4R"
281
+ str2 = "SOAP4R"
282
+ arg = StringArray[str1, str2, str1]
283
+ var = drv.echoStringArray(arg)
284
+ assert_equal(inspect_with_id(var[0]), inspect_with_id(var[2]))
285
+ end
286
+
287
+ def test_echoStringArray_empty_multi_ref_idmatch
288
+ log_test
289
+ str1 = ""
290
+ str2 = ""
291
+ arg = StringArray[str1, str2, str1]
292
+ var = drv.echoStringArray(arg)
293
+ assert_equal(inspect_with_id(var[0]), inspect_with_id(var[2]))
294
+ end
295
+
296
+ def test_echoInteger_123
297
+ log_test
298
+ arg = 123
299
+ var = drv.echoInteger(arg)
300
+ assert_equal(arg, var)
301
+ end
302
+
303
+ def test_echoInteger_2147483647
304
+ log_test
305
+ arg = 2147483647
306
+ var = drv.echoInteger(arg)
307
+ assert_equal(arg, var)
308
+ end
309
+
310
+ def test_echoInteger_negative_2147483648
311
+ log_test
312
+ arg = -2147483648
313
+ var = drv.echoInteger(arg)
314
+ assert_equal(arg, var)
315
+ end
316
+
317
+ def test_echoInteger_2147483648_junk
318
+ log_test
319
+ assert_exception(SOAP::RPC::ServerException) do
320
+ arg = FakeInt.new("2147483648")
321
+ var = drv.echoInteger(arg)
322
+ end
323
+ end
324
+
325
+ def test_echoInteger_negative_2147483649_junk
326
+ log_test
327
+ assert_exception(SOAP::RPC::ServerException) do
328
+ arg = FakeInt.new("-2147483649")
329
+ var = drv.echoInteger(arg)
330
+ end
331
+ end
332
+
333
+ def test_echoInteger_0_0_junk
334
+ log_test
335
+ assert_exception(SOAP::RPC::ServerException) do
336
+ arg = FakeInt.new("0.0")
337
+ var = drv.echoInteger(arg)
338
+ end
339
+ end
340
+
341
+ def test_echoInteger_negative_5_2_junk
342
+ log_test
343
+ assert_exception(SOAP::RPC::ServerException) do
344
+ arg = FakeInt.new("-5.2")
345
+ var = drv.echoInteger(arg)
346
+ end
347
+ end
348
+
349
+ def test_echoInteger_0_000000000a_junk
350
+ log_test
351
+ assert_exception(SOAP::RPC::ServerException) do
352
+ arg = FakeInt.new("0.000000000a")
353
+ var = drv.echoInteger(arg)
354
+ end
355
+ end
356
+
357
+ def test_echoInteger_plus_minus_5_junk
358
+ log_test
359
+ assert_exception(SOAP::RPC::ServerException) do
360
+ arg = FakeInt.new("+-5")
361
+ var = drv.echoInteger(arg)
362
+ end
363
+ end
364
+
365
+ def test_echoIntegerArray
366
+ log_test
367
+ arg = IntArray[1, 2, 3]
368
+ var = drv.echoIntegerArray(arg)
369
+ assert_equal(arg, var)
370
+ end
371
+
372
+ def test_echoIntegerArray_empty
373
+ log_test
374
+ arg = SOAP::SOAPArray.new(SOAP::ValueArrayName, 1, XSD::XSDInt::Type)
375
+ var = drv.echoIntegerArray(arg)
376
+ assert_equal([], var)
377
+ end
378
+
379
+ def test_echoFloat
380
+ log_test
381
+ arg = 3.14159265358979
382
+ var = drv.echoFloat(SOAPFloat.new(arg))
383
+ assert_equal(arg, var)
384
+ end
385
+
386
+ def test_echoFloat_scientific_notation
387
+ log_test
388
+ arg = 12.34e36
389
+ var = drv.echoFloat(SOAPFloat.new(arg))
390
+ assert_equal(arg, var)
391
+ end
392
+
393
+ def test_echoFloat_scientific_notation_2
394
+ log_test
395
+ arg = FakeFloat.new("12.34e36")
396
+ var = drv.echoFloat(SOAPFloat.new(arg))
397
+ assert_equal(12.34e36, var)
398
+ end
399
+
400
+ def test_echoFloat_scientific_notation_3
401
+ log_test
402
+ arg = FakeFloat.new("12.34E+36")
403
+ var = drv.echoFloat(SOAPFloat.new(arg))
404
+ assert_equal(12.34e36, var)
405
+ end
406
+
407
+ def test_echoFloat_scientific_notation_4
408
+ log_test
409
+ arg = FakeFloat.new("-1.4E")
410
+ var = drv.echoFloat(SOAPFloat.new(arg))
411
+ assert_equal(1.4, var)
412
+ end
413
+
414
+ def test_echoFloat_positive_lower_boundary
415
+ log_test
416
+ arg = 1.4e-45
417
+ var = drv.echoFloat(SOAPFloat.new(arg))
418
+ assert_equal(arg, var)
419
+ end
420
+
421
+ def test_echoFloat_negative_lower_boundary
422
+ log_test
423
+ arg = -1.4e-45
424
+ var = drv.echoFloat(SOAPFloat.new(arg))
425
+ assert_equal(arg, var)
426
+ end
427
+
428
+ def test_echoFloat_special_values_positive_0
429
+ log_test
430
+ arg = 0.0
431
+ var = drv.echoFloat(SOAPFloat.new(arg))
432
+ assert_equal(arg, var)
433
+ end
434
+
435
+ def test_echoFloat_special_values_negative_0
436
+ log_test
437
+ arg = NegativeZero
438
+ var = drv.echoFloat(SOAPFloat.new(arg))
439
+ assert_equal(arg, var)
440
+ end
441
+
442
+ def test_echoFloat_special_values_NaN
443
+ log_test
444
+ arg = 0.0/0.0
445
+ var = drv.echoFloat(SOAPFloat.new(arg))
446
+ assert_equal(arg, var)
447
+ end
448
+
449
+ def test_echoFloat_special_values_positive_INF
450
+ log_test
451
+ arg = 1.0/0.0
452
+ var = drv.echoFloat(SOAPFloat.new(arg))
453
+ assert_equal(arg, var)
454
+ end
455
+
456
+ def test_echoFloat_special_values_negative_INF
457
+ log_test
458
+ arg = -1.0/0.0
459
+ var = drv.echoFloat(SOAPFloat.new(arg))
460
+ assert_equal(arg, var)
461
+ end
462
+
463
+ def test_echoFloat_0_000a_junk
464
+ log_test
465
+ assert_exception(SOAP::RPC::ServerException) do
466
+ arg = FakeFloat.new("0.0000000000000000a")
467
+ var = drv.echoFloat(arg)
468
+ end
469
+ end
470
+
471
+ def test_echoFloat_00a_0001_junk
472
+ log_test
473
+ assert_exception(SOAP::RPC::ServerException) do
474
+ arg = FakeFloat.new("00a.000000000000001")
475
+ var = drv.echoFloat(arg)
476
+ end
477
+ end
478
+
479
+ def test_echoFloat_plus_minus_5_junk
480
+ log_test
481
+ assert_exception(SOAP::RPC::ServerException) do
482
+ arg = FakeFloat.new("+-5")
483
+ var = drv.echoFloat(arg)
484
+ end
485
+ end
486
+
487
+ def test_echoFloat_5_0_junk
488
+ log_test
489
+ assert_exception(SOAP::RPC::ServerException) do
490
+ arg = FakeFloat.new("5_0")
491
+ var = drv.echoFloat(arg)
492
+ end
493
+ end
494
+
495
+ def test_echoFloatArray
496
+ log_test
497
+ arg = FloatArray[SOAPFloat.new(0.0001), SOAPFloat.new(1000.0),
498
+ SOAPFloat.new(0.0)]
499
+ var = drv.echoFloatArray(arg)
500
+ assert_equal(arg.collect { |ele| ele.data }, var)
501
+ end
502
+
503
+ def test_echoFloatArray_special_values_NaN_positive_INF_negative_INF
504
+ log_test
505
+ nan = SOAPFloat.new(0.0/0.0)
506
+ inf = SOAPFloat.new(1.0/0.0)
507
+ inf_ = SOAPFloat.new(-1.0/0.0)
508
+ arg = FloatArray[nan, inf, inf_]
509
+ var = drv.echoFloatArray(arg)
510
+ assert_equal(arg.collect { |ele| ele.data }, var)
511
+ end
512
+
513
+ def test_echoStruct
514
+ log_test
515
+ arg = SOAPStruct.new(1, 1.1, "a")
516
+ var = drv.echoStruct(arg)
517
+ assert_equal(arg, var)
518
+ end
519
+
520
+ def test_echoStruct_nil_members
521
+ log_test
522
+ arg = SOAPStruct.new(nil, nil, nil)
523
+ var = drv.echoStruct(arg)
524
+ assert_equal(arg, var)
525
+ end
526
+
527
+ def test_echoStructArray
528
+ log_test
529
+ s1 = SOAPStruct.new(1, 1.1, "a")
530
+ s2 = SOAPStruct.new(2, 2.2, "b")
531
+ s3 = SOAPStruct.new(3, 3.3, "c")
532
+ arg = SOAPStructArray[s1, s2, s3]
533
+ var = drv.echoStructArray(arg)
534
+ assert_equal(arg, var)
535
+ end
536
+
537
+ def test_echoStructArray_anyType_Array
538
+ log_test
539
+ s1 = SOAPStruct.new(1, 1.1, "a")
540
+ s2 = SOAPStruct.new(2, 2.2, "b")
541
+ s3 = SOAPStruct.new(3, 3.3, "c")
542
+ arg = [s1, s2, s3]
543
+ var = drv.echoStructArray(arg)
544
+ assert_equal(arg, var)
545
+ end
546
+
547
+ def test_echoStructArray_multi_ref
548
+ log_test
549
+ s1 = SOAPStruct.new(1, 1.1, "a")
550
+ s2 = SOAPStruct.new(2, 2.2, "b")
551
+ arg = SOAPStructArray[s1, s1, s2]
552
+ var = drv.echoStructArray(arg)
553
+ assert_equal(arg, var)
554
+ end
555
+
556
+ def test_echoStructArray_multi_ref_idmatch
557
+ log_test
558
+ s1 = SOAPStruct.new(1, 1.1, "a")
559
+ s2 = SOAPStruct.new(2, 2.2, "b")
560
+ arg = SOAPStructArray[s1, s1, s2]
561
+ var = drv.echoStructArray(arg)
562
+ assert_equal(inspect_with_id(var[0]), inspect_with_id(var[1]))
563
+ end
564
+
565
+ def test_echoStructArray_anyType_Array_multi_ref_idmatch
566
+ log_test
567
+ s1 = SOAPStruct.new(1, 1.1, "a")
568
+ s2 = SOAPStruct.new(2, 2.2, "b")
569
+ arg = [s1, s2, s2]
570
+ var = drv.echoStructArray(arg)
571
+ assert_equal(inspect_with_id(var[1]), inspect_with_id(var[2]))
572
+ end
573
+
574
+ def test_echoStructArray_multi_ref_idmatch_varString_of_elem1_varString_of_elem2
575
+ log_test
576
+ str1 = "a"
577
+ str2 = "a"
578
+ s1 = SOAPStruct.new(1, 1.1, str1)
579
+ s2 = SOAPStruct.new(2, 2.2, str1)
580
+ s3 = SOAPStruct.new(3, 3.3, str2)
581
+ arg = SOAPStructArray[s1, s2, s3]
582
+ var = drv.echoStructArray(arg)
583
+ assert_equal(inspect_with_id(var[0].varString), inspect_with_id(var[1].varString))
584
+ end
585
+
586
+ def test_echoStructArray_anyType_Array_multi_ref_idmatch_varString_of_elem2_varString_of_elem3
587
+ log_test
588
+ str1 = "b"
589
+ str2 = "b"
590
+ s1 = SOAPStruct.new(1, 1.1, str2)
591
+ s2 = SOAPStruct.new(2, 2.2, str1)
592
+ s3 = SOAPStruct.new(3, 3.3, str1)
593
+ arg = [s1, s2, s3]
594
+ var = drv.echoStructArray(arg)
595
+ assert_equal(inspect_with_id(var[1].varString), inspect_with_id(var[2].varString))
596
+ end
597
+
598
+ def test_echoDate_now
599
+ log_test
600
+ t = Time.now.gmtime
601
+ arg = DateTime.new(t.year, t.mon, t.mday, t.hour, t.min, t.sec)
602
+ var = drv.echoDate(arg)
603
+ assert_equal(arg.to_s, var.to_s)
604
+ end
605
+
606
+ def test_echoDate_before_1970
607
+ log_test
608
+ t = Time.now.gmtime
609
+ arg = DateTime.new(1, 1, 1, 0, 0, 0)
610
+ var = drv.echoDate(arg)
611
+ assert_equal(arg.to_s, var.to_s)
612
+ end
613
+
614
+ def test_echoDate_after_2038
615
+ log_test
616
+ t = Time.now.gmtime
617
+ arg = DateTime.new(2038, 12, 31, 0, 0, 0)
618
+ var = drv.echoDate(arg)
619
+ assert_equal(arg.to_s, var.to_s)
620
+ end
621
+
622
+ def test_echoDate_negative_10_01_01T00_00_00Z
623
+ log_test
624
+ t = Time.now.gmtime
625
+ arg = DateTime.new(-10, 1, 1, 0, 0, 0)
626
+ var = drv.echoDate(arg)
627
+ assert_equal(arg.to_s, var.to_s)
628
+ end
629
+
630
+ def test_echoDate_time_precision_msec
631
+ log_test
632
+ arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40.012')
633
+ argDate = arg.data
634
+ var = drv.echoDate(arg)
635
+ assert_equal(argDate, var)
636
+ end
637
+
638
+ def test_echoDate_time_precision_long
639
+ log_test
640
+ arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40.0000000000123456789012345678900000000000')
641
+ argDate = arg.data
642
+ var = drv.echoDate(arg)
643
+ assert_equal(argDate, var)
644
+ end
645
+
646
+ def test_echoDate_positive_TZ
647
+ log_test
648
+ arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40+07:00')
649
+ argNormalized = DateTime.new(2001, 6, 16, 18, 13, 40)
650
+ var = drv.echoDate(arg)
651
+ assert_equal(argNormalized, var)
652
+ end
653
+
654
+ def test_echoDate_negative_TZ
655
+ log_test
656
+ arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40-07:00')
657
+ argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
658
+ var = drv.echoDate(arg)
659
+ assert_equal(argNormalized, var)
660
+ end
661
+
662
+ def test_echoDate_positive_00_00_TZ
663
+ log_test
664
+ arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40+00:00')
665
+ argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
666
+ var = drv.echoDate(arg)
667
+ assert_equal(argNormalized, var)
668
+ end
669
+
670
+ def test_echoDate_negative_00_00_TZ
671
+ log_test
672
+ arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40-00:00')
673
+ argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
674
+ var = drv.echoDate(arg)
675
+ assert_equal(argNormalized, var)
676
+ end
677
+
678
+ def test_echoDate_min_TZ
679
+ log_test
680
+ arg = SOAP::SOAPDateTime.new('2001-06-16T00:00:01+00:01')
681
+ argNormalized = DateTime.new(2001, 6, 15, 23, 59, 1)
682
+ var = drv.echoDate(arg)
683
+ assert_equal(argNormalized, var)
684
+ end
685
+
686
+ def test_echoDate_year_9999
687
+ log_test
688
+ arg = SOAP::SOAPDateTime.new('10000-06-16T18:13:40-07:00')
689
+ argNormalized = DateTime.new(10000, 6, 17, 1, 13, 40)
690
+ var = drv.echoDate(arg)
691
+ assert_equal(argNormalized, var)
692
+ end
693
+
694
+ def test_echoDate_year_0
695
+ log_test
696
+ arg = SOAP::SOAPDateTime.new('-0001-06-16T18:13:40-07:00')
697
+ argNormalized = DateTime.new(0, 6, 17, 1, 13, 40)
698
+ var = drv.echoDate(arg)
699
+ assert_equal(argNormalized, var)
700
+ end
701
+
702
+ def test_echoDate_year_4713
703
+ log_test
704
+ arg = SOAP::SOAPDateTime.new('-4713-01-01T12:00:00')
705
+ argNormalized = DateTime.new(-4712, 1, 1, 12, 0, 0)
706
+ var = drv.echoDate(arg)
707
+ assert_equal(argNormalized, var)
708
+ end
709
+
710
+ def test_echoDate_year_0000_junk
711
+ log_test
712
+ assert_exception(SOAP::RPC::ServerException) do
713
+ arg = FakeDateTime.new("0000-05-18T16:52:20Z")
714
+ var = drv.echoDate(arg)
715
+ end
716
+ end
717
+
718
+ def test_echoDate_year_nn_junk
719
+ log_test
720
+ assert_exception(SOAP::RPC::ServerException) do
721
+ arg = FakeDateTime.new("05-05-18T16:52:20Z")
722
+ var = drv.echoDate(arg)
723
+ end
724
+ end
725
+
726
+ def test_echoDate_no_day_part_junk
727
+ log_test
728
+ assert_exception(SOAP::RPC::ServerException) do
729
+ arg = FakeDateTime.new("2002-05T16:52:20Z")
730
+ var = drv.echoDate(arg)
731
+ end
732
+ end
733
+
734
+ def test_echoDate_no_sec_part_junk
735
+ log_test
736
+ assert_exception(SOAP::RPC::ServerException) do
737
+ arg = FakeDateTime.new("2002-05-18T16:52Z")
738
+ var = drv.echoDate(arg)
739
+ end
740
+ end
741
+
742
+ def test_echoDate_empty_junk
743
+ log_test
744
+ assert_exception(SOAP::RPC::ServerException) do
745
+ arg = FakeDateTime.new("")
746
+ var = drv.echoDate(arg)
747
+ end
748
+ end
749
+
750
+ def test_echoBase64_xsd_base64Binary
751
+ log_test
752
+ str = "Hello (���ܸ�Japanese) ����ˤ���"
753
+ arg = SOAP::SOAPBase64.new(str)
754
+ arg.as_xsd # Force xsd:base64Binary instead of soap-enc:base64
755
+ var = drv.echoBase64(arg)
756
+ assert_equal(str, var)
757
+ end
758
+
759
+ def test_echoBase64_xsd_base64Binary_empty
760
+ log_test
761
+ str = ""
762
+ arg = SOAP::SOAPBase64.new(str)
763
+ arg.as_xsd # Force xsd:base64Binary instead of soap-enc:base64
764
+ var = drv.echoBase64(arg)
765
+ assert_equal(str, var)
766
+ end
767
+
768
+ def test_echoBase64_SOAP_ENC_base64
769
+ log_test
770
+ str = "Hello (���ܸ�Japanese) ����ˤ���"
771
+ arg = SOAP::SOAPBase64.new(str)
772
+ var = drv.echoBase64(arg)
773
+ assert_equal(str, var)
774
+ end
775
+
776
+ def test_echoBase64_0
777
+ log_test
778
+ str = "\0"
779
+ arg = SOAP::SOAPBase64.new(str)
780
+ var = drv.echoBase64(arg)
781
+ assert_equal(str, var)
782
+ end
783
+
784
+ def test_echoBase64_0a_0
785
+ log_test
786
+ str = "a\0b\0\0c\0\0\0"
787
+ arg = SOAP::SOAPBase64.new(str)
788
+ var = drv.echoBase64(arg)
789
+ assert_equal(str, var)
790
+ end
791
+
792
+ def test_echoBase64_junk
793
+ log_test
794
+ assert_exception(SOAP::RPC::ServerException) do
795
+ arg = SOAP::SOAPBase64.new("dummy")
796
+ arg.instance_eval { @data = '-' }
797
+ var = drv.echoBase64(arg)
798
+ end
799
+ end
800
+
801
+ def test_echoHexBinary
802
+ log_test
803
+ str = "Hello (���ܸ�Japanese) ����ˤ���"
804
+ arg = SOAP::SOAPHexBinary.new(str)
805
+ var = drv.echoHexBinary(arg)
806
+ assert_equal(str, var)
807
+ end
808
+
809
+ def test_echoHexBinary_empty
810
+ log_test
811
+ str = ""
812
+ arg = SOAP::SOAPHexBinary.new(str)
813
+ var = drv.echoHexBinary(arg)
814
+ assert_equal(str, var)
815
+ end
816
+
817
+ def test_echoHexBinary_0
818
+ log_test
819
+ str = "\0"
820
+ arg = SOAP::SOAPHexBinary.new(str)
821
+ var = drv.echoHexBinary(arg)
822
+ assert_equal(str, var)
823
+ end
824
+
825
+ def test_echoHexBinary_0a_0
826
+ log_test
827
+ str = "a\0b\0\0c\0\0\0"
828
+ arg = SOAP::SOAPHexBinary.new(str)
829
+ var = drv.echoHexBinary(arg)
830
+ assert_equal(str, var)
831
+ end
832
+
833
+ def test_echoHexBinary_lower_case
834
+ log_test
835
+ str = "lower case"
836
+ arg = SOAP::SOAPHexBinary.new
837
+ arg.set_encoded((str.unpack("H*")[0]).tr('A-F', 'a-f'))
838
+ var = drv.echoHexBinary(arg)
839
+ assert_equal(str, var)
840
+ end
841
+
842
+ def test_echoHexBinary_0FG7_junk
843
+ log_test
844
+ assert_exception(SOAP::RPC::ServerException) do
845
+ arg = SOAP::SOAPHexBinary.new("dummy")
846
+ arg.instance_eval { @data = '0FG7' }
847
+ var = drv.echoHexBinary(arg)
848
+ end
849
+ end
850
+
851
+ def test_echoBoolean_true
852
+ log_test
853
+ arg = true
854
+ var = drv.echoBoolean(arg)
855
+ assert_equal(arg, var)
856
+ end
857
+
858
+ def test_echoBoolean_false
859
+ log_test
860
+ arg = false
861
+ var = drv.echoBoolean(arg)
862
+ assert_equal(arg, var)
863
+ end
864
+
865
+ def test_echoBoolean_junk
866
+ log_test
867
+ assert_exception(SOAP::RPC::ServerException) do
868
+ arg = SOAP::SOAPBoolean.new(true)
869
+ arg.instance_eval { @data = 'junk' }
870
+ var = drv.echoBoolean(arg)
871
+ end
872
+ end
873
+
874
+ def test_echoDecimal_123456
875
+ log_test
876
+ arg = "123456789012345678"
877
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
878
+ normalized = arg
879
+ assert_equal(normalized, var)
880
+ end
881
+
882
+ def test_echoDecimal_0_123
883
+ log_test
884
+ arg = "+0.12345678901234567"
885
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
886
+ normalized = arg.sub(/0$/, '').sub(/^\+/, '')
887
+ assert_equal(normalized, var)
888
+ end
889
+
890
+ def test_echoDecimal_00000123
891
+ log_test
892
+ arg = ".00000123456789012"
893
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
894
+ normalized = '0' << arg.sub(/0$/, '')
895
+ assert_equal(normalized, var)
896
+ end
897
+
898
+ def test_echoDecimal_negative_00000123
899
+ log_test
900
+ arg = "-.00000123456789012"
901
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
902
+ normalized = '-0' << arg.sub(/0$/, '').sub(/-/, '')
903
+ assert_equal(normalized, var)
904
+ end
905
+
906
+ def test_echoDecimal_123_456
907
+ log_test
908
+ arg = "-123456789012345.008"
909
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
910
+ assert_equal(arg, var)
911
+ end
912
+
913
+ def test_echoDecimal_123
914
+ log_test
915
+ arg = "-12345678901234567."
916
+ normalized = arg.sub(/\.$/, '')
917
+ var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
918
+ assert_equal(normalized, var)
919
+ end
920
+
921
+ def test_echoDecimal_0_000a_junk
922
+ log_test
923
+ assert_exception(SOAP::RPC::ServerException) do
924
+ arg = FakeDecimal.new("0.0000000000000000a")
925
+ var = drv.echoDecimal(arg)
926
+ end
927
+ end
928
+
929
+ def test_echoDecimal_00a_0001_junk
930
+ log_test
931
+ assert_exception(SOAP::RPC::ServerException) do
932
+ arg = FakeDecimal.new("00a.000000000000001")
933
+ var = drv.echoDecimal(arg)
934
+ end
935
+ end
936
+
937
+ def test_echoDecimal_plus_minus_5_junk
938
+ log_test
939
+ assert_exception(SOAP::RPC::ServerException) do
940
+ arg = FakeDecimal.new("+-5")
941
+ var = drv.echoDecimal(arg)
942
+ end
943
+ end
944
+
945
+ def test_echoDecimal_5_0_junk
946
+ log_test
947
+ assert_exception(SOAP::RPC::ServerException) do
948
+ arg = FakeDecimal.new("5_0")
949
+ var = drv.echoDecimal(arg)
950
+ end
951
+ end
952
+
953
+ def test_echoMap
954
+ log_test
955
+ arg = { "a" => 1, "b" => 2 }
956
+ var = drv.echoMap(arg)
957
+ assert_equal(arg, var)
958
+ end
959
+
960
+ def test_echoMap_boolean_base64_nil_float
961
+ log_test
962
+ arg = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
963
+ var = drv.echoMap(arg)
964
+ assert_equal(arg, var)
965
+ end
966
+
967
+ def test_echoMap_multibyte_char
968
+ log_test
969
+ arg = { "Hello (���ܸ�Japanese) ����ˤ���" => 1, 1 => "Hello (���ܸ�Japanese) ����ˤ���" }
970
+ var = drv.echoMap(arg)
971
+ assert_equal(arg, var)
972
+ end
973
+
974
+ def test_echoMap_Struct
975
+ log_test
976
+ obj = SOAPStruct.new(1, 1.1, "a")
977
+ arg = { 1 => obj, 2 => obj }
978
+ var = drv.echoMap(arg)
979
+ assert_equal(arg, var)
980
+ end
981
+
982
+ def test_echoMap_multi_ref_idmatch_value_for_key_a
983
+ log_test
984
+ value = "c"
985
+ arg = { "a" => value, "b" => value }
986
+ var = drv.echoMap(arg)
987
+ assert_equal(inspect_with_id(var["a"]), inspect_with_id(var["b"]))
988
+ end
989
+
990
+ def test_echoMap_Struct_multi_ref_idmatch_varString_of_a_key
991
+ log_test
992
+ str = ""
993
+ obj = SOAPStruct.new(1, 1.1, str)
994
+ arg = { obj => "1", "1" => obj }
995
+ var = drv.echoMap(arg)
996
+ assert_equal(inspect_with_id(var.index("1").varString), inspect_with_id(var.fetch("1").varString))
997
+ end
998
+
999
+ def test_echoMapArray
1000
+ log_test
1001
+ map1 = { "a" => 1, "b" => 2 }
1002
+ map2 = { "a" => 1, "b" => 2 }
1003
+ map3 = { "a" => 1, "b" => 2 }
1004
+ arg = [map1, map2, map3]
1005
+ var = drv.echoMapArray(arg)
1006
+ assert_equal(arg, var)
1007
+ end
1008
+
1009
+ def test_echoMapArray_boolean_base64_nil_float
1010
+ log_test
1011
+ map1 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
1012
+ map2 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
1013
+ map3 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
1014
+ arg = [map1, map2, map3]
1015
+ var = drv.echoMapArray(arg)
1016
+ assert_equal(arg, var)
1017
+ end
1018
+
1019
+ def test_echoMapArray_multibyte_char
1020
+ log_test
1021
+ map1 = { "Hello (���ܸ�Japanese) ����ˤ���" => 1, 1 => "Hello (���ܸ�Japanese) ����ˤ���" }
1022
+ map2 = { "Hello (���ܸ�Japanese) ����ˤ���" => 1, 1 => "Hello (���ܸ�Japanese) ����ˤ���" }
1023
+ map3 = { "Hello (���ܸ�Japanese) ����ˤ���" => 1, 1 => "Hello (���ܸ�Japanese) ����ˤ���" }
1024
+ arg = [map1, map2, map3]
1025
+ var = drv.echoMapArray(arg)
1026
+ assert_equal(arg, var)
1027
+ end
1028
+
1029
+ def test_echoMapArray_multi_ref_idmatch
1030
+ log_test
1031
+ map1 = { "a" => 1, "b" => 2 }
1032
+ map2 = { "a" => 1, "b" => 2 }
1033
+ arg = [map1, map1, map2]
1034
+ var = drv.echoMapArray(arg)
1035
+ assert_equal(inspect_with_id(var[0]), inspect_with_id(var[1]))
1036
+ end
1037
+
1038
+ def test_echoStructAsSimpleTypes
1039
+ log_test
1040
+ arg = SOAPStruct.new(1, 1.1, "a")
1041
+ ret, out1, out2 = drv.echoStructAsSimpleTypes(arg)
1042
+ var = SOAPStruct.new(out1, out2, ret)
1043
+ assert_equal(arg, var)
1044
+ end
1045
+
1046
+ def test_echoStructAsSimpleTypes_nil
1047
+ log_test
1048
+ arg = SOAPStruct.new(nil, nil, nil)
1049
+ ret, out1, out2 = drv.echoStructAsSimpleTypes(arg)
1050
+ var = SOAPStruct.new(out1, out2, ret)
1051
+ assert_equal(arg, var)
1052
+ end
1053
+
1054
+ def test_echoSimpleTypesAsStruct
1055
+ log_test
1056
+ arg = SOAPStruct.new(1, 1.1, "a")
1057
+ var = drv.echoSimpleTypesAsStruct(arg.varString, arg.varInt, arg.varFloat)
1058
+ assert_equal(arg, var)
1059
+ end
1060
+
1061
+ def test_echoSimpleTypesAsStruct_nil
1062
+ log_test
1063
+ arg = SOAPStruct.new(nil, nil, nil)
1064
+ var = drv.echoSimpleTypesAsStruct(arg.varString, arg.varInt, arg.varFloat)
1065
+ assert_equal(arg, var)
1066
+ end
1067
+
1068
+ def test_echo2DStringArray
1069
+ log_test
1070
+ # arg = SOAP::SOAPArray.new(SOAP::ValueArrayName, 2, XSD::XSDString::Type)
1071
+ # arg[0, 0] = obj2soap('r0c0')
1072
+ # arg[1, 0] = obj2soap('r1c0')
1073
+ # arg[2, 0] = obj2soap('r2c0')
1074
+ # arg[0, 1] = obj2soap('r0c1')
1075
+ # arg[1, 1] = obj2soap('r1c1')
1076
+ # arg[2, 1] = obj2soap('r2c1')
1077
+ # arg[0, 2] = obj2soap('r0c2')
1078
+ # arg[1, 2] = obj2soap('r1c2')
1079
+ # arg[2, 2] = obj2soap('r2c2')
1080
+
1081
+ arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
1082
+ arg.size = [3, 3]
1083
+ arg.size_fixed = true
1084
+ arg.add(SOAP::Mapping.obj2soap('r0c0', SOAPBuildersInterop::MappingRegistry))
1085
+ arg.add(SOAP::Mapping.obj2soap('r1c0', SOAPBuildersInterop::MappingRegistry))
1086
+ arg.add(SOAP::Mapping.obj2soap('r2c0', SOAPBuildersInterop::MappingRegistry))
1087
+ arg.add(SOAP::Mapping.obj2soap('r0c1', SOAPBuildersInterop::MappingRegistry))
1088
+ arg.add(SOAP::Mapping.obj2soap('r1c1', SOAPBuildersInterop::MappingRegistry))
1089
+ arg.add(SOAP::Mapping.obj2soap('r2c1', SOAPBuildersInterop::MappingRegistry))
1090
+ arg.add(SOAP::Mapping.obj2soap('r0c2', SOAPBuildersInterop::MappingRegistry))
1091
+ arg.add(SOAP::Mapping.obj2soap('r1c2', SOAPBuildersInterop::MappingRegistry))
1092
+ arg.add(SOAP::Mapping.obj2soap('r2c2', SOAPBuildersInterop::MappingRegistry))
1093
+ argNormalized = [
1094
+ ['r0c0', 'r1c0', 'r2c0'],
1095
+ ['r0c1', 'r1c1', 'r2c1'],
1096
+ ['r0c2', 'r1c2', 'r2c2'],
1097
+ ]
1098
+
1099
+ var = drv.echo2DStringArray(arg)
1100
+ assert_equal(argNormalized, var)
1101
+ end
1102
+
1103
+ def test_echo2DStringArray_anyType_array
1104
+ log_test
1105
+ # ary2md converts Arry ((of Array)...) into M-D anyType Array
1106
+ arg = [
1107
+ ['r0c0', 'r0c1', 'r0c2'],
1108
+ ['r1c0', 'r1c1', 'r1c2'],
1109
+ ['r2c0', 'r0c1', 'r2c2'],
1110
+ ]
1111
+
1112
+ paramArg = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::AnyTypeLiteral, SOAPBuildersInterop::MappingRegistry)
1113
+ paramArg.type = XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D')
1114
+ var = drv.echo2DStringArray(paramArg)
1115
+ assert_equal(arg, var)
1116
+ end
1117
+
1118
+ def test_echo2DStringArray_multi_ref
1119
+ log_test
1120
+ arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
1121
+ arg.size = [3, 3]
1122
+ arg.size_fixed = true
1123
+
1124
+ item = 'item'
1125
+ arg.add('r0c0')
1126
+ arg.add('r1c0')
1127
+ arg.add(item)
1128
+ arg.add('r0c1')
1129
+ arg.add('r1c1')
1130
+ arg.add('r2c1')
1131
+ arg.add(item)
1132
+ arg.add('r1c2')
1133
+ arg.add('r2c2')
1134
+ argNormalized = [
1135
+ ['r0c0', 'r1c0', 'item'],
1136
+ ['r0c1', 'r1c1', 'r2c1'],
1137
+ ['item', 'r1c2', 'r2c2'],
1138
+ ]
1139
+
1140
+ var = drv.echo2DStringArray(arg)
1141
+ assert_equal(argNormalized, var)
1142
+ end
1143
+
1144
+ def test_echo2DStringArray_multi_ref_idmatch
1145
+ log_test
1146
+ arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
1147
+ arg.size = [3, 3]
1148
+ arg.size_fixed = true
1149
+
1150
+ item = 'item'
1151
+ arg.add('r0c0')
1152
+ arg.add('r1c0')
1153
+ arg.add(item)
1154
+ arg.add('r0c1')
1155
+ arg.add('r1c1')
1156
+ arg.add('r2c1')
1157
+ arg.add(item)
1158
+ arg.add('r1c2')
1159
+ arg.add('r2c2')
1160
+
1161
+ var = drv.echo2DStringArray(arg)
1162
+ assert_equal(inspect_with_id(var[2][0]), inspect_with_id(var[0][2]))
1163
+ end
1164
+
1165
+ def test_echoNestedStruct
1166
+ log_test
1167
+ arg = SOAPStructStruct.new(1, 1.1, "a",
1168
+ SOAPStruct.new(2, 2.2, "b")
1169
+ )
1170
+ var = drv.echoNestedStruct(arg)
1171
+ assert_equal(arg, var)
1172
+ end
1173
+
1174
+ def test_echoNestedStruct_nil
1175
+ log_test
1176
+ arg = SOAPStructStruct.new(nil, nil, nil,
1177
+ SOAPStruct.new(nil, nil, nil)
1178
+ )
1179
+ var = drv.echoNestedStruct(arg)
1180
+ assert_equal(arg, var)
1181
+ end
1182
+
1183
+ def test_echoNestedStruct_multi_ref_idmatch
1184
+ log_test
1185
+ str1 = ""
1186
+ arg = SOAPStructStruct.new(1, 1.1, str1,
1187
+ SOAPStruct.new(2, 2.2, str1)
1188
+ )
1189
+ var = drv.echoNestedStruct(arg)
1190
+ assert_equal(inspect_with_id(var.varString), inspect_with_id(var.varStruct.varString))
1191
+ end
1192
+
1193
+ def test_echoNestedArray
1194
+ log_test
1195
+ arg = SOAPArrayStruct.new(1, 1.1, "a", StringArray["2", "2.2", "b"])
1196
+ var = drv.echoNestedArray(arg)
1197
+ assert_equal(arg, var)
1198
+ end
1199
+
1200
+ def test_echoNestedArray_anyType_array
1201
+ log_test
1202
+ arg = SOAPArrayStruct.new(1, 1.1, "a", ["2", "2.2", "b"])
1203
+ var = drv.echoNestedArray(arg)
1204
+ assert_equal(arg, var)
1205
+ end
1206
+
1207
+ def test_echoNestedArray_multi_ref
1208
+ log_test
1209
+ str = ""
1210
+ arg = SOAPArrayStruct.new(1, 1.1, str, StringArray["2", str, "b"])
1211
+ var = drv.echoNestedArray(arg)
1212
+ assert_equal(arg, var)
1213
+ end
1214
+
1215
+ def test_echoNestedArray_multi_ref_idmatch
1216
+ log_test
1217
+ str = ""
1218
+ arg = SOAPArrayStruct.new(1, 1.1, str, StringArray["2", str, "b"])
1219
+ var = drv.echoNestedArray(arg)
1220
+ assert_equal(inspect_with_id(var.varString), inspect_with_id(var.varArray[1]))
1221
+ end
1222
+ end
1223
+
1224
+ if $0 == __FILE__
1225
+ name = ARGV.shift || 'localhost'
1226
+ location = ARGV.shift || 'http://localhost:10080/'
1227
+ SOAPBuildersTest.setup(name, location)
1228
+ end