soap4r 1.5.7 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
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