wsdl-reader 0.0.2 → 0.0.3
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.
- data/.idea/workspace.xml +0 -683
- data/lib/wsdl-reader.rb +1 -0
- data/lib/wsdl-reader/binding.rb +44 -21
- data/lib/wsdl-reader/error.rb +24 -0
- data/lib/wsdl-reader/message.rb +33 -3
- data/lib/wsdl-reader/operation.rb +85 -0
- data/lib/wsdl-reader/parser.rb +4 -2
- data/lib/wsdl-reader/port_type.rb +42 -10
- data/lib/wsdl-reader/version.rb +1 -1
- data/spec/binding_spec.rb +20 -20
- data/spec/fixtures/UserService.wsdl +24 -11
- data/spec/message_spec.rb +24 -5
- data/spec/operation_spec.rb +38 -0
- data/spec/parser_spec.rb +21 -16
- data/spec/port_type_spec.rb +34 -10
- metadata +11 -8
@@ -10,31 +10,31 @@
|
|
10
10
|
</xs:schema>
|
11
11
|
</types>
|
12
12
|
|
13
|
-
<message name="
|
13
|
+
<message name="getFirstNameRequest">
|
14
14
|
<part name="parameters" element="tns:GetFirstName"/>
|
15
15
|
</message>
|
16
|
-
<message name="
|
16
|
+
<message name="getLastNameRequest">
|
17
17
|
<part name="parameters" element="tns:GetLastName"/>
|
18
18
|
</message>
|
19
19
|
|
20
|
-
<message name="
|
20
|
+
<message name="userNameResponse">
|
21
21
|
<part name="parameters" element="xs:string"/>
|
22
22
|
</message>
|
23
23
|
|
24
24
|
<portType name="UserService">
|
25
|
-
<operation name="
|
26
|
-
<input message="tns:
|
27
|
-
<output message="tns:
|
25
|
+
<operation name="getFirstNameOperation">
|
26
|
+
<input message="tns:getFirstNameRequest"/>
|
27
|
+
<output message="tns:userNameResponse"/>
|
28
28
|
</operation>
|
29
|
-
<operation name="
|
30
|
-
<input message="tns:
|
31
|
-
<output message="tns:
|
29
|
+
<operation name="getLastNameOperation">
|
30
|
+
<input message="tns:getLastNameRequest"/>
|
31
|
+
<output message="tns:userNameResponse"/>
|
32
32
|
</operation>
|
33
33
|
</portType>
|
34
34
|
|
35
35
|
<binding name="UserServicePortBinding" type="tns:UserService">
|
36
36
|
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
37
|
-
<operation name="
|
37
|
+
<operation name="getFirstNameOperation">
|
38
38
|
<soap:operation soapAction=""/>
|
39
39
|
<input>
|
40
40
|
<soap:body use="literal"/>
|
@@ -43,7 +43,20 @@
|
|
43
43
|
<soap:body use="literal"/>
|
44
44
|
</output>
|
45
45
|
</operation>
|
46
|
-
<operation name="
|
46
|
+
<operation name="getLastNameOperation">
|
47
|
+
<soap:operation soapAction=""/>
|
48
|
+
<input>
|
49
|
+
<soap:body use="literal"/>
|
50
|
+
</input>
|
51
|
+
<output>
|
52
|
+
<soap:body use="literal"/>
|
53
|
+
</output>
|
54
|
+
</operation>
|
55
|
+
</binding>
|
56
|
+
|
57
|
+
<binding name="UserServicePortBinding2" type="tns:UserService">
|
58
|
+
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
59
|
+
<operation name="getLastNameOperation">
|
47
60
|
<soap:operation soapAction=""/>
|
48
61
|
<input>
|
49
62
|
<soap:body use="literal"/>
|
data/spec/message_spec.rb
CHANGED
@@ -3,20 +3,39 @@ require "spec_helper"
|
|
3
3
|
describe "WSDL Messages" do
|
4
4
|
|
5
5
|
context "WSDL::Reader::Messages" do
|
6
|
-
|
7
|
-
|
6
|
+
let(:parser) { WSDL::Reader::Parser.new('spec/fixtures/UserService.wsdl') }
|
7
|
+
subject { parser.messages }
|
8
|
+
|
9
|
+
it "should be kind of WSDL::Reader::Messages" do
|
10
|
+
subject.should be_kind_of WSDL::Reader::Messages
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should be kind of Hash" do
|
14
|
+
subject.should be_kind_of Hash
|
15
|
+
end
|
16
|
+
|
17
|
+
it "#lookup_messages_by_element should return operation name by given element name" do
|
18
|
+
messages = subject.lookup_messages_by_element("GetFirstName")
|
19
|
+
messages.count.should eq 1
|
20
|
+
messages.first.name.should eq "getFirstNameRequest"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "#lookup_operations_by_element should return operation name by given element name" do
|
24
|
+
operations = subject.lookup_operations_by_element(:input, "GetFirstName", parser.port_types)
|
25
|
+
operations.count.should eq 1
|
26
|
+
operations.first.should eq "getFirstNameOperation"
|
8
27
|
end
|
28
|
+
|
9
29
|
end
|
10
30
|
|
11
31
|
context "WSDL::Reader::Message" do
|
12
32
|
subject do
|
13
33
|
parser = WSDL::Reader::Parser.new('spec/fixtures/UserService.wsdl')
|
14
|
-
|
15
|
-
WSDL::Reader::Message.new(element)
|
34
|
+
parser.messages.first.last
|
16
35
|
end
|
17
36
|
|
18
37
|
its(:parts) { should eq "parameters" => { name: "parameters", element: "tns:GetFirstName", mode: :element } }
|
19
|
-
its(:name) { should eq "
|
38
|
+
its(:name) { should eq "getFirstNameRequest" }
|
20
39
|
end
|
21
40
|
|
22
41
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "WSDL Operation" do
|
4
|
+
let(:parser) { WSDL::Reader::Parser.new('spec/fixtures/UserService.wsdl') }
|
5
|
+
let(:binding) { parser.bindings['UserServicePortBinding'] }
|
6
|
+
let(:messages) { parser.messages }
|
7
|
+
subject { binding.operations['getFirstNameOperation'] }
|
8
|
+
|
9
|
+
it "should be WSDL::Reader::Operation instance" do
|
10
|
+
should be_a WSDL::Reader::Operation
|
11
|
+
end
|
12
|
+
|
13
|
+
its :name do
|
14
|
+
should eql "getFirstNameOperation"
|
15
|
+
end
|
16
|
+
|
17
|
+
its :method_name do
|
18
|
+
should eql "get_first_name_operation"
|
19
|
+
end
|
20
|
+
|
21
|
+
its :binding do
|
22
|
+
should be binding
|
23
|
+
end
|
24
|
+
|
25
|
+
its :soap_action do
|
26
|
+
should eq ""
|
27
|
+
end
|
28
|
+
|
29
|
+
its :style do
|
30
|
+
should eq nil
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should lookup message from given messages" do
|
34
|
+
element = subject.lookup_element(parser.port_types, parser.messages)
|
35
|
+
element.should eq "GetFirstName"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
data/spec/parser_spec.rb
CHANGED
@@ -11,51 +11,56 @@ describe "WSDL Parser" do
|
|
11
11
|
subject { parser }
|
12
12
|
|
13
13
|
context "attributes types" do
|
14
|
-
it { should
|
14
|
+
it { should be_kind_of WSDL::Reader::Parser }
|
15
15
|
|
16
|
-
its(:document) { should
|
16
|
+
its(:document) { should be_kind_of REXML::Document }
|
17
17
|
|
18
|
-
its(:prefixes) { should
|
18
|
+
its(:prefixes) { should be_kind_of Hash }
|
19
19
|
|
20
|
-
its(:target_namespace) { should
|
20
|
+
its(:target_namespace) { should be_kind_of String }
|
21
21
|
|
22
|
-
its(:types) { should
|
22
|
+
its(:types) { should be_kind_of SOAP::XSD }
|
23
23
|
|
24
|
-
its(:messages) { should
|
24
|
+
its(:messages) { should be_kind_of WSDL::Reader::Messages }
|
25
25
|
|
26
|
-
its(:port_types) { should
|
26
|
+
its(:port_types) { should be_kind_of WSDL::Reader::PortTypes }
|
27
27
|
|
28
|
-
its(:bindings) { should
|
28
|
+
its(:bindings) { should be_kind_of WSDL::Reader::Bindings }
|
29
29
|
|
30
|
-
its(:services) { should
|
30
|
+
its(:services) { should be_kind_of SOAP::WSDL::Services }
|
31
31
|
end
|
32
32
|
|
33
33
|
context "attributes values" do
|
34
34
|
#its(:document) { clean_xml(subject.document.to_s).should eql clean_xml(File.read('spec/fixtures/UserService.wsdl')) }
|
35
35
|
|
36
36
|
its(:prefixes) do
|
37
|
-
should eq "soap"
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
should eq "soap" => "http://schemas.xmlsoap.org/wsdl/soap/",
|
38
|
+
"tns" => "http://example.com/UserService/",
|
39
|
+
"xs" => "http://www.w3.org/2001/XMLSchema",
|
40
|
+
"__default__" => "http://schemas.xmlsoap.org/wsdl/"
|
41
41
|
end
|
42
42
|
|
43
43
|
its(:target_namespace) { should eq "http://example.com/UserService/" }
|
44
44
|
|
45
45
|
its(:types) { should eq SOAP::XSD.new }
|
46
46
|
|
47
|
-
its('messages.keys') { should eq %w{
|
47
|
+
its('messages.keys') { should eq %w{getFirstNameRequest getLastNameRequest userNameResponse} }
|
48
48
|
|
49
49
|
its('port_types.keys') { should eq %w{UserService} }
|
50
50
|
|
51
|
-
its('bindings.keys') { should eq %w{UserServicePortBinding} }
|
51
|
+
its('bindings.keys') { should eq %w{UserServicePortBinding UserServicePortBinding2} }
|
52
52
|
|
53
53
|
its('services.keys') { should eq %w{UserService} }
|
54
54
|
end
|
55
55
|
|
56
56
|
context "methods" do
|
57
57
|
|
58
|
-
its(:
|
58
|
+
its(:operations) { should eql parser.bindings.operations }
|
59
|
+
|
60
|
+
it "should delegate lookup_operation_by_element! to messages" do
|
61
|
+
subject.messages.should_receive(:lookup_operation_by_element!).with(1,2,3)
|
62
|
+
subject.lookup_operation_by_element! 1,2,3
|
63
|
+
end
|
59
64
|
|
60
65
|
end
|
61
66
|
end
|
data/spec/port_type_spec.rb
CHANGED
@@ -3,30 +3,54 @@ require "spec_helper"
|
|
3
3
|
describe "WSDL PortType" do
|
4
4
|
|
5
5
|
def user_service_port_type
|
6
|
-
{"
|
7
|
-
|
8
|
-
|
6
|
+
{ "getFirstNameOperation" => { :name => "getFirstNameOperation",
|
7
|
+
:input => { :message => "tns:getFirstNameRequest" },
|
8
|
+
:output => { :message => "tns:userNameResponse" } },
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
"getLastNameOperation" => { :name => "getLastNameOperation",
|
11
|
+
:input => { :message => "tns:getLastNameRequest" },
|
12
|
+
:output => { :message => "tns:userNameResponse" } }
|
13
13
|
}
|
14
14
|
end
|
15
15
|
|
16
|
+
let(:parser) { WSDL::Reader::Parser.new('spec/fixtures/UserService.wsdl') }
|
17
|
+
let(:messages) { parser.messages }
|
18
|
+
let(:operation) { parser.bindings.operations['getFirstNameOperation'] }
|
19
|
+
|
16
20
|
context "WSDL::Reader::PortTypes" do
|
17
21
|
it "child of Hash" do
|
18
22
|
WSDL::Reader::PortTypes.superclass.should be Hash
|
19
23
|
end
|
24
|
+
|
25
|
+
it "should lookup operation message in all port types" do
|
26
|
+
message = parser.port_types.lookup_operation_message :input, operation, messages
|
27
|
+
message.should be_a WSDL::Reader::Message
|
28
|
+
message.name.should eq "getFirstNameRequest"
|
29
|
+
end
|
20
30
|
end
|
21
31
|
|
22
32
|
context "WSDL::Reader::PortType" do
|
33
|
+
|
23
34
|
subject do
|
24
|
-
parser
|
25
|
-
element = parser.document.root.children.find { |e| e.class == REXML::Element && e.name == 'portType' }
|
26
|
-
WSDL::Reader::PortType.new(element)
|
35
|
+
parser.port_types.values.first
|
27
36
|
end
|
28
37
|
|
29
38
|
its(:operations) { should eq user_service_port_type }
|
30
39
|
its(:name) { should eq "UserService" }
|
40
|
+
|
41
|
+
it "#operation_message? should check message in operation" do
|
42
|
+
operation = { input: { message: 'getFirstNameRequest' } }
|
43
|
+
subject.operation_message?(:input, operation, messages.values.first).should be_true
|
44
|
+
|
45
|
+
operation = { input: { message: 'getLastNameRequest' } }
|
46
|
+
subject.operation_message?(:input, operation, messages.values.first).should be_false
|
47
|
+
end
|
48
|
+
|
49
|
+
it "#lookup_operation_message should lookup message in messages for given type and operation" do
|
50
|
+
message = subject.lookup_operation_message :input, operation, messages
|
51
|
+
message.should be_a WSDL::Reader::Message
|
52
|
+
message.name.should eq "getFirstNameRequest"
|
53
|
+
end
|
54
|
+
|
31
55
|
end
|
32
|
-
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wsdl-reader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &14464320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14464320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: guard-rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &14463020 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14463020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &14461860 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14461860
|
47
47
|
description: Read WSDL file and parse messages, bindings, portTypes and services
|
48
48
|
email:
|
49
49
|
- a.sozontov@gmail.com
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- lib/wsdl-reader/core_ext.rb
|
71
71
|
- lib/wsdl-reader/error.rb
|
72
72
|
- lib/wsdl-reader/message.rb
|
73
|
+
- lib/wsdl-reader/operation.rb
|
73
74
|
- lib/wsdl-reader/parser.rb
|
74
75
|
- lib/wsdl-reader/port_type.rb
|
75
76
|
- lib/wsdl-reader/request.rb
|
@@ -90,6 +91,7 @@ files:
|
|
90
91
|
- spec/fixtures/UserService.wsdl
|
91
92
|
- spec/fixtures/UserService.xsd
|
92
93
|
- spec/message_spec.rb
|
94
|
+
- spec/operation_spec.rb
|
93
95
|
- spec/parser_spec.rb
|
94
96
|
- spec/port_type_spec.rb
|
95
97
|
- spec/request_spec.rb
|
@@ -120,3 +122,4 @@ signing_key:
|
|
120
122
|
specification_version: 3
|
121
123
|
summary: WSDL for ruby
|
122
124
|
test_files: []
|
125
|
+
has_rdoc:
|