soap4r 1.5.5.20061022 → 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. data/bin/wsdl2ruby.rb +8 -8
  2. data/lib/soap/XMLSchemaDatatypes.rb +1 -1
  3. data/lib/soap/XMLSchemaDatatypes1999.rb +1 -1
  4. data/lib/soap/attachment.rb +1 -1
  5. data/lib/soap/baseData.rb +102 -54
  6. data/lib/soap/cgistub.rb +1 -1
  7. data/lib/soap/charset.rb +1 -1
  8. data/lib/soap/driver.rb +1 -1
  9. data/lib/soap/element.rb +20 -12
  10. data/lib/soap/encodingstyle/aspDotNetHandler.rb +2 -2
  11. data/lib/soap/encodingstyle/handler.rb +1 -1
  12. data/lib/soap/encodingstyle/literalHandler.rb +29 -73
  13. data/lib/soap/encodingstyle/soapHandler.rb +8 -7
  14. data/lib/soap/filter.rb +10 -0
  15. data/lib/soap/filter/filterchain.rb +51 -0
  16. data/lib/soap/filter/handler.rb +31 -0
  17. data/lib/soap/generator.rb +11 -3
  18. data/lib/soap/header/handler.rb +6 -5
  19. data/lib/soap/header/handlerset.rb +7 -7
  20. data/lib/soap/header/simplehandler.rb +1 -1
  21. data/lib/soap/httpconfigloader.rb +7 -2
  22. data/lib/soap/mapping.rb +1 -1
  23. data/lib/soap/mapping/encodedregistry.rb +36 -26
  24. data/lib/soap/mapping/encodedregistry.rb~ +531 -0
  25. data/lib/soap/mapping/factory.rb +2 -2
  26. data/lib/soap/mapping/literalregistry.rb +107 -67
  27. data/lib/soap/mapping/mapping.rb +92 -112
  28. data/lib/soap/mapping/registry.rb +25 -8
  29. data/lib/soap/mapping/rubytypeFactory.rb +1 -1
  30. data/lib/soap/mapping/schemadefinition.rb +163 -0
  31. data/lib/soap/mapping/typeMap.rb +7 -1
  32. data/lib/soap/mapping/wsdlencodedregistry.rb +2 -2
  33. data/lib/soap/mapping/wsdlliteralregistry.rb +14 -23
  34. data/lib/soap/mappingRegistry.rb +1 -1
  35. data/lib/soap/marshal.rb +1 -1
  36. data/lib/soap/namespace.rb +1 -1
  37. data/lib/soap/netHttpClient.rb +43 -13
  38. data/lib/soap/parser.rb +40 -42
  39. data/lib/soap/processor.rb +1 -1
  40. data/lib/soap/property.rb +7 -7
  41. data/lib/soap/proxy.rb +1 -1
  42. data/lib/soap/qname.rb +1 -1
  43. data/lib/soap/rpc/cgistub.rb +34 -1
  44. data/lib/soap/rpc/driver.rb +2 -1
  45. data/lib/soap/rpc/element.rb +42 -15
  46. data/lib/soap/rpc/httpserver.rb +13 -1
  47. data/lib/soap/rpc/proxy.rb +51 -41
  48. data/lib/soap/rpc/router.rb +88 -33
  49. data/lib/soap/rpc/rpc.rb +1 -1
  50. data/lib/soap/rpc/soaplet.rb +51 -3
  51. data/lib/soap/rpc/standaloneServer.rb +1 -1
  52. data/lib/soap/rpcRouter.rb +1 -1
  53. data/lib/soap/rpcUtils.rb +1 -1
  54. data/lib/soap/server.rb +1 -1
  55. data/lib/soap/soap.rb +2 -2
  56. data/lib/soap/standaloneServer.rb +1 -1
  57. data/lib/soap/streamHandler.rb +13 -4
  58. data/lib/soap/wsdlDriver.rb +11 -15
  59. data/lib/tags +5144 -0
  60. data/lib/wsdl/binding.rb +1 -1
  61. data/lib/wsdl/data.rb +1 -1
  62. data/lib/wsdl/definitions.rb +1 -1
  63. data/lib/wsdl/documentation.rb +1 -1
  64. data/lib/wsdl/import.rb +1 -1
  65. data/lib/wsdl/importer.rb +1 -1
  66. data/lib/wsdl/info.rb +1 -1
  67. data/lib/wsdl/message.rb +1 -1
  68. data/lib/wsdl/operation.rb +10 -7
  69. data/lib/wsdl/operationBinding.rb +19 -5
  70. data/lib/wsdl/param.rb +11 -3
  71. data/lib/wsdl/parser.rb +4 -3
  72. data/lib/wsdl/part.rb +1 -1
  73. data/lib/wsdl/port.rb +1 -1
  74. data/lib/wsdl/portType.rb +1 -1
  75. data/lib/wsdl/service.rb +1 -1
  76. data/lib/wsdl/soap/address.rb +1 -1
  77. data/lib/wsdl/soap/binding.rb +1 -1
  78. data/lib/wsdl/soap/body.rb +3 -1
  79. data/lib/wsdl/soap/cgiStubCreator.rb +1 -1
  80. data/lib/wsdl/soap/classDefCreator.rb +78 -14
  81. data/lib/wsdl/soap/classDefCreatorSupport.rb +28 -11
  82. data/lib/wsdl/soap/clientSkeltonCreator.rb +3 -2
  83. data/lib/wsdl/soap/complexType.rb +8 -11
  84. data/lib/wsdl/soap/data.rb +1 -1
  85. data/lib/wsdl/soap/definitions.rb +49 -4
  86. data/lib/wsdl/soap/driverCreator.rb +1 -1
  87. data/lib/wsdl/soap/element.rb +3 -2
  88. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +1 -1
  89. data/lib/wsdl/soap/fault.rb +1 -1
  90. data/lib/wsdl/soap/header.rb +1 -1
  91. data/lib/wsdl/soap/headerfault.rb +1 -1
  92. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +41 -21
  93. data/lib/wsdl/soap/mappingRegistryCreator.rb +2 -1
  94. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +45 -19
  95. data/lib/wsdl/soap/methodDefCreator.rb +28 -17
  96. data/lib/wsdl/soap/operation.rb +11 -11
  97. data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
  98. data/lib/wsdl/soap/standaloneServerStubCreator.rb +1 -1
  99. data/lib/wsdl/soap/wsdl2ruby.rb +8 -2
  100. data/lib/wsdl/types.rb +1 -1
  101. data/lib/wsdl/wsdl.rb +1 -1
  102. data/lib/wsdl/xmlSchema/all.rb +1 -1
  103. data/lib/wsdl/xmlSchema/annotation.rb +1 -1
  104. data/lib/wsdl/xmlSchema/any.rb +10 -5
  105. data/lib/wsdl/xmlSchema/attribute.rb +1 -1
  106. data/lib/wsdl/xmlSchema/choice.rb +1 -1
  107. data/lib/wsdl/xmlSchema/complexContent.rb +11 -2
  108. data/lib/wsdl/xmlSchema/complexExtension.rb +8 -1
  109. data/lib/wsdl/xmlSchema/complexRestriction.rb +6 -2
  110. data/lib/wsdl/xmlSchema/complexType.rb +9 -1
  111. data/lib/wsdl/xmlSchema/content.rb +26 -5
  112. data/lib/wsdl/xmlSchema/data.rb +4 -1
  113. data/lib/wsdl/xmlSchema/element.rb +12 -9
  114. data/lib/wsdl/xmlSchema/enumeration.rb +1 -1
  115. data/lib/wsdl/xmlSchema/import.rb +1 -1
  116. data/lib/wsdl/xmlSchema/importer.rb +9 -6
  117. data/lib/wsdl/xmlSchema/include.rb +1 -1
  118. data/lib/wsdl/xmlSchema/length.rb +1 -1
  119. data/lib/wsdl/xmlSchema/list.rb +1 -1
  120. data/lib/wsdl/xmlSchema/maxlength.rb +1 -1
  121. data/lib/wsdl/xmlSchema/minlength.rb +1 -1
  122. data/lib/wsdl/xmlSchema/parser.rb +4 -3
  123. data/lib/wsdl/xmlSchema/pattern.rb +1 -1
  124. data/lib/wsdl/xmlSchema/schema.rb +1 -1
  125. data/lib/wsdl/xmlSchema/sequence.rb +1 -1
  126. data/lib/wsdl/xmlSchema/simpleContent.rb +1 -1
  127. data/lib/wsdl/xmlSchema/simpleExtension.rb +1 -1
  128. data/lib/wsdl/xmlSchema/simpleRestriction.rb +1 -1
  129. data/lib/wsdl/xmlSchema/simpleType.rb +8 -1
  130. data/lib/wsdl/xmlSchema/union.rb +35 -0
  131. data/lib/wsdl/xmlSchema/unique.rb +1 -1
  132. data/lib/wsdl/xmlSchema/xsd2ruby.rb +6 -1
  133. data/lib/xsd/charset.rb +1 -1
  134. data/lib/xsd/classloader.rb +26 -0
  135. data/lib/xsd/codegen.rb +1 -1
  136. data/lib/xsd/codegen/classdef.rb +1 -1
  137. data/lib/xsd/codegen/commentdef.rb +1 -1
  138. data/lib/xsd/codegen/gensupport.rb +119 -14
  139. data/lib/xsd/codegen/methoddef.rb +1 -1
  140. data/lib/xsd/codegen/moduledef.rb +1 -1
  141. data/lib/xsd/datatypes.rb +52 -13
  142. data/lib/xsd/datatypes1999.rb +1 -1
  143. data/lib/xsd/iconvcharset.rb +1 -1
  144. data/lib/xsd/mapping.rb +1 -1
  145. data/lib/xsd/namedelements.rb +1 -1
  146. data/lib/xsd/ns.rb +2 -2
  147. data/lib/xsd/qname.rb +1 -1
  148. data/lib/xsd/xmlparser.rb +16 -3
  149. data/lib/xsd/xmlparser/parser.rb +6 -2
  150. data/lib/xsd/xmlparser/rexmlparser.rb +5 -1
  151. data/lib/xsd/xmlparser/xmlparser.rb +1 -1
  152. data/lib/xsd/xmlparser/xmlscanner.rb +4 -2
  153. data/test/interopR2/InteropTest.rb +83 -0
  154. data/test/interopR2/InteropTest.wsdl +315 -0
  155. data/test/interopR2/InteropTestC.wsdl +208 -0
  156. data/test/interopR2/InteropTestDriver.rb +328 -0
  157. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2.wsdl +461 -0
  158. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupB.wsdl +20 -0
  159. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupCClient.rb +178 -0
  160. data/test/interopR2/SOAPBuildersInterop_R2GrC.wsdl +17 -0
  161. data/test/interopR2/clientBase.rb +0 -3
  162. data/test/interopR2/groupc.wsdl +17 -0
  163. data/test/interopR2/result_client.NetRemoting.txt +0 -4593
  164. data/test/interopR2/test.sh +9 -9
  165. data/test/runner.rb +1 -3
  166. data/test/soap/asp.net/test_aspdotnet.rb +20 -9
  167. data/test/soap/case/test_mapping.rb +57 -0
  168. data/test/soap/filter/test_filter.rb +146 -0
  169. data/test/soap/literalArrayMapping/test_definedarray.rb +7 -9
  170. data/test/soap/marshal/marshaltestlib.rb +1 -1
  171. data/test/soap/ssl/test_ssl.rb +0 -10
  172. data/test/soap/struct/test_struct.rb +2 -9
  173. data/test/soap/test_basetype.rb +114 -0
  174. data/test/soap/test_empty.rb +26 -2
  175. data/test/soap/test_envelopenamespace.rb +2 -9
  176. data/test/soap/test_extraattr.rb +55 -0
  177. data/test/soap/test_httpconfigloader.rb +17 -0
  178. data/test/soap/test_property.rb +4 -1
  179. data/test/soap/test_response_as_xml.rb +31 -9
  180. data/test/soap/test_soapelement.rb +21 -3
  181. data/test/soap/test_streamhandler.rb +3 -10
  182. data/test/soap/test_styleuse.rb +2 -9
  183. data/test/soap/wsdlDriver/test_calc.rb +3 -20
  184. data/test/soap/wsdlDriver/test_document.rb +2 -9
  185. data/test/soap/wsdlDriver/test_simpletype.rb +2 -9
  186. data/test/testutil.rb +54 -0
  187. data/test/wsdl/abstract/abstract.wsdl +82 -3
  188. data/test/wsdl/abstract/test_abstract.rb +48 -19
  189. data/test/wsdl/any/any.wsdl +63 -0
  190. data/test/wsdl/any/expectedDriver.rb +22 -1
  191. data/test/wsdl/any/expectedEcho.rb +19 -0
  192. data/test/wsdl/any/expectedService.rb +29 -4
  193. data/test/wsdl/any/test_any.rb +36 -31
  194. data/test/wsdl/choice/choice.wsdl +37 -0
  195. data/test/wsdl/choice/test_choice.rb +66 -17
  196. data/test/wsdl/complexcontent/test_echo.rb +7 -18
  197. data/test/wsdl/document/array/test_array.rb +8 -18
  198. data/test/wsdl/document/ping_nosoapaction.wsdl +1 -1
  199. data/test/wsdl/document/test_nosoapaction.rb +2 -9
  200. data/test/wsdl/document/test_number.rb +3 -10
  201. data/test/wsdl/document/test_rpc.rb +96 -21
  202. data/test/wsdl/fault/fault.wsdl +79 -0
  203. data/test/wsdl/fault/multifault.wsdl +96 -0
  204. data/test/wsdl/fault/test_fault.rb +119 -0
  205. data/test/wsdl/fault/test_multifault.rb +134 -0
  206. data/test/wsdl/list/test_list.rb +6 -16
  207. data/test/wsdl/marshal/test_wsdlmarshal.rb +10 -13
  208. data/test/wsdl/oneway/oneway.wsdl +36 -0
  209. data/test/wsdl/oneway/test_oneway.rb +108 -0
  210. data/test/wsdl/overload/test_overload.rb +3 -10
  211. data/test/wsdl/qualified/test_qualified.rb +9 -17
  212. data/test/wsdl/qualified/test_unqualified.rb +14 -21
  213. data/test/wsdl/ref/expectedDriver.rb +51 -0
  214. data/test/wsdl/ref/expectedProduct.rb +71 -71
  215. data/test/wsdl/ref/test_ref.rb +13 -35
  216. data/test/wsdl/rpc/rpc.wsdl +27 -1
  217. data/test/wsdl/rpc/test-rpc-lit-qualified.wsdl +74 -0
  218. data/test/wsdl/rpc/test-rpc-lit.wsdl +11 -4
  219. data/test/wsdl/rpc/test-rpc-lit12.wsdl +455 -0
  220. data/test/wsdl/rpc/test_rpc.rb +20 -19
  221. data/test/wsdl/rpc/test_rpc_lit.rb +82 -29
  222. data/test/wsdl/simplecontent/simplecontent.wsdl +1 -0
  223. data/test/wsdl/simplecontent/test_simplecontent.rb +5 -19
  224. data/test/wsdl/simpletype/rpc/expectedDriver.rb +6 -4
  225. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +15 -0
  226. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +64 -0
  227. data/test/wsdl/simpletype/rpc/expectedService.rb +6 -4
  228. data/test/wsdl/simpletype/rpc/rpc.wsdl +18 -0
  229. data/test/wsdl/simpletype/rpc/test_rpc.rb +6 -16
  230. data/test/wsdl/simpletype/simpletype.wsdl +19 -0
  231. data/test/wsdl/simpletype/test_simpletype.rb +2 -9
  232. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +6 -4
  233. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +40 -0
  234. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +6 -4
  235. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +6 -4
  236. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +5 -6
  237. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +3 -16
  238. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +9 -17
  239. data/test/wsdl/soaptype/test_soaptype.rb +29 -11
  240. data/test/xsd/test_xsd.rb +115 -1
  241. metadata +421 -454
  242. data/test/interopR2/client.NetRemoting.rb.result +0 -3410
  243. data/test/interopR2/client.NetRemoting_Base.log +0 -6279
  244. data/test/interopR2/client.NetRemoting_GroupB.log +0 -1188
  245. data/test/interopR2/client4S4C2_Base.log +0 -4955
  246. data/test/interopR2/client4S4C2_GroupB.log +0 -1000
  247. data/test/interopR2/client4S4C_Base.log +0 -4635
  248. data/test/interopR2/client4S4C_GroupB.log +0 -900
  249. data/test/interopR2/clientASP.NET_Base.log +0 -5468
  250. data/test/interopR2/clientASP.NET_GroupB.log +0 -977
  251. data/test/interopR2/clientApacheAxis_Base.log +0 -3171
  252. data/test/interopR2/clientApacheAxis_GroupB.log +0 -498
  253. data/test/interopR2/clientApacheSOAP_Base.log +0 -3171
  254. data/test/interopR2/clientBEAWebLogic_Base.log +0 -3171
  255. data/test/interopR2/clientBEAWebLogic_GroupB.log +0 -498
  256. data/test/interopR2/clientCapeConnect_Base.log +0 -2126
  257. data/test/interopR2/clientDelphi_Base.log +0 -0
  258. data/test/interopR2/clientEasySoap_Base.log +0 -6187
  259. data/test/interopR2/clientEasySoap_GroupB.log +0 -1076
  260. data/test/interopR2/clientFrontier_Base.log +0 -5188
  261. data/test/interopR2/clientHP_Base.log +0 -3171
  262. data/test/interopR2/clientHP_GroupB.log +0 -498
  263. data/test/interopR2/clientJSOAP_Base.log +0 -4465
  264. data/test/interopR2/clientJSOAP_GroupB.log +0 -824
  265. data/test/interopR2/clientKafkaXSLT_Base.log +0 -10299
  266. data/test/interopR2/clientKafkaXSLT_GroupB.log +0 -1739
  267. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +0 -4805
  268. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +0 -871
  269. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +0 -5076
  270. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +0 -908
  271. data/test/interopR2/clientNuSOAP_Base.log +0 -5076
  272. data/test/interopR2/clientNuSOAP_GroupB.log +0 -958
  273. data/test/interopR2/clientNuWave_Base.log +0 -2019
  274. data/test/interopR2/clientOpenLink_Base.log +0 -6171
  275. data/test/interopR2/clientOpenLink_GroupB.log +0 -1094
  276. data/test/interopR2/clientOracle_Base.log +0 -5594
  277. data/test/interopR2/clientPEAR_Base.log +0 -6261
  278. data/test/interopR2/clientPEAR_GroupB.log +0 -1106
  279. data/test/interopR2/clientPhalanx_Base.log +0 -41036
  280. data/test/interopR2/clientPhalanx_GroupB.log +0 -6519
  281. data/test/interopR2/clientSIMACE_Base.log +0 -6171
  282. data/test/interopR2/clientSIMACE_GroupB.log +0 -1093
  283. data/test/interopR2/clientSOAP4R.rb.result +0 -3409
  284. data/test/interopR2/clientSOAP4R_Base.log +0 -6366
  285. data/test/interopR2/clientSOAP4R_GroupB.log +0 -1112
  286. data/test/interopR2/clientSQLData_Base.log +0 -4857
  287. data/test/interopR2/clientSQLData_GroupB.log +0 -770
  288. data/test/interopR2/clientSilverStream_Base.log +0 -3171
  289. data/test/interopR2/clientSpray2001_Base.log +0 -8187
  290. data/test/interopR2/clientSpray2001_GroupB.log +0 -1408
  291. data/test/interopR2/clientSun_Base.log +0 -4641
  292. data/test/interopR2/clientSun_GroupB.log +0 -856
  293. data/test/interopR2/clientVWOpentalkSoap_Base.log +0 -5402
  294. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +0 -972
  295. data/test/interopR2/clientWASPC_Base.log +0 -4187
  296. data/test/interopR2/clientWASPC_GroupB.log +0 -763
  297. data/test/interopR2/clientWASP_Base.log +0 -5414
  298. data/test/interopR2/clientWASP_GroupB.log +0 -970
  299. data/test/interopR2/clientWebMethods_Base.log +0 -3075
  300. data/test/interopR2/clientWebMethods_GroupB.log +0 -483
  301. data/test/interopR2/clientWhiteMesa_Base.log +0 -4359
  302. data/test/interopR2/clientWhiteMesa_GroupB.log +0 -808
  303. data/test/interopR2/clientWingfoot_Base.log +0 -4445
  304. data/test/interopR2/clientWingfoot_GroupB.log +0 -848
  305. data/test/interopR2/clientXMLBus_Base.log +0 -3075
  306. data/test/interopR2/clientXMLBus_GroupB.log +0 -483
  307. data/test/interopR2/clientXSOAP_Base.log +0 -4445
  308. data/test/interopR2/clienteSOAP_Base.log +0 -8728
  309. data/test/interopR2/clientgSOAP_Base.log +0 -4689
  310. data/test/interopR2/clientgSOAP_GroupB.log +0 -1014
  311. data/test/interopR2/clientkSOAP_Base.log +0 -5625
@@ -8,18 +8,20 @@ class Echo_version_port_type
8
8
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"),
9
9
  "urn:example.com:simpletype-rpc",
10
10
  "echo_version",
11
- [ ["in", "version", ["::SOAP::SOAPString"]],
11
+ [ ["in", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]],
12
12
  ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ],
13
13
  { :request_style => :rpc, :request_use => :encoded,
14
- :response_style => :rpc, :response_use => :encoded }
14
+ :response_style => :rpc, :response_use => :encoded,
15
+ :faults => {} }
15
16
  ],
16
17
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"),
17
18
  "urn:example.com:simpletype-rpc",
18
19
  "echo_version_r",
19
20
  [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]],
20
- ["retval", "version", ["::SOAP::SOAPString"]] ],
21
+ ["retval", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]] ],
21
22
  { :request_style => :rpc, :request_use => :encoded,
22
- :response_style => :rpc, :response_use => :encoded }
23
+ :response_style => :rpc, :response_use => :encoded,
24
+ :faults => {} }
23
25
  ]
24
26
  ]
25
27
  end
@@ -22,6 +22,24 @@
22
22
  <xsd:enumeration value="1.9"/>
23
23
  </xsd:restriction>
24
24
  </xsd:simpleType>
25
+
26
+ <xsd:simpleType name="stateType">
27
+ <xsd:restriction base="xsd:string">
28
+ <xsd:enumeration value="stateType"/>
29
+ </xsd:restriction>
30
+ </xsd:simpleType>
31
+
32
+ <xsd:simpleType name="zipIntType">
33
+ <xsd:restriction base="xsd:int">
34
+ <xsd:enumeration value="123"/>
35
+ </xsd:restriction>
36
+ </xsd:simpleType>
37
+
38
+ <xsd:simpleType name="zipUnion">
39
+ <xsd:union memberTypes="tns:stateType tns:zipIntType"/>
40
+ </xsd:simpleType>
41
+
42
+ <xsd:element name="zip" type="tns:zipUnion"/>
25
43
  </xsd:schema>
26
44
  </types>
27
45
 
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'wsdl/parser'
3
3
  require 'wsdl/soap/wsdl2ruby'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', 'testutil.rb')
4
5
 
5
6
 
6
7
  module WSDL; module SimpleType
@@ -18,21 +19,24 @@ class TestRPC < Test::Unit::TestCase
18
19
  gen.basedir = DIR
19
20
  gen.logger.level = Logger::FATAL
20
21
  gen.opt['classdef'] = nil
22
+ gen.opt['mapping_registry'] = nil
21
23
  gen.opt['driver'] = nil
22
24
  gen.opt['client_skelton'] = nil
23
25
  gen.opt['servant_skelton'] = nil
24
26
  gen.opt['standalone_server_stub'] = nil
25
27
  gen.opt['force'] = true
26
- suppress_warning do
28
+ TestUtil.silent do
27
29
  gen.run
28
30
  end
29
31
  compare("expectedEchoVersion.rb", "echo_version.rb")
32
+ compare("expectedMappingRegistry.rb", "echo_versionMappingRegistry.rb")
30
33
  compare("expectedDriver.rb", "echo_versionDriver.rb")
31
34
  compare("expectedService.rb", "echo_version_service.rb")
32
35
  compare("expectedClient.rb", "echo_version_serviceClient.rb")
33
36
  compare("expectedServant.rb", "echo_versionServant.rb")
34
37
 
35
38
  File.unlink(pathname("echo_version.rb"))
39
+ File.unlink(pathname("echo_versionMappingRegistry.rb"))
36
40
  File.unlink(pathname("echo_versionDriver.rb"))
37
41
  File.unlink(pathname("echo_version_service.rb"))
38
42
  File.unlink(pathname("echo_version_serviceClient.rb"))
@@ -40,21 +44,7 @@ class TestRPC < Test::Unit::TestCase
40
44
  end
41
45
 
42
46
  def compare(expected, actual)
43
- assert_equal(loadfile(expected), loadfile(actual), actual)
44
- end
45
-
46
- def loadfile(file)
47
- File.open(pathname(file)) { |f| f.read }
48
- end
49
-
50
- def suppress_warning
51
- back = $VERBOSE
52
- $VERBOSE = nil
53
- begin
54
- yield
55
- ensure
56
- $VERBOSE = back
57
- end
47
+ TestUtil.filecompare(pathname(expected), pathname(actual))
58
48
  end
59
49
  end
60
50
 
@@ -32,6 +32,25 @@
32
32
  <xsd:pattern value='[a-zA-Z0-9]{18}'/>
33
33
  </xsd:restriction>
34
34
  </xsd:simpleType>
35
+
36
+ <xsd:simpleType name="stateType">
37
+ <xsd:restriction base="xsd:string">
38
+ <xsd:enumeration value="stateType"/>
39
+ </xsd:restriction>
40
+ </xsd:simpleType>
41
+
42
+ <xsd:simpleType name="zipIntType">
43
+ <xsd:restriction base="xsd:int">
44
+ <xsd:enumeration value="123"/>
45
+ </xsd:restriction>
46
+ </xsd:simpleType>
47
+
48
+ <xsd:simpleType name="zipUnion">
49
+ <xsd:union memberTypes="tns:stateType tns:zipIntType"/>
50
+ </xsd:simpleType>
51
+
52
+ <xsd:element name="zip" type="tns:zipUnion"/>
53
+
35
54
  </xsd:schema>
36
55
  </types>
37
56
 
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'soap/rpc/standaloneServer'
3
3
  require 'soap/wsdlDriver'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
4
5
 
5
6
 
6
7
  module WSDL
@@ -41,7 +42,7 @@ class TestSimpleType < Test::Unit::TestCase
41
42
  def setup_server
42
43
  @server = Server.new('Test', "urn:example.com:simpletype", '0.0.0.0', Port)
43
44
  @server.level = Logger::Severity::ERROR
44
- @server_thread = start_server_thread(@server)
45
+ @server_thread = TestUtil.start_server_thread(@server)
45
46
  end
46
47
 
47
48
  def setup_client
@@ -67,14 +68,6 @@ class TestSimpleType < Test::Unit::TestCase
67
68
  @client.reset_stream
68
69
  end
69
70
 
70
- def start_server_thread(server)
71
- t = Thread.new {
72
- Thread.current.abort_on_exception = true
73
- server.start
74
- }
75
- t
76
- end
77
-
78
71
  def test_ping
79
72
  ret = @client.ping({:myversion => "1.9", :date => "2004-01-01T00:00:00Z"})
80
73
  assert_equal("1.9 (2004-01-01T00:00:00Z)", ret)
@@ -9,18 +9,20 @@ class Echo_version_port_type < ::SOAP::RPC::Driver
9
9
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"),
10
10
  "urn:example.com:simpletype-rpc",
11
11
  "echo_version",
12
- [ ["in", "version", ["::SOAP::SOAPString"]],
12
+ [ ["in", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]],
13
13
  ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ],
14
14
  { :request_style => :rpc, :request_use => :encoded,
15
- :response_style => :rpc, :response_use => :encoded }
15
+ :response_style => :rpc, :response_use => :encoded,
16
+ :faults => {} }
16
17
  ],
17
18
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"),
18
19
  "urn:example.com:simpletype-rpc",
19
20
  "echo_version_r",
20
21
  [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]],
21
- ["retval", "version", ["::SOAP::SOAPString"]] ],
22
+ ["retval", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]] ],
22
23
  { :request_style => :rpc, :request_use => :encoded,
23
- :response_style => :rpc, :response_use => :encoded }
24
+ :response_style => :rpc, :response_use => :encoded,
25
+ :faults => {} }
24
26
  ]
25
27
  ]
26
28
 
@@ -0,0 +1,40 @@
1
+ require 'echo_version.rb'
2
+ require 'soap/mapping'
3
+
4
+ module Echo_versionMappingRegistry
5
+ EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
6
+ LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
7
+
8
+ EncodedRegistry.register(
9
+ :class => Version_struct,
10
+ :schema_ns => "urn:example.com:simpletype-rpc-type",
11
+ :schema_type => "version_struct",
12
+ :schema_element => [
13
+ ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]],
14
+ ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]]
15
+ ]
16
+ )
17
+
18
+ EncodedRegistry.register(
19
+ :class => Version,
20
+ :schema_ns => "urn:example.com:simpletype-rpc-type",
21
+ :schema_type => "version"
22
+ )
23
+
24
+ LiteralRegistry.register(
25
+ :class => Version_struct,
26
+ :schema_ns => "urn:example.com:simpletype-rpc-type",
27
+ :schema_type => "version_struct",
28
+ :schema_qualified => false,
29
+ :schema_element => [
30
+ ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]],
31
+ ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]]
32
+ ]
33
+ )
34
+
35
+ LiteralRegistry.register(
36
+ :class => Version,
37
+ :schema_ns => "urn:example.com:simpletype-rpc-type",
38
+ :schema_type => "version"
39
+ )
40
+ end
@@ -8,18 +8,20 @@ class Echo_version_port_type
8
8
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"),
9
9
  "urn:example.com:simpletype-rpc",
10
10
  "echo_version",
11
- [ ["in", "version", ["::SOAP::SOAPString"]],
11
+ [ ["in", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]],
12
12
  ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ],
13
13
  { :request_style => :rpc, :request_use => :encoded,
14
- :response_style => :rpc, :response_use => :encoded }
14
+ :response_style => :rpc, :response_use => :encoded,
15
+ :faults => {} }
15
16
  ],
16
17
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"),
17
18
  "urn:example.com:simpletype-rpc",
18
19
  "echo_version_r",
19
20
  [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]],
20
- ["retval", "version", ["::SOAP::SOAPString"]] ],
21
+ ["retval", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]] ],
21
22
  { :request_style => :rpc, :request_use => :encoded,
22
- :response_style => :rpc, :response_use => :encoded }
23
+ :response_style => :rpc, :response_use => :encoded,
24
+ :faults => {} }
23
25
  ]
24
26
  ]
25
27
  end
@@ -8,18 +8,20 @@ class Echo_version_port_type
8
8
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"),
9
9
  "urn:example.com:simpletype-rpc",
10
10
  "echo_version",
11
- [ ["in", "version", ["::SOAP::SOAPString"]],
11
+ [ ["in", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]],
12
12
  ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ],
13
13
  { :request_style => :rpc, :request_use => :encoded,
14
- :response_style => :rpc, :response_use => :encoded }
14
+ :response_style => :rpc, :response_use => :encoded,
15
+ :faults => {} }
15
16
  ],
16
17
  [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"),
17
18
  "urn:example.com:simpletype-rpc",
18
19
  "echo_version_r",
19
20
  [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]],
20
- ["retval", "version", ["::SOAP::SOAPString"]] ],
21
+ ["retval", "version", [nil, "urn:example.com:simpletype-rpc-type", "version"]] ],
21
22
  { :request_style => :rpc, :request_use => :encoded,
22
- :response_style => :rpc, :response_use => :encoded }
23
+ :response_style => :rpc, :response_use => :encoded,
24
+ :faults => {} }
23
25
  ]
24
26
  ]
25
27
  end
@@ -1,6 +1,9 @@
1
1
  require 'test/unit'
2
2
  require 'soap/marshal'
3
3
  require 'rbconfig'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', '..', 'testutil.rb')
5
+
6
+
4
7
  module WSDL; module SOAP
5
8
 
6
9
 
@@ -25,7 +28,7 @@ class TestSection < Test::Unit::TestCase
25
28
  if ::Object.constants.include?("Item")
26
29
  ::Object.instance_eval { remove_const("Item") }
27
30
  end
28
- require pathname('mysample.rb')
31
+ TestUtil.require(DIR, 'mysample.rb')
29
32
  s1 = Section.new(1, "section1", "section 1", 1001, Question.new("q1"))
30
33
  s2 = Section.new(2, "section2", "section 2", 1002, Question.new("q2"))
31
34
  org = SectionArray[s1, s2]
@@ -42,11 +45,7 @@ private
42
45
  end
43
46
 
44
47
  def compare(expected, actual)
45
- assert_equal(loadfile(expected), loadfile(actual), expected)
46
- end
47
-
48
- def loadfile(file)
49
- File.open(pathname(file)) { |f| f.read }
48
+ TestUtil.filecompare(pathname(expected), pathname(actual))
50
49
  end
51
50
  end
52
51
 
@@ -3,6 +3,7 @@ require 'wsdl/parser'
3
3
  require 'wsdl/soap/wsdl2ruby'
4
4
  require 'soap/rpc/standaloneServer'
5
5
  require 'soap/wsdlDriver'
6
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', '..', 'testutil.rb')
6
7
 
7
8
 
8
9
  module WSDL; module SOAP; module T_WSDL2Ruby
@@ -40,7 +41,7 @@ class TestSOAPENC < Test::Unit::TestCase
40
41
  def setup_server
41
42
  @server = Server.new('Test', "urn:example.com:soapenc", '0.0.0.0', Port)
42
43
  @server.level = Logger::Severity::ERROR
43
- @server_thread = start_server_thread(@server)
44
+ @server_thread = TestUtil.start_server_thread(@server)
44
45
  end
45
46
 
46
47
  def setup_classdef
@@ -54,13 +55,7 @@ class TestSOAPENC < Test::Unit::TestCase
54
55
  gen.opt['classdef'] = nil
55
56
  gen.opt['force'] = true
56
57
  gen.run
57
- backupdir = Dir.pwd
58
- begin
59
- Dir.chdir(DIR)
60
- require pathname('echo')
61
- ensure
62
- Dir.chdir(backupdir)
63
- end
58
+ TestUtil.require(DIR, 'echo.rb')
64
59
  end
65
60
 
66
61
  def teardown_server
@@ -69,14 +64,6 @@ class TestSOAPENC < Test::Unit::TestCase
69
64
  @server_thread.join
70
65
  end
71
66
 
72
- def start_server_thread(server)
73
- t = Thread.new {
74
- Thread.current.abort_on_exception = true
75
- server.start
76
- }
77
- t
78
- end
79
-
80
67
  def pathname(filename)
81
68
  File.join(DIR, filename)
82
69
  end
@@ -1,6 +1,9 @@
1
1
  require 'test/unit'
2
2
  require 'wsdl/parser'
3
3
  require 'wsdl/soap/wsdl2ruby'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', 'testutil.rb')
5
+
6
+
4
7
  module WSDL; module SOAP
5
8
 
6
9
 
@@ -8,9 +11,7 @@ class TestWSDL2Ruby < Test::Unit::TestCase
8
11
  DIR = File.dirname(File.expand_path(__FILE__))
9
12
 
10
13
  def setup
11
- backupdir = Dir.pwd
12
- begin
13
- Dir.chdir(DIR)
14
+ Dir.chdir(DIR) do
14
15
  gen = WSDL::SOAP::WSDL2Ruby.new
15
16
  gen.location = pathname("rpc.wsdl")
16
17
  gen.basedir = DIR
@@ -20,13 +21,12 @@ class TestWSDL2Ruby < Test::Unit::TestCase
20
21
  gen.opt['servant_skelton'] = nil
21
22
  gen.opt['cgi_stub'] = nil
22
23
  gen.opt['standalone_server_stub'] = nil
24
+ gen.opt['mapping_registry'] = nil
23
25
  gen.opt['driver'] = nil
24
26
  gen.opt['force'] = true
25
- silent do
27
+ TestUtil.silent do
26
28
  gen.run
27
29
  end
28
- ensure
29
- Dir.chdir(backupdir)
30
30
  end
31
31
  end
32
32
 
@@ -39,6 +39,7 @@ class TestWSDL2Ruby < Test::Unit::TestCase
39
39
  compare("expectedClassdef.rb", "echo_version.rb")
40
40
  compare("expectedService.rb", "echo_version_service.rb")
41
41
  compare("expectedService.cgi", "echo_version_service.cgi")
42
+ compare("expectedMappingRegistry.rb", "echo_versionMappingRegistry.rb")
42
43
  compare("expectedDriver.rb", "echo_versionDriver.rb")
43
44
  compare("expectedClient.rb", "echo_version_serviceClient.rb")
44
45
 
@@ -46,6 +47,7 @@ class TestWSDL2Ruby < Test::Unit::TestCase
46
47
  File.unlink(pathname("echo_version.rb"))
47
48
  File.unlink(pathname("echo_version_service.rb"))
48
49
  File.unlink(pathname("echo_version_service.cgi"))
50
+ File.unlink(pathname("echo_versionMappingRegistry.rb"))
49
51
  File.unlink(pathname("echo_versionDriver.rb"))
50
52
  File.unlink(pathname("echo_version_serviceClient.rb"))
51
53
  end
@@ -57,22 +59,12 @@ private
57
59
  end
58
60
 
59
61
  def compare(expected, actual)
60
- assert_equal(loadfile(expected), loadfile(actual), expected)
62
+ TestUtil.filecompare(pathname(expected), pathname(actual))
61
63
  end
62
64
 
63
65
  def loadfile(file)
64
66
  File.open(pathname(file)) { |f| f.read }
65
67
  end
66
-
67
- def silent
68
- back = $VERBOSE
69
- $VERBOSE = nil
70
- begin
71
- yield
72
- ensure
73
- $VERBOSE = back
74
- end
75
- end
76
68
  end
77
69
 
78
70
 
@@ -3,6 +3,7 @@ require 'wsdl/parser'
3
3
  require 'wsdl/soap/wsdl2ruby'
4
4
  require 'soap/rpc/standaloneServer'
5
5
  require 'soap/wsdlDriver'
6
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
6
7
 
7
8
 
8
9
  module WSDL; module RPC
@@ -40,14 +41,18 @@ class TestSOAPTYPE < Test::Unit::TestCase
40
41
 
41
42
  def teardown
42
43
  teardown_server
43
- File.unlink(pathname('echo.rb')) unless $DEBUG
44
+ unless $DEBUG
45
+ File.unlink(pathname('echo.rb'))
46
+ File.unlink(pathname('echoMappingRegistry.rb'))
47
+ File.unlink(pathname('echoDriver.rb'))
48
+ end
44
49
  @client.reset_stream if @client
45
50
  end
46
51
 
47
52
  def setup_server
48
53
  @server = Server.new('Test', "urn:soaptype", '0.0.0.0', Port)
49
54
  @server.level = Logger::Severity::ERROR
50
- @server_thread = start_server_thread(@server)
55
+ @server_thread = TestUtil.start_server_thread(@server)
51
56
  end
52
57
 
53
58
  def setup_classdef
@@ -56,10 +61,12 @@ class TestSOAPTYPE < Test::Unit::TestCase
56
61
  gen.basedir = DIR
57
62
  gen.logger.level = Logger::FATAL
58
63
  gen.opt['classdef'] = nil
64
+ gen.opt['mapping_registry'] = nil
65
+ gen.opt['driver'] = nil
59
66
  gen.opt['force'] = true
60
67
  gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
61
68
  gen.run
62
- require pathname('echo')
69
+ TestUtil.require(DIR, 'echo.rb', 'echoMappingRegistry.rb', 'echoDriver.rb')
63
70
  end
64
71
 
65
72
  def teardown_server
@@ -68,14 +75,6 @@ class TestSOAPTYPE < Test::Unit::TestCase
68
75
  @server_thread.join
69
76
  end
70
77
 
71
- def start_server_thread(server)
72
- t = Thread.new {
73
- Thread.current.abort_on_exception = true
74
- server.start
75
- }
76
- t
77
- end
78
-
79
78
  def pathname(filename)
80
79
  File.join(DIR, filename)
81
80
  end
@@ -132,11 +131,30 @@ SOAPTYPE_NATIVE_XML = %q[<?xml version="1.0" encoding="utf-8" ?>
132
131
  assert_equal(SOAPTYPE_WSDL_XML, parse_requestxml(str))
133
132
  end
134
133
 
134
+ def test_stub
135
+ @client = WSDL::RPC::Echo_port_type.new("http://localhost:#{Port}/")
136
+ @client.wiredump_dev = str = ''
137
+
138
+ arg = WSDL::RPC::Wrapper.new
139
+ arg.short = 123
140
+ arg.long = 456
141
+ arg.double = 789
142
+ res = @client.echo_soaptype(arg)
143
+
144
+ assert_equal(123, res.short)
145
+ assert_equal(456, res.long)
146
+ assert_equal(789.0, res.double)
147
+
148
+ assert_equal(SOAPTYPE_WSDL_XML, parse_requestxml(str))
149
+ end
150
+
135
151
  def test_native
136
152
  @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/", 'urn:soaptype')
137
153
  @client.endpoint_url = "http://localhost:#{Port}/"
138
154
  @client.add_method('echo_soaptype', 'arg')
139
155
  @client.wiredump_dev = str = ''
156
+ @client.mapping_registry = WSDL::RPC::EchoMappingRegistry::EncodedRegistry
157
+ @client.literal_mapping_registry = WSDL::RPC::EchoMappingRegistry::LiteralRegistry
140
158
 
141
159
  arg = ::Struct.new(:short, :long, :double).new
142
160
  arg.short = SOAPShort.new(123)