savon 2.12.1 → 2.13.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +87 -73
- data/CONTRIBUTING.md +15 -19
- data/Gemfile +2 -7
- data/README.md +14 -16
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
- data/coverage/assets/0.12.3/application.css +1 -0
- data/coverage/assets/0.12.3/application.js +7 -0
- data/coverage/assets/0.12.3/colorbox/border.png +0 -0
- data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
- data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
- data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.12.3/favicon_green.png +0 -0
- data/coverage/assets/0.12.3/favicon_red.png +0 -0
- data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.12.3/loading.gif +0 -0
- data/coverage/assets/0.12.3/magnify.png +0 -0
- data/coverage/index.html +21518 -0
- data/lib/savon/block_interface.rb +1 -0
- data/lib/savon/builder.rb +95 -29
- data/lib/savon/client.rb +1 -0
- data/lib/savon/core_ext/string.rb +1 -0
- data/lib/savon/header.rb +2 -6
- data/lib/savon/http_error.rb +4 -4
- data/lib/savon/log_message.rb +1 -0
- data/lib/savon/message.rb +1 -0
- data/lib/savon/mock/expectation.rb +1 -0
- data/lib/savon/mock/spec_helper.rb +1 -0
- data/lib/savon/mock.rb +1 -0
- data/lib/savon/model.rb +1 -0
- data/lib/savon/operation.rb +20 -18
- data/lib/savon/options.rb +56 -0
- data/lib/savon/qualified_message.rb +3 -2
- data/lib/savon/request.rb +5 -0
- data/lib/savon/request_logger.rb +8 -2
- data/lib/savon/response.rb +48 -1
- data/lib/savon/soap_fault.rb +1 -0
- data/lib/savon/version.rb +2 -1
- data/lib/savon.rb +1 -0
- data/savon.gemspec +9 -8
- data/spec/integration/support/application.rb +33 -1
- data/spec/integration/support/server.rb +1 -0
- data/spec/integration/zipcode_example_spec.rb +5 -8
- data/spec/savon/builder_spec.rb +2 -1
- data/spec/savon/client_spec.rb +5 -4
- data/spec/savon/core_ext/string_spec.rb +2 -1
- data/spec/savon/features/message_tag_spec.rb +2 -1
- data/spec/savon/http_error_spec.rb +9 -1
- data/spec/savon/log_message_spec.rb +2 -1
- data/spec/savon/message_spec.rb +2 -11
- data/spec/savon/mock_spec.rb +2 -1
- data/spec/savon/model_spec.rb +2 -1
- data/spec/savon/multipart_request_spec.rb +46 -0
- data/spec/savon/observers_spec.rb +2 -1
- data/spec/savon/operation_spec.rb +20 -43
- data/spec/savon/options_spec.rb +40 -1
- data/spec/savon/qualified_message_spec.rb +2 -1
- data/spec/savon/request_logger_spec.rb +2 -1
- data/spec/savon/request_spec.rb +47 -6
- data/spec/savon/response_spec.rb +2 -1
- data/spec/savon/soap_fault_spec.rb +2 -1
- data/spec/savon/softlayer_spec.rb +3 -2
- data/spec/spec_helper.rb +5 -4
- data/spec/support/adapters.rb +1 -0
- data/spec/support/endpoint.rb +1 -0
- data/spec/support/fixture.rb +1 -0
- data/spec/support/integration.rb +1 -0
- data/spec/support/stdout.rb +1 -0
- metadata +81 -30
- data/.travis.yml +0 -26
- data/donate.png +0 -0
- data/spec/integration/centra_spec.rb +0 -67
- data/spec/integration/email_example_spec.rb +0 -32
- data/spec/integration/random_quote_spec.rb +0 -23
- data/spec/integration/ratp_example_spec.rb +0 -28
- data/spec/integration/stockquote_example_spec.rb +0 -34
- data/spec/integration/temperature_example_spec.rb +0 -46
data/spec/support/stdout.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: savon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nori
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: httpi
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.4.5
|
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:
|
40
|
+
version: 2.4.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: wasabi
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.8.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: mail
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.5'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.5'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rack
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,44 +140,58 @@ dependencies:
|
|
126
140
|
name: puma
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
145
|
+
version: 4.3.8
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 4.3.8
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: byebug
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
137
165
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
166
|
+
version: '0'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
168
|
name: rake
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
142
170
|
requirements:
|
143
|
-
- - "
|
171
|
+
- - ">="
|
144
172
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
173
|
+
version: 12.3.3
|
146
174
|
type: :development
|
147
175
|
prerelease: false
|
148
176
|
version_requirements: !ruby/object:Gem::Requirement
|
149
177
|
requirements:
|
150
|
-
- - "
|
178
|
+
- - ">="
|
151
179
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
180
|
+
version: 12.3.3
|
153
181
|
- !ruby/object:Gem::Dependency
|
154
182
|
name: rspec
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
156
184
|
requirements:
|
157
185
|
- - "~>"
|
158
186
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
187
|
+
version: '3.9'
|
160
188
|
type: :development
|
161
189
|
prerelease: false
|
162
190
|
version_requirements: !ruby/object:Gem::Requirement
|
163
191
|
requirements:
|
164
192
|
- - "~>"
|
165
193
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
194
|
+
version: '3.9'
|
167
195
|
- !ruby/object:Gem::Dependency
|
168
196
|
name: mocha
|
169
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,16 +210,16 @@ dependencies:
|
|
182
210
|
name: json
|
183
211
|
requirement: !ruby/object:Gem::Requirement
|
184
212
|
requirements:
|
185
|
-
- - "
|
213
|
+
- - ">="
|
186
214
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
215
|
+
version: 2.3.0
|
188
216
|
type: :development
|
189
217
|
prerelease: false
|
190
218
|
version_requirements: !ruby/object:Gem::Requirement
|
191
219
|
requirements:
|
192
|
-
- - "
|
220
|
+
- - ">="
|
193
221
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
222
|
+
version: 2.3.0
|
195
223
|
description: Heavy metal SOAP client
|
196
224
|
email: me@rubiii.com
|
197
225
|
executables: []
|
@@ -199,7 +227,6 @@ extensions: []
|
|
199
227
|
extra_rdoc_files: []
|
200
228
|
files:
|
201
229
|
- ".gitignore"
|
202
|
-
- ".travis.yml"
|
203
230
|
- ".yardopts"
|
204
231
|
- CHANGELOG.md
|
205
232
|
- CONTRIBUTING.md
|
@@ -207,7 +234,36 @@ files:
|
|
207
234
|
- LICENSE
|
208
235
|
- README.md
|
209
236
|
- Rakefile
|
210
|
-
-
|
237
|
+
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png
|
238
|
+
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
|
239
|
+
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
|
240
|
+
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
|
241
|
+
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
|
242
|
+
- coverage/assets/0.12.3/application.css
|
243
|
+
- coverage/assets/0.12.3/application.js
|
244
|
+
- coverage/assets/0.12.3/colorbox/border.png
|
245
|
+
- coverage/assets/0.12.3/colorbox/controls.png
|
246
|
+
- coverage/assets/0.12.3/colorbox/loading.gif
|
247
|
+
- coverage/assets/0.12.3/colorbox/loading_background.png
|
248
|
+
- coverage/assets/0.12.3/favicon_green.png
|
249
|
+
- coverage/assets/0.12.3/favicon_red.png
|
250
|
+
- coverage/assets/0.12.3/favicon_yellow.png
|
251
|
+
- coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
|
252
|
+
- coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
|
253
|
+
- coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
|
254
|
+
- coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
|
255
|
+
- coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
|
256
|
+
- coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
|
257
|
+
- coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
|
258
|
+
- coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
|
259
|
+
- coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
|
260
|
+
- coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
|
261
|
+
- coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
|
262
|
+
- coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
|
263
|
+
- coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
|
264
|
+
- coverage/assets/0.12.3/loading.gif
|
265
|
+
- coverage/assets/0.12.3/magnify.png
|
266
|
+
- coverage/index.html
|
211
267
|
- lib/savon.rb
|
212
268
|
- lib/savon/block_interface.rb
|
213
269
|
- lib/savon/builder.rb
|
@@ -261,14 +317,8 @@ files:
|
|
261
317
|
- spec/fixtures/wsdl/team_software.xml
|
262
318
|
- spec/fixtures/wsdl/vies.xml
|
263
319
|
- spec/fixtures/wsdl/wasmuth.xml
|
264
|
-
- spec/integration/centra_spec.rb
|
265
|
-
- spec/integration/email_example_spec.rb
|
266
|
-
- spec/integration/random_quote_spec.rb
|
267
|
-
- spec/integration/ratp_example_spec.rb
|
268
|
-
- spec/integration/stockquote_example_spec.rb
|
269
320
|
- spec/integration/support/application.rb
|
270
321
|
- spec/integration/support/server.rb
|
271
|
-
- spec/integration/temperature_example_spec.rb
|
272
322
|
- spec/integration/zipcode_example_spec.rb
|
273
323
|
- spec/savon/builder_spec.rb
|
274
324
|
- spec/savon/client_spec.rb
|
@@ -279,6 +329,7 @@ files:
|
|
279
329
|
- spec/savon/message_spec.rb
|
280
330
|
- spec/savon/mock_spec.rb
|
281
331
|
- spec/savon/model_spec.rb
|
332
|
+
- spec/savon/multipart_request_spec.rb
|
282
333
|
- spec/savon/observers_spec.rb
|
283
334
|
- spec/savon/operation_spec.rb
|
284
335
|
- spec/savon/options_spec.rb
|
@@ -306,14 +357,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
306
357
|
requirements:
|
307
358
|
- - ">="
|
308
359
|
- !ruby/object:Gem::Version
|
309
|
-
version:
|
360
|
+
version: 2.5.0
|
310
361
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
362
|
requirements:
|
312
363
|
- - ">="
|
313
364
|
- !ruby/object:Gem::Version
|
314
365
|
version: '0'
|
315
366
|
requirements: []
|
316
|
-
rubygems_version: 3.
|
367
|
+
rubygems_version: 3.2.9
|
317
368
|
signing_key:
|
318
369
|
specification_version: 4
|
319
370
|
summary: Heavy metal SOAP client
|
data/.travis.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
|
2
|
-
language: "ruby"
|
3
|
-
|
4
|
-
script: "bundle exec rake --trace"
|
5
|
-
|
6
|
-
rvm:
|
7
|
-
- "2.5"
|
8
|
-
- "2.6"
|
9
|
-
- "2.7"
|
10
|
-
|
11
|
-
matrix:
|
12
|
-
include:
|
13
|
-
- name: "JRuby 9.2"
|
14
|
-
rvm: jruby-9.2.12.0
|
15
|
-
jdk: openjdk11
|
16
|
-
env: JAVA_OPTS="--add-opens java.base/java.security.cert=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED"
|
17
|
-
- name: Rubinius
|
18
|
-
rvm: rbx-4
|
19
|
-
dist: trusty
|
20
|
-
allow_failures:
|
21
|
-
- name: Rubinius
|
22
|
-
- name: "JRuby 9.2"
|
23
|
-
fast_finish: true
|
24
|
-
|
25
|
-
notifications:
|
26
|
-
irc: "irc.freenode.org#savon"
|
data/donate.png
DELETED
Binary file
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module LogInterceptor
|
4
|
-
@@intercepted_request = ""
|
5
|
-
def self.debug(message = nil)
|
6
|
-
message ||= yield if block_given?
|
7
|
-
|
8
|
-
# save only the first XMLly message
|
9
|
-
if message.include? "xml version"
|
10
|
-
@@intercepted_request = message if @@intercepted_request == ""
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.info(message = nil)
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.get_intercepted_request
|
18
|
-
@@intercepted_request
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.reset_intercepted_request
|
22
|
-
@@intercepted_request = ""
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'Correct translation of attributes to XML' do
|
27
|
-
it "new :@attr syntax: correctly maps a Ruby Hash to XML attributes" do
|
28
|
-
LogInterceptor.reset_intercepted_request
|
29
|
-
|
30
|
-
client = Savon.client(
|
31
|
-
:wsdl => "http://mt205.sabameeting.com/CWS/CWS.asmx?WSDL",
|
32
|
-
:log => true,
|
33
|
-
:logger => LogInterceptor
|
34
|
-
)
|
35
|
-
|
36
|
-
response = nil
|
37
|
-
begin
|
38
|
-
response = call_and_fail_gracefully(client, :add_new_user, :message => { :user => { :@userID => "test" } })
|
39
|
-
rescue
|
40
|
-
end
|
41
|
-
|
42
|
-
xml_doc = Nokogiri::XML(LogInterceptor.get_intercepted_request)
|
43
|
-
xml_doc.remove_namespaces!
|
44
|
-
|
45
|
-
attributes_element_not_present = xml_doc.xpath("//AddNewUser/attributes").blank?
|
46
|
-
expect(attributes_element_not_present).to eq true
|
47
|
-
end
|
48
|
-
|
49
|
-
it "old :attributes! syntax: correctly maps a Ruby Hash to XML attributes" do
|
50
|
-
LogInterceptor.reset_intercepted_request
|
51
|
-
|
52
|
-
client = Savon.client(
|
53
|
-
:wsdl => "http://mt205.sabameeting.com/CWS/CWS.asmx?WSDL",
|
54
|
-
:log => true,
|
55
|
-
:logger => LogInterceptor
|
56
|
-
)
|
57
|
-
|
58
|
-
response = nil
|
59
|
-
response = call_and_fail_gracefully(client, :add_new_user, :message => { :user => {}, :attributes! => { :user => { :userID => "test" } } })
|
60
|
-
|
61
|
-
xml_doc = Nokogiri::XML(LogInterceptor.get_intercepted_request)
|
62
|
-
xml_doc.remove_namespaces!
|
63
|
-
|
64
|
-
attributes_element_not_present = xml_doc.xpath("//AddNewUser/attributes").blank?
|
65
|
-
expect(attributes_element_not_present).to eq true
|
66
|
-
end
|
67
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Email example" do
|
4
|
-
|
5
|
-
it "passes Strings as they are" do
|
6
|
-
client = Savon.client(
|
7
|
-
# The WSDL document provided by the service.
|
8
|
-
:wsdl => "http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx?wsdl",
|
9
|
-
|
10
|
-
# Lower timeouts so these specs don't take forever when the service is not available.
|
11
|
-
:open_timeout => 10,
|
12
|
-
:read_timeout => 10,
|
13
|
-
|
14
|
-
# Disable logging for cleaner spec output.
|
15
|
-
:log => false
|
16
|
-
)
|
17
|
-
|
18
|
-
response = call_and_fail_gracefully(client, :verify_email, :message => { :email => "soap@example.com", "LicenseKey" => "?" })
|
19
|
-
|
20
|
-
response_text = response.body[:verify_email_response][:verify_email_result][:response_text]
|
21
|
-
|
22
|
-
if response_text == "Current license key only allows so many checks"
|
23
|
-
# Fallback to not fail the specs when the service's API limit is reached,
|
24
|
-
# but to mark the spec as pending instead.
|
25
|
-
pending "API limit exceeded"
|
26
|
-
else
|
27
|
-
# The expected result. We unfortunately don't have a license key for this service.
|
28
|
-
expect(response_text).to eq("Email Domain Not Found")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'rpc/encoded binding test' do
|
4
|
-
|
5
|
-
it 'should should work with WSDLs that have rpc/encoded SOAP binding' do
|
6
|
-
client = Savon.client(
|
7
|
-
:wsdl => "http://www.boyzoid.com/comp/randomQuote.cfc?wsdl",
|
8
|
-
:open_timeout => 10,
|
9
|
-
:read_timeout => 10,
|
10
|
-
:log => false
|
11
|
-
)
|
12
|
-
|
13
|
-
begin
|
14
|
-
client.call(:get_quote)
|
15
|
-
rescue Savon::SOAPFault => e
|
16
|
-
$stderr.puts e.to_hash.inspect
|
17
|
-
f_c = e.to_hash[:fault][:faultstring]
|
18
|
-
expect(f_c).not_to eq('No such operation \'getQuoteRequest\'')
|
19
|
-
expect(f_c).to eq('lucee.runtime.exp.DatabaseException: ')
|
20
|
-
pending e
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "RATP example" do
|
4
|
-
|
5
|
-
it "retrieves information about a specific station" do
|
6
|
-
client = Savon.client do
|
7
|
-
# The WSDL document provided by the service.
|
8
|
-
wsdl "http://www.ratp.fr/wsiv/services/Wsiv?wsdl"
|
9
|
-
|
10
|
-
# Lower timeouts so these specs don't take forever when the service is not available.
|
11
|
-
open_timeout 10
|
12
|
-
read_timeout 10
|
13
|
-
|
14
|
-
# Disable logging for cleaner spec output.
|
15
|
-
log false
|
16
|
-
end
|
17
|
-
|
18
|
-
# XXX: the service seems to rely on the order of arguments.
|
19
|
-
# try to fix this with the new wsdl parser.
|
20
|
-
response = call_and_fail_gracefully(client, :get_stations) do
|
21
|
-
message(:station => { :id => 1975 }, :limit => 1)
|
22
|
-
end
|
23
|
-
|
24
|
-
station_name = response.body[:get_stations_response][:return][:stations][:name]
|
25
|
-
expect(station_name).to eq("Cite")
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Stockquote example" do
|
4
|
-
|
5
|
-
it "returns the result in a CDATA tag" do
|
6
|
-
client = Savon.client(
|
7
|
-
# The WSDL document provided by the service.
|
8
|
-
:wsdl => "http://www.webservicex.net/stockquote.asmx?WSDL",
|
9
|
-
|
10
|
-
# Lower timeouts so these specs don't take forever when the service is not available.
|
11
|
-
:open_timeout => 10,
|
12
|
-
:read_timeout => 10,
|
13
|
-
|
14
|
-
# Disable logging for cleaner spec output.
|
15
|
-
:log => false
|
16
|
-
)
|
17
|
-
|
18
|
-
response = call_and_fail_gracefully(client, :get_quote, :message => { :symbol => "AAPL" })
|
19
|
-
|
20
|
-
cdata = response.body[:get_quote_response][:get_quote_result]
|
21
|
-
|
22
|
-
if cdata == "exception"
|
23
|
-
# Fallback to not fail the specs when the service's API limit is reached,
|
24
|
-
# but to mark the spec as pending instead.
|
25
|
-
pending "Exception on API"
|
26
|
-
end
|
27
|
-
|
28
|
-
nori_options = { :convert_tags_to => lambda { |tag| tag.snakecase.to_sym } }
|
29
|
-
result = Nori.new(nori_options).parse(cdata)
|
30
|
-
|
31
|
-
expect(result[:stock_quotes][:stock][:symbol]).to eq("AAPL")
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Temperature example" do
|
4
|
-
|
5
|
-
it "converts 30 degrees celsius to 86 degrees fahrenheit" do
|
6
|
-
client = Savon.client do
|
7
|
-
# The WSDL document provided by the service.
|
8
|
-
wsdl "http://www.webservicex.net/ConvertTemperature.asmx?WSDL"
|
9
|
-
|
10
|
-
# Needed because (up until now), Savon doesn't match XS types to Hash keys,
|
11
|
-
# but defaults to convert Hash message Symbols (like :from_unit) to lowerCamelCase.
|
12
|
-
# The service expects these to be CamelCase instead. Look at Savon's log output
|
13
|
-
# and compare it with an example request generated by soapUI.
|
14
|
-
convert_request_keys_to :camelcase
|
15
|
-
|
16
|
-
# Lower timeouts so these specs don't take forever when the service is not available.
|
17
|
-
open_timeout 10
|
18
|
-
read_timeout 10
|
19
|
-
|
20
|
-
# Disable logging for cleaner spec output.
|
21
|
-
log false
|
22
|
-
end
|
23
|
-
|
24
|
-
response = call_and_fail_gracefully(client, :convert_temp) do
|
25
|
-
# For the corrent values to pass for :from_unit and :to_unit, I searched the WSDL for
|
26
|
-
# the "FromUnit" type which is a "TemperatureUnit" enumeration that looks like this:
|
27
|
-
#
|
28
|
-
# <s:simpleType name="TemperatureUnit">
|
29
|
-
# <s:restriction base="s:string">
|
30
|
-
# <s:enumeration value="degreeCelsius"/>
|
31
|
-
# <s:enumeration value="degreeFahrenheit"/>
|
32
|
-
# <s:enumeration value="degreeRankine"/>
|
33
|
-
# <s:enumeration value="degreeReaumur"/>
|
34
|
-
# <s:enumeration value="kelvin"/>
|
35
|
-
# </s:restriction>
|
36
|
-
# </s:simpleType>
|
37
|
-
#
|
38
|
-
# Support for XS schema types needs to be improved.
|
39
|
-
message(:temperature => 30, :from_unit => "degreeCelsius", :to_unit => "degreeFahrenheit")
|
40
|
-
end
|
41
|
-
|
42
|
-
fahrenheit = response.body[:convert_temp_response][:convert_temp_result]
|
43
|
-
expect(fahrenheit).to eq("86")
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|