wasabi 3.2.3 → 3.6.0

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 (50) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +4 -4
  4. data/lib/wasabi.rb +2 -0
  5. data/lib/wasabi/core_ext/string.rb +7 -8
  6. data/lib/wasabi/document.rb +6 -3
  7. data/lib/wasabi/parser.rb +42 -21
  8. data/lib/wasabi/resolver.rb +7 -4
  9. data/lib/wasabi/version.rb +3 -1
  10. data/spec/fixtures/brand.wsdl +624 -0
  11. data/spec/fixtures/multiple_parts_in_message.wsdl +66 -0
  12. data/spec/fixtures/no_message_parts.wsdl +82 -56
  13. data/spec/spec_helper.rb +2 -0
  14. data/spec/support/adapter.rb +20 -0
  15. data/spec/support/fixture.rb +2 -0
  16. data/spec/support/profiling.rb +2 -0
  17. data/spec/wasabi/core_ext/string_spec.rb +13 -11
  18. data/spec/wasabi/document/authentication_spec.rb +21 -5
  19. data/spec/wasabi/document/economic_spec.rb +2 -0
  20. data/spec/wasabi/document/encoded_endpoint_spec.rb +6 -1
  21. data/spec/wasabi/document/geotrust_spec.rb +25 -9
  22. data/spec/wasabi/document/inherited_spec.rb +12 -7
  23. data/spec/wasabi/document/multiple_namespaces_spec.rb +38 -16
  24. data/spec/wasabi/document/namespaced_actions_spec.rb +21 -5
  25. data/spec/wasabi/document/no_namespace_spec.rb +24 -8
  26. data/spec/wasabi/document/savon295_spec.rb +7 -2
  27. data/spec/wasabi/document/soap12_spec.rb +6 -1
  28. data/spec/wasabi/document/two_bindings_spec.rb +13 -3
  29. data/spec/wasabi/document_spec.rb +8 -6
  30. data/spec/wasabi/parser/get_servicename_spec.rb +3 -1
  31. data/spec/wasabi/parser/import_port_types_spec.rb +4 -2
  32. data/spec/wasabi/parser/juniper_spec.rb +5 -3
  33. data/spec/wasabi/parser/marketo_spec.rb +3 -1
  34. data/spec/wasabi/parser/multiple_namespaces_spec.rb +9 -7
  35. data/spec/wasabi/parser/multiple_parts_in_message_spec.rb +33 -0
  36. data/spec/wasabi/parser/no_message_parts_spec.rb +11 -3
  37. data/spec/wasabi/parser/no_namespace_spec.rb +6 -4
  38. data/spec/wasabi/parser/no_target_namespace_spec.rb +3 -1
  39. data/spec/wasabi/parser/softlayer_spec.rb +20 -0
  40. data/spec/wasabi/parser/symbolic_endpoint_spec.rb +8 -9
  41. data/spec/wasabi/parser/tradetracker_spec.rb +3 -1
  42. data/spec/wasabi/resolver_spec.rb +28 -11
  43. data/spec/wasabi/wasabi_spec.rb +3 -1
  44. metadata +73 -70
  45. data/.gitignore +0 -8
  46. data/.rspec +0 -1
  47. data/.travis.yml +0 -6
  48. data/Gemfile +0 -13
  49. data/Rakefile +0 -7
  50. data/wasabi.gemspec +0 -28
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Wasabi::Parser do
@@ -12,15 +14,15 @@ describe Wasabi::Parser do
12
14
  let(:xml) { fixture(:no_namespace).read }
13
15
 
14
16
  it "lists the types" do
15
- subject.types.keys.sort.should == ["McContact", "McContactArray", "MpUser", "MpUserArray"]
17
+ expect(subject.types.keys.sort).to eq(["McContact", "McContactArray", "MpUser", "MpUserArray"])
16
18
  end
17
19
 
18
20
  it "ignores xsd:all" do
19
21
  keys = subject.types["MpUser"].keys
20
- keys.size.should == 2
22
+ expect(keys.size).to eq(2)
21
23
 
22
- keys.should include(:namespace)
23
- keys.should include(:order!)
24
+ expect(keys).to include(:namespace)
25
+ expect(keys).to include(:order!)
24
26
  end
25
27
  end
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Wasabi::Parser do
@@ -29,7 +31,7 @@ describe Wasabi::Parser do
29
31
  # but I suppose we should do something reasonable if they do.
30
32
 
31
33
  it "defaults to the target namespace from xs:definitions" do
32
- subject.types["Save"][:namespace].should == "http://def.example.com"
34
+ expect(subject.types["Save"][:namespace]).to eq("http://def.example.com")
33
35
  end
34
36
 
35
37
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Wasabi::Parser do
6
+ context 'with: brand.wsdl' do
7
+ subject do
8
+ parser = Wasabi::Parser.new Nokogiri::XML(xml)
9
+ parser.parse
10
+ parser
11
+ end
12
+
13
+ let(:xml) { fixture(:brand).read }
14
+
15
+ it 'parses the operations' do
16
+ expect(subject.operations[:create_object][:input]).to eq('createObject' => { 'templateObject' => ['tns', 'SoftLayer_Brand'] })
17
+ expect(subject.operations[:create_customer_account][:input]).to eq('createCustomerAccount' => {'account' => ['tns', 'SoftLayer_Account'], 'bypassDuplicateAccountCheck' => ['xsd', 'boolean']})
18
+ end
19
+ end
20
+ end
@@ -1,23 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Wasabi::Parser do
4
6
  context "with: symbolic_endpoint.wsdl" do
5
-
6
- subject do
7
- parser = Wasabi::Parser.new Nokogiri::XML(xml)
8
- parser.parse
9
- parser
10
- end
7
+ subject(:parser) { described_class.new Nokogiri::XML(xml) }
11
8
 
12
9
  let(:xml) { fixture(:symbolic_endpoint).read }
13
10
 
11
+ before { parser.parse }
12
+
14
13
  it "allows symbolic endpoints" do
15
- subject.endpoint.should be_nil
14
+ expect(parser.endpoint).to be_nil
16
15
  end
17
16
 
18
17
  it "should position base class attributes before subclass attributes in :order! array" do
19
- type = subject.types["ROPtsLiesListe"]
20
- type[:order!].should == ["messages", "returncode", "listenteil"]
18
+ type = parser.types["ROPtsLiesListe"]
19
+ expect(type[:order!]).to eq(["messages", "returncode", "listenteil"])
21
20
  end
22
21
 
23
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Wasabi::Parser do
@@ -11,7 +13,7 @@ describe Wasabi::Parser do
11
13
  let(:xml) { fixture(:tradetracker).read }
12
14
 
13
15
  it 'parses the operations' do
14
- subject.operations[:get_feeds][:input].should == 'getFeeds'
16
+ expect(subject.operations[:get_feeds][:input]).to eq('getFeeds' => {"affiliateSiteID"=>["xsd", "nonNegativeInteger"], "options"=>["tns", "FeedFilter"]})
15
17
  end
16
18
  end
17
19
  end
@@ -1,22 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Wasabi::Resolver do
4
6
 
5
7
  describe "#resolve" do
6
8
  it "resolves remote documents" do
7
- HTTPI.should_receive(:get) { HTTPI::Response.new(200, {}, "wsdl") }
9
+ expect(HTTPI).to receive(:get) { HTTPI::Response.new(200, {}, "wsdl") }
8
10
  xml = Wasabi::Resolver.new("http://example.com?wsdl").resolve
9
- xml.should == "wsdl"
11
+ expect(xml).to eq("wsdl")
12
+ end
13
+
14
+ it "resolves remote documents with custom adapter" do
15
+ prev_logging = HTTPI.instance_variable_get(:@log)
16
+ HTTPI.log = false # Don't pollute rspec output by request logging
17
+ xml = Wasabi::Resolver.new("http://example.com?wsdl", nil, :fake_adapter_for_test).resolve
18
+ expect(xml).to eq("wsdl_by_adapter")
19
+ expect(FakeAdapterForTest.class_variable_get(:@@requests).size).to eq(1)
20
+ expect(FakeAdapterForTest.class_variable_get(:@@requests).first.url).to eq(URI.parse("http://example.com?wsdl"))
21
+ expect(FakeAdapterForTest.class_variable_get(:@@methods)).to eq([:get])
22
+ HTTPI.log = prev_logging
10
23
  end
11
24
 
12
25
  it "resolves local documents" do
13
26
  xml = Wasabi::Resolver.new(fixture(:authentication).path).resolve
14
- xml.should == fixture(:authentication).read
27
+ expect(xml).to eq(fixture(:authentication).read)
15
28
  end
16
29
 
17
30
  it "simply returns raw XML" do
18
31
  xml = Wasabi::Resolver.new("<xml/>").resolve
19
- xml.should == "<xml/>"
32
+ expect(xml).to eq("<xml/>")
20
33
  end
21
34
 
22
35
  it "raises HTTPError when #load_from_remote gets a response error" do
@@ -26,13 +39,17 @@ describe Wasabi::Resolver do
26
39
  }
27
40
  body = "<html><head><title>404 Not Found</title></head><body>Oops!</body></html>"
28
41
  failed_response = HTTPI::Response.new(code, headers, body)
29
- HTTPI.stub(:get => failed_response)
30
- lambda do
31
- Wasabi::Resolver.new("http://example.com?wsdl").resolve
32
- end.should raise_error { |ex|
33
- ex.should be_a(Wasabi::Resolver::HTTPError)
34
- ex.message.should == "Error: #{code}"
35
- ex.response.should == failed_response
42
+
43
+ expect(HTTPI).to receive(:get) { failed_response }
44
+
45
+ url = "http://example.com?wsdl"
46
+
47
+ expect do
48
+ Wasabi::Resolver.new(url).resolve
49
+ end.to raise_error { |ex|
50
+ expect(ex).to be_a(Wasabi::Resolver::HTTPError)
51
+ expect(ex.message).to eq("Error: #{code} for url #{url}")
52
+ expect(ex.response).to eq(failed_response)
36
53
  }
37
54
  end
38
55
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Wasabi do
@@ -5,7 +7,7 @@ describe Wasabi do
5
7
  describe ".document" do
6
8
  it "should return a new Wasabi::Document" do
7
9
  document = Wasabi.document fixture(:authentication).read
8
- document.should be_a(Wasabi::Document)
10
+ expect(document).to be_a(Wasabi::Document)
9
11
  end
10
12
  end
11
13
 
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasabi
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-16 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.4.0
33
+ version: 1.4.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.4.0
40
+ version: 1.4.2
41
41
  - !ruby/object:Gem::Dependency
42
- name: mime-types
42
+ name: addressable
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - <
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - <
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.9'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.9'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.10'
75
+ version: 3.7.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.10'
82
+ version: 3.7.0
83
83
  description: A simple WSDL parser
84
84
  email:
85
85
  - me@rubiii.com
@@ -87,14 +87,9 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .rspec
92
- - .travis.yml
93
90
  - CHANGELOG.md
94
- - Gemfile
95
91
  - LICENSE
96
92
  - README.md
97
- - Rakefile
98
93
  - lib/wasabi.rb
99
94
  - lib/wasabi/core_ext/string.rb
100
95
  - lib/wasabi/document.rb
@@ -102,6 +97,7 @@ files:
102
97
  - lib/wasabi/resolver.rb
103
98
  - lib/wasabi/version.rb
104
99
  - spec/fixtures/authentication.wsdl
100
+ - spec/fixtures/brand.wsdl
105
101
  - spec/fixtures/economic.wsdl
106
102
  - spec/fixtures/encoded_endpoint.wsdl
107
103
  - spec/fixtures/geotrust.wsdl
@@ -111,6 +107,7 @@ files:
111
107
  - spec/fixtures/lower_camel.wsdl
112
108
  - spec/fixtures/marketo.wsdl
113
109
  - spec/fixtures/multiple_namespaces.wsdl
110
+ - spec/fixtures/multiple_parts_in_message.wsdl
114
111
  - spec/fixtures/multiple_types.wsdl
115
112
  - spec/fixtures/namespaced_actions.wsdl
116
113
  - spec/fixtures/no_message_parts.wsdl
@@ -121,6 +118,7 @@ files:
121
118
  - spec/fixtures/tradetracker.wsdl
122
119
  - spec/fixtures/two_bindings.wsdl
123
120
  - spec/spec_helper.rb
121
+ - spec/support/adapter.rb
124
122
  - spec/support/fixture.rb
125
123
  - spec/support/profiling.rb
126
124
  - spec/wasabi/core_ext/string_spec.rb
@@ -141,83 +139,88 @@ files:
141
139
  - spec/wasabi/parser/juniper_spec.rb
142
140
  - spec/wasabi/parser/marketo_spec.rb
143
141
  - spec/wasabi/parser/multiple_namespaces_spec.rb
142
+ - spec/wasabi/parser/multiple_parts_in_message_spec.rb
144
143
  - spec/wasabi/parser/no_message_parts_spec.rb
145
144
  - spec/wasabi/parser/no_namespace_spec.rb
146
145
  - spec/wasabi/parser/no_target_namespace_spec.rb
146
+ - spec/wasabi/parser/softlayer_spec.rb
147
147
  - spec/wasabi/parser/symbolic_endpoint_spec.rb
148
148
  - spec/wasabi/parser/tradetracker_spec.rb
149
149
  - spec/wasabi/resolver_spec.rb
150
150
  - spec/wasabi/wasabi_spec.rb
151
- - wasabi.gemspec
152
151
  homepage: https://github.com/savonrb/wasabi
153
152
  licenses:
154
153
  - MIT
155
154
  metadata: {}
156
- post_install_message:
155
+ post_install_message:
157
156
  rdoc_options: []
158
157
  require_paths:
159
158
  - lib
160
159
  required_ruby_version: !ruby/object:Gem::Requirement
161
160
  requirements:
162
- - - '>='
161
+ - - ">="
163
162
  - !ruby/object:Gem::Version
164
- version: '0'
163
+ version: 1.9.2
165
164
  required_rubygems_version: !ruby/object:Gem::Requirement
166
165
  requirements:
167
- - - '>='
166
+ - - ">="
168
167
  - !ruby/object:Gem::Version
169
168
  version: '0'
170
169
  requirements: []
171
- rubyforge_project: wasabi
172
- rubygems_version: 2.0.3
173
- signing_key:
170
+ rubygems_version: 3.1.3
171
+ signing_key:
174
172
  specification_version: 4
175
173
  summary: A simple WSDL parser
176
174
  test_files:
177
- - spec/fixtures/authentication.wsdl
178
- - spec/fixtures/economic.wsdl
179
- - spec/fixtures/encoded_endpoint.wsdl
180
- - spec/fixtures/geotrust.wsdl
181
- - spec/fixtures/import_port_types.wsdl
182
- - spec/fixtures/inherited.wsdl
183
- - spec/fixtures/juniper.wsdl
184
- - spec/fixtures/lower_camel.wsdl
185
- - spec/fixtures/marketo.wsdl
186
- - spec/fixtures/multiple_namespaces.wsdl
187
- - spec/fixtures/multiple_types.wsdl
188
- - spec/fixtures/namespaced_actions.wsdl
189
- - spec/fixtures/no_message_parts.wsdl
190
- - spec/fixtures/no_namespace.wsdl
191
- - spec/fixtures/savon295.wsdl
192
- - spec/fixtures/soap12.wsdl
193
- - spec/fixtures/symbolic_endpoint.wsdl
194
- - spec/fixtures/tradetracker.wsdl
195
- - spec/fixtures/two_bindings.wsdl
196
175
  - spec/spec_helper.rb
197
- - spec/support/fixture.rb
198
- - spec/support/profiling.rb
199
176
  - spec/wasabi/core_ext/string_spec.rb
200
- - spec/wasabi/document/authentication_spec.rb
201
177
  - spec/wasabi/document/economic_spec.rb
202
- - spec/wasabi/document/encoded_endpoint_spec.rb
203
- - spec/wasabi/document/geotrust_spec.rb
204
- - spec/wasabi/document/inherited_spec.rb
205
- - spec/wasabi/document/multiple_namespaces_spec.rb
206
- - spec/wasabi/document/namespaced_actions_spec.rb
207
178
  - spec/wasabi/document/no_namespace_spec.rb
208
- - spec/wasabi/document/savon295_spec.rb
179
+ - spec/wasabi/document/namespaced_actions_spec.rb
180
+ - spec/wasabi/document/authentication_spec.rb
181
+ - spec/wasabi/document/encoded_endpoint_spec.rb
209
182
  - spec/wasabi/document/soap12_spec.rb
210
183
  - spec/wasabi/document/two_bindings_spec.rb
211
- - spec/wasabi/document_spec.rb
212
- - spec/wasabi/parser/get_servicename_spec.rb
213
- - spec/wasabi/parser/import_port_types_spec.rb
184
+ - spec/wasabi/document/multiple_namespaces_spec.rb
185
+ - spec/wasabi/document/inherited_spec.rb
186
+ - spec/wasabi/document/geotrust_spec.rb
187
+ - spec/wasabi/document/savon295_spec.rb
188
+ - spec/wasabi/parser/no_target_namespace_spec.rb
189
+ - spec/wasabi/parser/no_namespace_spec.rb
214
190
  - spec/wasabi/parser/juniper_spec.rb
215
- - spec/wasabi/parser/marketo_spec.rb
216
- - spec/wasabi/parser/multiple_namespaces_spec.rb
191
+ - spec/wasabi/parser/get_servicename_spec.rb
217
192
  - spec/wasabi/parser/no_message_parts_spec.rb
218
- - spec/wasabi/parser/no_namespace_spec.rb
219
- - spec/wasabi/parser/no_target_namespace_spec.rb
220
193
  - spec/wasabi/parser/symbolic_endpoint_spec.rb
194
+ - spec/wasabi/parser/softlayer_spec.rb
221
195
  - spec/wasabi/parser/tradetracker_spec.rb
196
+ - spec/wasabi/parser/marketo_spec.rb
197
+ - spec/wasabi/parser/multiple_namespaces_spec.rb
198
+ - spec/wasabi/parser/multiple_parts_in_message_spec.rb
199
+ - spec/wasabi/parser/import_port_types_spec.rb
222
200
  - spec/wasabi/resolver_spec.rb
223
201
  - spec/wasabi/wasabi_spec.rb
202
+ - spec/wasabi/document_spec.rb
203
+ - spec/support/profiling.rb
204
+ - spec/support/adapter.rb
205
+ - spec/support/fixture.rb
206
+ - spec/fixtures/namespaced_actions.wsdl
207
+ - spec/fixtures/no_message_parts.wsdl
208
+ - spec/fixtures/multiple_parts_in_message.wsdl
209
+ - spec/fixtures/lower_camel.wsdl
210
+ - spec/fixtures/marketo.wsdl
211
+ - spec/fixtures/juniper.wsdl
212
+ - spec/fixtures/authentication.wsdl
213
+ - spec/fixtures/encoded_endpoint.wsdl
214
+ - spec/fixtures/tradetracker.wsdl
215
+ - spec/fixtures/import_port_types.wsdl
216
+ - spec/fixtures/brand.wsdl
217
+ - spec/fixtures/multiple_namespaces.wsdl
218
+ - spec/fixtures/multiple_types.wsdl
219
+ - spec/fixtures/geotrust.wsdl
220
+ - spec/fixtures/no_namespace.wsdl
221
+ - spec/fixtures/soap12.wsdl
222
+ - spec/fixtures/two_bindings.wsdl
223
+ - spec/fixtures/economic.wsdl
224
+ - spec/fixtures/symbolic_endpoint.wsdl
225
+ - spec/fixtures/inherited.wsdl
226
+ - spec/fixtures/savon295.wsdl