soap4r 1.5.7 → 1.5.8

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 (199) hide show
  1. data/bin/wsdl2ruby.rb +8 -2
  2. data/lib/soap/baseData.rb +93 -43
  3. data/lib/soap/element.rb +11 -8
  4. data/lib/soap/encodingstyle/handler.rb +15 -4
  5. data/lib/soap/encodingstyle/literalHandler.rb +18 -24
  6. data/lib/soap/encodingstyle/soapHandler.rb +34 -77
  7. data/lib/soap/generator.rb +74 -48
  8. data/lib/soap/header/handler.rb +1 -1
  9. data/lib/soap/header/mappinghandler.rb +47 -0
  10. data/lib/soap/mapping/encodedregistry.rb +19 -13
  11. data/lib/soap/mapping/factory.rb +19 -3
  12. data/lib/soap/mapping/literalregistry.rb +47 -35
  13. data/lib/soap/mapping/mapping.rb +92 -24
  14. data/lib/soap/mapping/registry.rb +34 -18
  15. data/lib/soap/mapping/schemadefinition.rb +8 -1
  16. data/lib/soap/mapping/typeMap.rb +18 -0
  17. data/lib/soap/mapping/wsdlencodedregistry.rb +8 -50
  18. data/lib/soap/mapping/wsdlliteralregistry.rb +45 -39
  19. data/lib/soap/nestedexception.rb +42 -0
  20. data/lib/soap/netHttpClient.rb +1 -0
  21. data/lib/soap/ns.rb +34 -0
  22. data/lib/soap/parser.rb +32 -29
  23. data/lib/soap/processor.rb +1 -1
  24. data/lib/soap/rpc/driver.rb +1 -0
  25. data/lib/soap/rpc/element.rb +18 -6
  26. data/lib/soap/rpc/httpserver.rb +38 -24
  27. data/lib/soap/rpc/proxy.rb +14 -11
  28. data/lib/soap/rpc/router.rb +4 -1
  29. data/lib/soap/soap.rb +7 -6
  30. data/lib/soap/wsdlDriver.rb +29 -8
  31. data/lib/tags +5690 -0
  32. data/lib/wsdl/definitions.rb +26 -40
  33. data/lib/wsdl/info.rb +11 -0
  34. data/lib/wsdl/parser.rb +2 -2
  35. data/lib/wsdl/soap/cgiStubCreator.rb +10 -5
  36. data/lib/wsdl/soap/classDefCreator.rb +140 -113
  37. data/lib/wsdl/soap/classDefCreatorSupport.rb +94 -12
  38. data/lib/wsdl/soap/classNameCreator.rb +54 -0
  39. data/lib/wsdl/soap/clientSkeltonCreator.rb +6 -5
  40. data/lib/wsdl/soap/complexType.rb +10 -1
  41. data/lib/wsdl/soap/definitions.rb +4 -0
  42. data/lib/wsdl/soap/driverCreator.rb +14 -6
  43. data/lib/wsdl/soap/element.rb +4 -0
  44. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +11 -55
  45. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +28 -126
  46. data/lib/wsdl/soap/mappingRegistryCreator.rb +9 -3
  47. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +209 -94
  48. data/lib/wsdl/soap/methodDefCreator.rb +12 -16
  49. data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
  50. data/lib/wsdl/soap/servletStubCreator.rb +107 -0
  51. data/lib/wsdl/soap/standaloneServerStubCreator.rb +10 -5
  52. data/lib/wsdl/soap/wsdl2ruby.rb +28 -13
  53. data/lib/wsdl/wsdl.rb +2 -1
  54. data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
  55. data/lib/wsdl/xmlSchema/attributeGroup.rb +86 -0
  56. data/lib/wsdl/xmlSchema/choice.rb +4 -1
  57. data/lib/wsdl/xmlSchema/complexContent.rb +1 -1
  58. data/lib/wsdl/xmlSchema/complexExtension.rb +9 -1
  59. data/lib/wsdl/xmlSchema/complexRestriction.rb +8 -0
  60. data/lib/wsdl/xmlSchema/complexType.rb +38 -5
  61. data/lib/wsdl/xmlSchema/data.rb +30 -7
  62. data/lib/wsdl/xmlSchema/element.rb +10 -2
  63. data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
  64. data/lib/wsdl/xmlSchema/group.rb +118 -0
  65. data/lib/wsdl/xmlSchema/import.rb +11 -23
  66. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  67. data/lib/wsdl/xmlSchema/include.rb +11 -17
  68. data/lib/wsdl/xmlSchema/length.rb +3 -1
  69. data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
  70. data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
  71. data/lib/wsdl/xmlSchema/maxlength.rb +3 -1
  72. data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
  73. data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
  74. data/lib/wsdl/xmlSchema/minlength.rb +3 -1
  75. data/lib/wsdl/xmlSchema/schema.rb +34 -0
  76. data/lib/wsdl/xmlSchema/sequence.rb +4 -1
  77. data/lib/wsdl/xmlSchema/simpleExtension.rb +8 -0
  78. data/lib/wsdl/xmlSchema/simpleRestriction.rb +49 -8
  79. data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
  80. data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
  81. data/lib/wsdl/xmlSchema/xsd2ruby.rb +13 -4
  82. data/lib/xsd/charset.rb +8 -6
  83. data/lib/xsd/codegen/classdef.rb +5 -0
  84. data/lib/xsd/codegen/moduledef.rb +17 -0
  85. data/lib/xsd/datatypes.rb +165 -20
  86. data/lib/xsd/mapping.rb +13 -5
  87. data/lib/xsd/namedelements.rb +8 -0
  88. data/lib/xsd/ns.rb +50 -14
  89. data/lib/xsd/qname.rb +3 -2
  90. data/lib/xsd/xmlparser.rb +4 -3
  91. data/test/soap/asp.net/test_aspdotnet.rb +1 -1
  92. data/test/soap/auth/test_basic.rb +4 -3
  93. data/test/soap/auth/test_digest.rb +4 -3
  94. data/test/soap/calc/test_calc.rb +6 -4
  95. data/test/soap/calc/test_calc2.rb +6 -4
  96. data/test/soap/calc/test_calc_cgi.rb +6 -4
  97. data/test/soap/fault/test_customfault.rb +6 -4
  98. data/test/soap/fault/test_soaparray.rb +35 -0
  99. data/test/soap/filter/test_filter.rb +2 -2
  100. data/test/soap/header/test_authheader.rb +2 -2
  101. data/test/soap/header/test_authheader_cgi.rb +3 -3
  102. data/test/soap/header/test_simplehandler.rb +2 -2
  103. data/test/soap/helloworld/test_helloworld.rb +6 -4
  104. data/test/soap/ssl/test_ssl.rb +1 -1
  105. data/test/soap/struct/test_struct.rb +2 -2
  106. data/test/soap/swa/test_file.rb +6 -4
  107. data/test/soap/test_basetype.rb +4 -4
  108. data/test/soap/test_cookie.rb +2 -2
  109. data/test/soap/test_custom_ns.rb +50 -8
  110. data/test/soap/test_custommap.rb +6 -4
  111. data/test/soap/test_empty.rb +6 -4
  112. data/test/soap/test_envelopenamespace.rb +2 -2
  113. data/test/soap/test_extraattr.rb +6 -7
  114. data/test/soap/test_generator.rb +27 -0
  115. data/test/soap/test_mapping.rb +10 -0
  116. data/test/soap/test_nestedexception.rb +56 -0
  117. data/test/soap/test_nil.rb +6 -4
  118. data/test/soap/test_no_indent.rb +6 -4
  119. data/test/soap/test_response_as_xml.rb +2 -2
  120. data/test/soap/test_streamhandler.rb +6 -3
  121. data/test/soap/test_styleuse.rb +2 -2
  122. data/test/soap/wsdlDriver/test_calc.rb +2 -2
  123. data/test/soap/wsdlDriver/test_document.rb +2 -2
  124. data/test/soap/wsdlDriver/test_simpletype.rb +2 -2
  125. data/test/wsdl/abstract/test_abstract.rb +1 -1
  126. data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
  127. data/test/wsdl/anonymous/expectedDriver.rb +59 -0
  128. data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
  129. data/test/wsdl/anonymous/lp.wsdl +147 -0
  130. data/test/wsdl/anonymous/test_anonymous.rb +130 -0
  131. data/test/wsdl/any/expectedDriver.rb +3 -2
  132. data/test/wsdl/any/expectedEcho.rb +22 -2
  133. data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
  134. data/test/wsdl/any/expectedService.rb +3 -1
  135. data/test/wsdl/any/test_any.rb +2 -7
  136. data/test/wsdl/axisArray/axisArray.wsdl +31 -4
  137. data/test/wsdl/axisArray/test_axisarray.rb +58 -3
  138. data/test/wsdl/choice/choice.wsdl +39 -0
  139. data/test/wsdl/choice/test_choice.rb +134 -7
  140. data/test/wsdl/complexcontent/test_echo.rb +1 -1
  141. data/test/wsdl/datetime/test_datetime.rb +2 -2
  142. data/test/wsdl/document/array/double.wsdl +45 -6
  143. data/test/wsdl/document/array/test_array.rb +68 -1
  144. data/test/wsdl/document/document.wsdl +2 -0
  145. data/test/wsdl/document/test_nosoapaction.rb +1 -1
  146. data/test/wsdl/document/test_number.rb +1 -1
  147. data/test/wsdl/document/test_rpc.rb +78 -9
  148. data/test/wsdl/fault/test_fault.rb +1 -1
  149. data/test/wsdl/fault/test_multifault.rb +1 -1
  150. data/test/wsdl/group/expectedClassdef.rb +58 -0
  151. data/test/wsdl/group/expectedDriver.rb +51 -0
  152. data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
  153. data/test/wsdl/group/group.wsdl +88 -0
  154. data/test/wsdl/group/test_rpc.rb +145 -0
  155. data/test/wsdl/list/test_list.rb +1 -1
  156. data/test/wsdl/map/test_map.rb +2 -2
  157. data/test/wsdl/marshal/person_org.rb +5 -0
  158. data/test/wsdl/multiplefault.wsdl +11 -4
  159. data/test/wsdl/oneway/test_oneway.rb +1 -1
  160. data/test/wsdl/overload/test_overload.rb +1 -1
  161. data/test/wsdl/qualified/test_qualified.rb +1 -1
  162. data/test/wsdl/qualified/test_unqualified.rb +1 -1
  163. data/test/wsdl/raa/RAAService.rb +62 -57
  164. data/test/wsdl/raa/expectedClassDef.rb +100 -0
  165. data/test/wsdl/raa/expectedDriver.rb +96 -0
  166. data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
  167. data/test/wsdl/raa/test_raa.rb +54 -19
  168. data/test/wsdl/ref/expectedDriver.rb +1 -1
  169. data/test/wsdl/ref/expectedProduct.rb +101 -16
  170. data/test/wsdl/ref/test_ref.rb +2 -1
  171. data/test/wsdl/rpc/test_rpc.rb +1 -2
  172. data/test/wsdl/rpc/test_rpc_lit.rb +13 -13
  173. data/test/wsdl/simplecontent/test_simplecontent.rb +5 -5
  174. data/test/wsdl/simpletype/rpc/expectedDriver.rb +3 -2
  175. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +2 -0
  176. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +10 -17
  177. data/test/wsdl/simpletype/rpc/expectedService.rb +4 -2
  178. data/test/wsdl/simpletype/test_simpletype.rb +2 -2
  179. data/test/wsdl/soap/test_soapbodyparts.rb +2 -2
  180. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +2 -0
  181. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +3 -2
  182. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +5 -9
  183. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +4 -2
  184. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +4 -2
  185. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +6 -0
  186. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +1 -1
  187. data/test/wsdl/soaptype/test_soaptype.rb +1 -1
  188. data/test/wsdl/test_multiplefault.rb +3 -1
  189. data/test/xsd/codegen/test_classdef.rb +30 -0
  190. data/test/xsd/test_ns.rb +21 -0
  191. data/test/xsd/test_xsd.rb +5 -4
  192. data/test/xsd/xsd2ruby/expected_mysample.rb +13 -2
  193. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +5 -11
  194. data/test/xsd/xsd2ruby/section.xsd +8 -0
  195. metadata +40 -8
  196. data/test/wsdl/axisArray/itemList.rb +0 -14
  197. data/test/wsdl/raa/RAA.rb +0 -120
  198. data/test/wsdl/raa/RAAServant.rb +0 -107
  199. data/test/wsdl/raa/server.rb +0 -103
@@ -0,0 +1,96 @@
1
+ require 'RAA.rb'
2
+ require 'RAAMappingRegistry.rb'
3
+ require 'soap/rpc/driver'
4
+
5
+ module WSDL::RAA
6
+
7
+ class RAABaseServicePortType < ::SOAP::RPC::Driver
8
+ DefaultEndpointUrl = "http://raa.ruby-lang.org/soap/1.0.2/"
9
+ NsC_002 = "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/"
10
+
11
+ Methods = [
12
+ [ XSD::QName.new(NsC_002, "getAllListings"),
13
+ "",
14
+ "getAllListings",
15
+ [ ["retval", "return", ["WSDL::RAA::StringArray", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "StringArray"]] ],
16
+ { :request_style => :rpc, :request_use => :encoded,
17
+ :response_style => :rpc, :response_use => :encoded,
18
+ :faults => {} }
19
+ ],
20
+ [ XSD::QName.new(NsC_002, "getProductTree"),
21
+ "",
22
+ "getProductTree",
23
+ [ ["retval", "return", ["Hash", "http://xml.apache.org/xml-soap", "Map"]] ],
24
+ { :request_style => :rpc, :request_use => :encoded,
25
+ :response_style => :rpc, :response_use => :encoded,
26
+ :faults => {} }
27
+ ],
28
+ [ XSD::QName.new(NsC_002, "getInfoFromCategory"),
29
+ "",
30
+ "getInfoFromCategory",
31
+ [ ["in", "category", ["WSDL::RAA::Category", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Category"]],
32
+ ["retval", "return", ["WSDL::RAA::InfoArray", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
33
+ { :request_style => :rpc, :request_use => :encoded,
34
+ :response_style => :rpc, :response_use => :encoded,
35
+ :faults => {} }
36
+ ],
37
+ [ XSD::QName.new(NsC_002, "getModifiedInfoSince"),
38
+ "",
39
+ "getModifiedInfoSince",
40
+ [ ["in", "timeInstant", ["::SOAP::SOAPDateTime"]],
41
+ ["retval", "return", ["WSDL::RAA::InfoArray", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
42
+ { :request_style => :rpc, :request_use => :encoded,
43
+ :response_style => :rpc, :response_use => :encoded,
44
+ :faults => {} }
45
+ ],
46
+ [ XSD::QName.new(NsC_002, "getInfoFromName"),
47
+ "",
48
+ "getInfoFromName",
49
+ [ ["in", "productName", ["::SOAP::SOAPString"]],
50
+ ["retval", "return", ["WSDL::RAA::Info", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
51
+ { :request_style => :rpc, :request_use => :encoded,
52
+ :response_style => :rpc, :response_use => :encoded,
53
+ :faults => {} }
54
+ ],
55
+ [ XSD::QName.new(NsC_002, "getInfoFromOwnerId"),
56
+ "",
57
+ "getInfoFromOwnerId",
58
+ [ ["in", "ownerId", ["::SOAP::SOAPInt"]],
59
+ ["retval", "return", ["WSDL::RAA::InfoArray", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
60
+ { :request_style => :rpc, :request_use => :encoded,
61
+ :response_style => :rpc, :response_use => :encoded,
62
+ :faults => {} }
63
+ ]
64
+ ]
65
+
66
+ def initialize(endpoint_url = nil)
67
+ endpoint_url ||= DefaultEndpointUrl
68
+ super(endpoint_url, nil)
69
+ self.mapping_registry = RAAMappingRegistry::EncodedRegistry
70
+ self.literal_mapping_registry = RAAMappingRegistry::LiteralRegistry
71
+ init_methods
72
+ end
73
+
74
+ private
75
+
76
+ def init_methods
77
+ Methods.each do |definitions|
78
+ opt = definitions.last
79
+ if opt[:request_style] == :document
80
+ add_document_operation(*definitions)
81
+ else
82
+ add_rpc_operation(*definitions)
83
+ qname = definitions[0]
84
+ name = definitions[2]
85
+ if qname.name != name and qname.name.capitalize == name.capitalize
86
+ ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
87
+ __send__(name, *arg)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+
95
+
96
+ end
@@ -0,0 +1,121 @@
1
+ require 'RAA.rb'
2
+ require 'soap/mapping'
3
+
4
+ module WSDL; module RAA
5
+
6
+ module RAAMappingRegistry
7
+ EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
8
+ LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
9
+ NsC_002 = "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/"
10
+
11
+ EncodedRegistry.register(
12
+ :class => WSDL::RAA::Category,
13
+ :schema_type => XSD::QName.new(NsC_002, "Category"),
14
+ :schema_element => [
15
+ ["major", ["SOAP::SOAPString", XSD::QName.new(nil, "major")]],
16
+ ["minor", ["SOAP::SOAPString", XSD::QName.new(nil, "minor")]]
17
+ ]
18
+ )
19
+
20
+ EncodedRegistry.register(
21
+ :class => WSDL::RAA::Product,
22
+ :schema_type => XSD::QName.new(NsC_002, "Product"),
23
+ :schema_element => [
24
+ ["id", ["SOAP::SOAPInt", XSD::QName.new(nil, "id")]],
25
+ ["name", ["SOAP::SOAPString", XSD::QName.new(nil, "name")]],
26
+ ["short_description", ["SOAP::SOAPString", XSD::QName.new(nil, "short_description")]],
27
+ ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]],
28
+ ["status", ["SOAP::SOAPString", XSD::QName.new(nil, "status")]],
29
+ ["homepage", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "homepage")]],
30
+ ["download", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "download")]],
31
+ ["license", ["SOAP::SOAPString", XSD::QName.new(nil, "license")]],
32
+ ["description", ["SOAP::SOAPString", XSD::QName.new(nil, "description")]]
33
+ ]
34
+ )
35
+
36
+ EncodedRegistry.register(
37
+ :class => WSDL::RAA::Owner,
38
+ :schema_type => XSD::QName.new(NsC_002, "Owner"),
39
+ :schema_element => [
40
+ ["id", ["SOAP::SOAPInt", XSD::QName.new(nil, "id")]],
41
+ ["email", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "email")]],
42
+ ["name", ["SOAP::SOAPString", XSD::QName.new(nil, "name")]]
43
+ ]
44
+ )
45
+
46
+ EncodedRegistry.register(
47
+ :class => WSDL::RAA::Info,
48
+ :schema_type => XSD::QName.new(NsC_002, "Info"),
49
+ :schema_element => [
50
+ ["category", ["WSDL::RAA::Category", XSD::QName.new(nil, "category")]],
51
+ ["product", ["WSDL::RAA::Product", XSD::QName.new(nil, "product")]],
52
+ ["owner", ["WSDL::RAA::Owner", XSD::QName.new(nil, "owner")]],
53
+ ["created", ["SOAP::SOAPDateTime", XSD::QName.new(nil, "created")]],
54
+ ["updated", ["SOAP::SOAPDateTime", XSD::QName.new(nil, "updated")]]
55
+ ]
56
+ )
57
+
58
+ EncodedRegistry.set(
59
+ WSDL::RAA::InfoArray,
60
+ ::SOAP::SOAPArray,
61
+ ::SOAP::Mapping::EncodedRegistry::TypedArrayFactory,
62
+ { :type => XSD::QName.new(NsC_002, "Info") }
63
+ )
64
+
65
+ EncodedRegistry.set(
66
+ WSDL::RAA::StringArray,
67
+ ::SOAP::SOAPArray,
68
+ ::SOAP::Mapping::EncodedRegistry::TypedArrayFactory,
69
+ { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "string") }
70
+ )
71
+
72
+ LiteralRegistry.register(
73
+ :class => WSDL::RAA::Category,
74
+ :schema_type => XSD::QName.new(NsC_002, "Category"),
75
+ :schema_element => [
76
+ ["major", ["SOAP::SOAPString", XSD::QName.new(nil, "major")]],
77
+ ["minor", ["SOAP::SOAPString", XSD::QName.new(nil, "minor")]]
78
+ ]
79
+ )
80
+
81
+ LiteralRegistry.register(
82
+ :class => WSDL::RAA::Product,
83
+ :schema_type => XSD::QName.new(NsC_002, "Product"),
84
+ :schema_element => [
85
+ ["id", ["SOAP::SOAPInt", XSD::QName.new(nil, "id")]],
86
+ ["name", ["SOAP::SOAPString", XSD::QName.new(nil, "name")]],
87
+ ["short_description", ["SOAP::SOAPString", XSD::QName.new(nil, "short_description")]],
88
+ ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]],
89
+ ["status", ["SOAP::SOAPString", XSD::QName.new(nil, "status")]],
90
+ ["homepage", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "homepage")]],
91
+ ["download", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "download")]],
92
+ ["license", ["SOAP::SOAPString", XSD::QName.new(nil, "license")]],
93
+ ["description", ["SOAP::SOAPString", XSD::QName.new(nil, "description")]]
94
+ ]
95
+ )
96
+
97
+ LiteralRegistry.register(
98
+ :class => WSDL::RAA::Owner,
99
+ :schema_type => XSD::QName.new(NsC_002, "Owner"),
100
+ :schema_element => [
101
+ ["id", ["SOAP::SOAPInt", XSD::QName.new(nil, "id")]],
102
+ ["email", ["SOAP::SOAPAnyURI", XSD::QName.new(nil, "email")]],
103
+ ["name", ["SOAP::SOAPString", XSD::QName.new(nil, "name")]]
104
+ ]
105
+ )
106
+
107
+ LiteralRegistry.register(
108
+ :class => WSDL::RAA::Info,
109
+ :schema_type => XSD::QName.new(NsC_002, "Info"),
110
+ :schema_element => [
111
+ ["category", ["WSDL::RAA::Category", XSD::QName.new(nil, "category")]],
112
+ ["product", ["WSDL::RAA::Product", XSD::QName.new(nil, "product")]],
113
+ ["owner", ["WSDL::RAA::Owner", XSD::QName.new(nil, "owner")]],
114
+ ["created", ["SOAP::SOAPDateTime", XSD::QName.new(nil, "created")]],
115
+ ["updated", ["SOAP::SOAPDateTime", XSD::QName.new(nil, "updated")]]
116
+ ]
117
+ )
118
+
119
+ end
120
+
121
+ end; end
@@ -1,8 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'soap/wsdlDriver'
3
- require 'RAA.rb'
4
- require 'RAAServant.rb'
5
- require 'RAAService.rb'
3
+ require 'wsdl/soap/wsdl2ruby'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
6
5
 
7
6
 
8
7
  module WSDL
@@ -15,11 +14,27 @@ class TestRAA < Test::Unit::TestCase
15
14
  Port = 17171
16
15
 
17
16
  def setup
17
+ setup_stub
18
18
  setup_server
19
19
  setup_client
20
20
  end
21
21
 
22
+ def setup_stub
23
+ gen = WSDL::SOAP::WSDL2Ruby.new
24
+ gen.location = pathname("raa.wsdl")
25
+ gen.basedir = DIR
26
+ gen.logger.level = Logger::FATAL
27
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
28
+ gen.opt['classdef'] = nil
29
+ gen.opt['mapping_registry'] = nil
30
+ gen.opt['driver'] = nil
31
+ gen.opt['force'] = true
32
+ gen.run
33
+ TestUtil.require(DIR, 'RAADriver.rb', 'RAAMappingRegistry.rb', 'RAA.rb')
34
+ end
35
+
22
36
  def setup_server
37
+ require pathname('RAAService.rb')
23
38
  @server = RAABaseServicePortTypeApp.new('RAA server', nil, '0.0.0.0', Port)
24
39
  @server.level = Logger::Severity::ERROR
25
40
  @t = Thread.new {
@@ -32,11 +47,19 @@ class TestRAA < Test::Unit::TestCase
32
47
  wsdl = File.join(DIR, 'raa.wsdl')
33
48
  @raa = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
34
49
  @raa.endpoint_url = "http://localhost:#{Port}/"
50
+ @raa.wiredump_dev = STDOUT if $DEBUG
51
+ @raa.mapping_registry = RAAMappingRegistry::EncodedRegistry
52
+ @raa.literal_mapping_registry = RAAMappingRegistry::LiteralRegistry
35
53
  end
36
54
 
37
55
  def teardown
38
- teardown_server
39
- teardown_client
56
+ teardown_server if @server
57
+ teardown_client if @client
58
+ unless $DEBUG
59
+ File.unlink(pathname('RAA.rb'))
60
+ File.unlink(pathname('RAAMappingRegistry.rb'))
61
+ File.unlink(pathname('RAADriver.rb'))
62
+ end
40
63
  end
41
64
 
42
65
  def teardown_server
@@ -49,14 +72,28 @@ class TestRAA < Test::Unit::TestCase
49
72
  @raa.reset_stream
50
73
  end
51
74
 
75
+ def test_stubgeneration
76
+ compare("expectedClassDef.rb", "RAA.rb")
77
+ compare("expectedMappingRegistry.rb", "RAAMappingRegistry.rb")
78
+ compare("expectedDriver.rb", "RAADriver.rb")
79
+ end
80
+
52
81
  def test_raa
53
- assert_equal(["ruby", "soap4r"], @raa.getAllListings)
82
+ do_test_raa(@raa)
83
+ end
54
84
 
55
- info = @raa.getInfoFromName("SOAP4R")
56
- assert_equal(::Info, info.class)
57
- assert_equal(::Category, info.category.class)
58
- assert_equal(::Product, info.product.class)
59
- assert_equal(::Owner, info.owner.class)
85
+ def test_stub
86
+ client = RAABaseServicePortType.new("http://localhost:#{Port}/")
87
+ do_test_raa(client)
88
+ end
89
+
90
+ def do_test_raa(client)
91
+ assert_equal(["ruby", "soap4r"], client.getAllListings)
92
+ info = client.getInfoFromName("SOAP4R")
93
+ assert_equal(Info, info.class)
94
+ assert_equal(Category, info.category.class)
95
+ assert_equal(Product, info.product.class)
96
+ assert_equal(Owner, info.owner.class)
60
97
  assert_equal("major", info.category.major)
61
98
  assert_equal("minor", info.category.minor)
62
99
  assert_equal(123, info.product.id)
@@ -75,14 +112,12 @@ class TestRAA < Test::Unit::TestCase
75
112
  assert(!info.updated.nil?)
76
113
  end
77
114
 
78
- def foo
79
- p @raa.getInfoFromCategory(Category.new("Library", "XML"))
80
- t = Time.at(Time.now.to_i - 24 * 3600)
81
- p @raa.getModifiedInfoSince(t)
82
- p @raa.getModifiedInfoSince(DateTime.new(t.year, t.mon, t.mday, t.hour, t.min, t.sec))
83
- p o.type
84
- p o.owner.name
85
- p o
115
+ def compare(expected, actual)
116
+ TestUtil.filecompare(pathname(expected), pathname(actual))
117
+ end
118
+
119
+ def pathname(filename)
120
+ File.join(DIR, filename)
86
121
  end
87
122
  end
88
123
 
@@ -1,8 +1,8 @@
1
1
  require 'product.rb'
2
2
  require 'productMappingRegistry.rb'
3
+ require 'soap/rpc/driver'
3
4
 
4
5
  module WSDL::Ref
5
- require 'soap/rpc/driver'
6
6
 
7
7
  class Ref_porttype < ::SOAP::RPC::Driver
8
8
  DefaultEndpointUrl = "http://localhost:17171/"
@@ -1,6 +1,11 @@
1
1
  require 'xsd/qname'
2
2
 
3
+ module WSDL; module Ref
4
+
5
+
3
6
  # {urn:ref}Product
7
+ # name - SOAP::SOAPString
8
+ # rating - SOAP::SOAPString
4
9
  class Product
5
10
  attr_accessor :name
6
11
  attr_accessor :rating
@@ -12,13 +17,20 @@ class Product
12
17
  end
13
18
 
14
19
  # {urn:ref}Comment
20
+ # xmlattr_msgid - SOAP::SOAPString
15
21
  class Comment < ::String
22
+ AttrMsgid = XSD::QName.new(nil, "msgid")
23
+
24
+ def __xmlattr
25
+ @__xmlattr ||= {}
26
+ end
27
+
16
28
  def xmlattr_msgid
17
- (@__xmlattr ||= {})[XSD::QName.new(nil, "msgid")]
29
+ __xmlattr[AttrMsgid]
18
30
  end
19
31
 
20
32
  def xmlattr_msgid=(value)
21
- (@__xmlattr ||= {})[XSD::QName.new(nil, "msgid")] = value
33
+ __xmlattr[AttrMsgid] = value
22
34
  end
23
35
 
24
36
  def initialize(*arg)
@@ -28,13 +40,20 @@ class Comment < ::String
28
40
  end
29
41
 
30
42
  # {urn:ref}_point
43
+ # xmlattr_unit - SOAP::SOAPString
31
44
  class C__point < ::String
45
+ AttrUnit = XSD::QName.new(nil, "unit")
46
+
47
+ def __xmlattr
48
+ @__xmlattr ||= {}
49
+ end
50
+
32
51
  def xmlattr_unit
33
- (@__xmlattr ||= {})[XSD::QName.new(nil, "unit")]
52
+ __xmlattr[AttrUnit]
34
53
  end
35
54
 
36
55
  def xmlattr_unit=(value)
37
- (@__xmlattr ||= {})[XSD::QName.new(nil, "unit")] = value
56
+ __xmlattr[AttrUnit] = value
38
57
  end
39
58
 
40
59
  def initialize(*arg)
@@ -44,13 +63,20 @@ class C__point < ::String
44
63
  end
45
64
 
46
65
  # {urn:ref}Document
66
+ # xmlattr_ID - SOAP::SOAPString
47
67
  class Document < ::String
68
+ AttrID = XSD::QName.new(nil, "ID")
69
+
70
+ def __xmlattr
71
+ @__xmlattr ||= {}
72
+ end
73
+
48
74
  def xmlattr_ID
49
- (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")]
75
+ __xmlattr[AttrID]
50
76
  end
51
77
 
52
78
  def xmlattr_ID=(value)
53
- (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")] = value
79
+ __xmlattr[AttrID] = value
54
80
  end
55
81
 
56
82
  def initialize(*arg)
@@ -60,24 +86,35 @@ class Document < ::String
60
86
  end
61
87
 
62
88
  # {urn:ref}DerivedChoice_BaseSimpleContent
89
+ # varStringExt - SOAP::SOAPString
90
+ # varFloatExt - SOAP::SOAPFloat
91
+ # xmlattr_ID - SOAP::SOAPString
92
+ # xmlattr_attrStringExt - SOAP::SOAPString
63
93
  class DerivedChoice_BaseSimpleContent < Document
94
+ AttrAttrStringExt = XSD::QName.new(nil, "attrStringExt")
95
+ AttrID = XSD::QName.new(nil, "ID")
96
+
64
97
  attr_accessor :varStringExt
65
98
  attr_accessor :varFloatExt
66
99
 
100
+ def __xmlattr
101
+ @__xmlattr ||= {}
102
+ end
103
+
67
104
  def xmlattr_ID
68
- (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")]
105
+ __xmlattr[AttrID]
69
106
  end
70
107
 
71
108
  def xmlattr_ID=(value)
72
- (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")] = value
109
+ __xmlattr[AttrID] = value
73
110
  end
74
111
 
75
112
  def xmlattr_attrStringExt
76
- (@__xmlattr ||= {})[XSD::QName.new(nil, "attrStringExt")]
113
+ __xmlattr[AttrAttrStringExt]
77
114
  end
78
115
 
79
116
  def xmlattr_attrStringExt=(value)
80
- (@__xmlattr ||= {})[XSD::QName.new(nil, "attrStringExt")] = value
117
+ __xmlattr[AttrAttrStringExt] = value
81
118
  end
82
119
 
83
120
  def initialize(varStringExt = nil, varFloatExt = nil)
@@ -95,7 +132,41 @@ class Rating < ::String
95
132
  end
96
133
 
97
134
  # {urn:ref}Product-Bag
135
+ # bag - WSDL::Ref::Product
136
+ # rating - SOAP::SOAPString
137
+ # comment_1 - WSDL::Ref::ProductBag::Comment_1
138
+ # comment_2 - WSDL::Ref::Comment
139
+ # m___point - WSDL::Ref::C__point
140
+ # xmlattr_version - SOAP::SOAPString
141
+ # xmlattr_yesno - SOAP::SOAPString
98
142
  class ProductBag
143
+ AttrVersion = XSD::QName.new("urn:ref", "version")
144
+ AttrYesno = XSD::QName.new("urn:ref", "yesno")
145
+
146
+ # inner class for member: Comment_1
147
+ # {}Comment_1
148
+ # xmlattr_msgid - SOAP::SOAPString
149
+ class Comment_1 < ::String
150
+ AttrMsgid = XSD::QName.new(nil, "msgid")
151
+
152
+ def __xmlattr
153
+ @__xmlattr ||= {}
154
+ end
155
+
156
+ def xmlattr_msgid
157
+ __xmlattr[AttrMsgid]
158
+ end
159
+
160
+ def xmlattr_msgid=(value)
161
+ __xmlattr[AttrMsgid] = value
162
+ end
163
+
164
+ def initialize(*arg)
165
+ super
166
+ @__xmlattr = {}
167
+ end
168
+ end
169
+
99
170
  attr_accessor :bag
100
171
  attr_accessor :rating
101
172
  attr_accessor :comment_1
@@ -109,20 +180,24 @@ class ProductBag
109
180
  @v___point = value
110
181
  end
111
182
 
183
+ def __xmlattr
184
+ @__xmlattr ||= {}
185
+ end
186
+
112
187
  def xmlattr_version
113
- (@__xmlattr ||= {})[XSD::QName.new("urn:ref", "version")]
188
+ __xmlattr[AttrVersion]
114
189
  end
115
190
 
116
191
  def xmlattr_version=(value)
117
- (@__xmlattr ||= {})[XSD::QName.new("urn:ref", "version")] = value
192
+ __xmlattr[AttrVersion] = value
118
193
  end
119
194
 
120
195
  def xmlattr_yesno
121
- (@__xmlattr ||= {})[XSD::QName.new("urn:ref", "yesno")]
196
+ __xmlattr[AttrYesno]
122
197
  end
123
198
 
124
199
  def xmlattr_yesno=(value)
125
- (@__xmlattr ||= {})[XSD::QName.new("urn:ref", "yesno")] = value
200
+ __xmlattr[AttrYesno] = value
126
201
  end
127
202
 
128
203
  def initialize(bag = [], rating = [], comment_1 = [], comment_2 = [], v___point = nil)
@@ -136,13 +211,20 @@ class ProductBag
136
211
  end
137
212
 
138
213
  # {urn:ref}Creator
214
+ # xmlattr_Role - SOAP::SOAPString
139
215
  class Creator < ::String
216
+ AttrRole = XSD::QName.new(nil, "Role")
217
+
218
+ def __xmlattr
219
+ @__xmlattr ||= {}
220
+ end
221
+
140
222
  def xmlattr_Role
141
- (@__xmlattr ||= {})[XSD::QName.new(nil, "Role")]
223
+ __xmlattr[AttrRole]
142
224
  end
143
225
 
144
226
  def xmlattr_Role=(value)
145
- (@__xmlattr ||= {})[XSD::QName.new(nil, "Role")] = value
227
+ __xmlattr[AttrRole] = value
146
228
  end
147
229
 
148
230
  def initialize(*arg)
@@ -156,3 +238,6 @@ class Yesno < ::String
156
238
  N = Yesno.new("N")
157
239
  Y = Yesno.new("Y")
158
240
  end
241
+
242
+
243
+ end; end