wasabi 2.4.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ ## 2.4.1 (2012-06-18)
2
+
3
+ * Fix: [rubiii/savon#296](https://github.com/rubiii/savon/issues/296) fixes an issue where
4
+ the WSDL message element doesn't have part element.
5
+
1
6
  ## 2.4.0 (2012-06-08)
2
7
 
3
8
  * Feature: `Wasabi::Document` now accepts either a URL of a remote document,
@@ -150,14 +150,19 @@ module Wasabi
150
150
 
151
151
  # Look up the input by walking up to portType, then up to the message.
152
152
 
153
- binding_input = at_xpath(operation, ".//wsdl:input/@name")
154
153
  binding_type = at_xpath(operation, "../@type").to_s.split(':').last
155
154
  port_type_input = at_xpath(operation, "../../wsdl:portType[@name='#{binding_type}']/wsdl:operation[@name='#{operation_name}']/wsdl:input")
156
155
 
157
156
  port_message_ns_id, port_message_type = port_type_input.attribute("message").to_s.split(':')
158
157
 
159
- # Kinda hackey maybe? This assumes there is ever only one 'part' element in the message.
160
- message_ns_id, message_type = at_xpath(port_type_input, "../../../wsdl:message[@name='#{port_message_type}']/wsdl:part[1]").attribute("element").to_s.split(':')
158
+ message_ns_id, message_type = nil
159
+
160
+ # TODO: Support multiple 'part' elements in the message.
161
+ if (port_message_part = at_xpath(port_type_input, "../../../wsdl:message[@name='#{port_message_type}']/wsdl:part[1]"))
162
+ if (port_message_part_element = port_message_part.attribute("element"))
163
+ message_ns_id, message_type = port_message_part_element.to_s.split(':')
164
+ end
165
+ end
161
166
 
162
167
  # Fall back to message name in portType input if no 'element' attribute in wsdl:message
163
168
  if message_type
@@ -1,5 +1,5 @@
1
1
  module Wasabi
2
2
 
3
- VERSION = "2.4.0"
3
+ VERSION = "2.4.1"
4
4
 
5
5
  end
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <definitions
3
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
4
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
5
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
6
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
7
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
8
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9
+ xmlns:s="http://www.w3.org/2001/XMLSchema"
10
+ xmlns:article="http://example.com/article"
11
+ xmlns:actions="http://example.com/actions"
12
+ targetNamespace="http://example.com/actions">
13
+ <types>
14
+ <s:schema elementFormDefault="qualified" targetNamespace="http://example.com/actions">
15
+ <s:element name="Save">
16
+ <s:complexType>
17
+ <s:sequence>
18
+ <s:element name="article" type="article:Article"/>
19
+ </s:sequence>
20
+ </s:complexType>
21
+ </s:element>
22
+ </s:schema>
23
+ <s:schema elementFormDefault="qualified" targetNamespace="http://example.com/article">
24
+ <s:complexType name="Article">
25
+ <s:sequence>
26
+ <s:element minOccurs="0" name="Author" type="s:string"/>
27
+ <s:element minOccurs="0" name="Title" type="s:string"/>
28
+ </s:sequence>
29
+ </s:complexType>
30
+ </s:schema>
31
+ </types>
32
+ <message name="SaveSoapIn"/>
33
+ <message name="SaveSoapOut">
34
+ <part name="parameters" element="actions:SaveResponse"/>
35
+ </message>
36
+ <portType name="ArticleSoap">
37
+ <operation name="Save">
38
+ <input message="actions:SaveSoapIn"/>
39
+ <output message="actions:SaveSoapOut"/>
40
+ </operation>
41
+ </portType>
42
+ <binding name="ArticleSoap" type="actions:ArticleSoap">
43
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
44
+ <operation name="Save">
45
+ <soap:operation soapAction="http://example.com/actions.Save" style="document"/>
46
+ <input>
47
+ <soap:body use="literal"/>
48
+ </input>
49
+ <output>
50
+ <soap:body use="literal"/>
51
+ </output>
52
+ </operation>
53
+ </binding>
54
+ <service name="StudyMDL">
55
+ <port name="StudyMDLSoap" binding="actions:StudyMDLSoap">
56
+ <soap:address location="http://example.com:1234/soap"/>
57
+ </port>
58
+ </service>
59
+ </definitions>
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe Wasabi::Parser do
4
+ context "with: no_message_parts.wsdl" do
5
+
6
+ subject do
7
+ parser = Wasabi::Parser.new Nokogiri::XML(xml)
8
+ parser.parse
9
+ parser
10
+ end
11
+
12
+ let(:xml) { fixture(:no_message_parts).read }
13
+
14
+ it "falls back to using the message type in the port element" do
15
+ subject.operations[:save][:input].should == "SaveSoapIn"
16
+ end
17
+
18
+ it "falls back to using the namespace ID in the port element" do
19
+ subject.operations[:save][:namespace_identifier].should == "actions"
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasabi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 4
9
- - 0
10
- version: 2.4.0
9
+ - 1
10
+ version: 2.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Harrington
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-08 00:00:00 Z
18
+ date: 2012-06-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -126,6 +126,7 @@ files:
126
126
  - spec/fixtures/multiple_namespaces.wsdl
127
127
  - spec/fixtures/multiple_types.wsdl
128
128
  - spec/fixtures/namespaced_actions.wsdl
129
+ - spec/fixtures/no_message_parts.wsdl
129
130
  - spec/fixtures/no_namespace.wsdl
130
131
  - spec/fixtures/soap12.wsdl
131
132
  - spec/fixtures/symbolic_endpoint.wsdl
@@ -144,6 +145,7 @@ files:
144
145
  - spec/wasabi/document/two_bindings_spec.rb
145
146
  - spec/wasabi/document_spec.rb
146
147
  - spec/wasabi/parser/multiple_namespaces_spec.rb
148
+ - spec/wasabi/parser/no_message_parts_spec.rb
147
149
  - spec/wasabi/parser/no_namespace_spec.rb
148
150
  - spec/wasabi/parser/no_target_namespace_spec.rb
149
151
  - spec/wasabi/parser/symbolic_endpoint_spec.rb
@@ -191,6 +193,7 @@ test_files:
191
193
  - spec/fixtures/multiple_namespaces.wsdl
192
194
  - spec/fixtures/multiple_types.wsdl
193
195
  - spec/fixtures/namespaced_actions.wsdl
196
+ - spec/fixtures/no_message_parts.wsdl
194
197
  - spec/fixtures/no_namespace.wsdl
195
198
  - spec/fixtures/soap12.wsdl
196
199
  - spec/fixtures/symbolic_endpoint.wsdl
@@ -209,6 +212,7 @@ test_files:
209
212
  - spec/wasabi/document/two_bindings_spec.rb
210
213
  - spec/wasabi/document_spec.rb
211
214
  - spec/wasabi/parser/multiple_namespaces_spec.rb
215
+ - spec/wasabi/parser/no_message_parts_spec.rb
212
216
  - spec/wasabi/parser/no_namespace_spec.rb
213
217
  - spec/wasabi/parser/no_target_namespace_spec.rb
214
218
  - spec/wasabi/parser/symbolic_endpoint_spec.rb