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
         |