soap-object 0.6.4 → 0.6.5

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.
@@ -1,22 +1,22 @@
1
-
2
- module SoapObject
3
- module Factory
4
-
5
- def using(cls, &block)
6
- @the_service = find_service(cls)
7
- block.call @the_service if block
8
- @the_service
9
- end
10
-
11
- private
12
-
13
- def find_service(cls)
14
- services[cls] = cls.new unless services[cls]
15
- services[cls]
16
- end
17
-
18
- def services
19
- @services ||= {}
20
- end
21
- end
22
- end
1
+
2
+ module SoapObject
3
+ module Factory
4
+
5
+ def using(cls, &block)
6
+ @the_service = find_service(cls)
7
+ block.call @the_service if block
8
+ @the_service
9
+ end
10
+
11
+ private
12
+
13
+ def find_service(cls)
14
+ services[cls] = cls.new unless services[cls]
15
+ services[cls]
16
+ end
17
+
18
+ def services
19
+ @services ||= {}
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
- module Soap
2
- module Object
3
- VERSION = "0.6.4"
4
- end
5
- end
1
+ module Soap
2
+ module Object
3
+ VERSION = "0.6.5"
4
+ end
5
+ end
@@ -1,24 +1,24 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'soap-object/version'
5
-
6
- Gem::Specification.new do |gem|
7
- gem.name = "soap-object"
8
- gem.version = Soap::Object::VERSION
9
- gem.authors = ["Jeffrey S. Morgan", "Doug Morgan"]
10
- gem.email = ["jeff.morgan@leandog.com", "douglas.morgan3405@gmail.com"]
11
- gem.description = %q{Wrapper around SOAP service calls to make it easy to test}
12
- gem.summary = %q{Wrapper around SOAP service calls to make it easy to test}
13
- gem.homepage = "http://github.com/cheezy/soap-object"
14
-
15
- gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
19
-
20
- gem.add_dependency 'savon', '>= 2.2.0'
21
-
22
- gem.add_development_dependency 'rspec', '>= 2.12.0'
23
- gem.add_development_dependency 'cucumber', '>= 1.2.0'
24
- end
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'soap-object/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "soap-object"
8
+ gem.version = Soap::Object::VERSION
9
+ gem.authors = ["Jeffrey S. Morgan", "Doug Morgan"]
10
+ gem.email = ["jeff.morgan@leandog.com", "douglas.morgan3405@gmail.com"]
11
+ gem.description = %q{Wrapper around SOAP service calls to make it easy to test}
12
+ gem.summary = %q{Wrapper around SOAP service calls to make it easy to test}
13
+ gem.homepage = "http://github.com/cheezy/soap-object"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_dependency 'savon', '>= 2.2.0'
21
+
22
+ gem.add_development_dependency 'rspec', '>= 2.12.0'
23
+ gem.add_development_dependency 'cucumber', '>= 1.2.0'
24
+ end
@@ -1,35 +1,35 @@
1
- require 'spec_helper'
2
-
3
- class TestSoapObject
4
- include SoapObject
5
-
6
- wsdl 'http://blah.com'
7
- end
8
-
9
- class TestWorld
10
- include SoapObject::Factory
11
- end
12
-
13
- describe 'SoapObject factory' do
14
- context "when using the factory to create to service" do
15
- let(:world) { TestWorld.new }
16
-
17
- it "should create a valid service object" do
18
- service = world.using(TestSoapObject)
19
- expect(service).to be_instance_of TestSoapObject
20
- end
21
-
22
- it "should create a valid service and invoke a block" do
23
- world.using(TestSoapObject) do |service|
24
- expect(service).to be_instance_of TestSoapObject
25
- end
26
- end
27
-
28
- it "should create the service the first time we use it" do
29
- obj = TestSoapObject.new
30
- expect(TestSoapObject).to receive(:new).once.and_return(obj)
31
- world.using(TestSoapObject)
32
- world.using(TestSoapObject)
33
- end
34
- end
1
+ require 'spec_helper'
2
+
3
+ class TestSoapObject
4
+ include SoapObject
5
+
6
+ wsdl 'http://blah.com'
7
+ end
8
+
9
+ class TestWorld
10
+ include SoapObject::Factory
11
+ end
12
+
13
+ describe 'SoapObject factory' do
14
+ context "when using the factory to create to service" do
15
+ let(:world) { TestWorld.new }
16
+
17
+ it "should create a valid service object" do
18
+ service = world.using(TestSoapObject)
19
+ expect(service).to be_instance_of TestSoapObject
20
+ end
21
+
22
+ it "should create a valid service and invoke a block" do
23
+ world.using(TestSoapObject) do |service|
24
+ expect(service).to be_instance_of TestSoapObject
25
+ end
26
+ end
27
+
28
+ it "should create the service the first time we use it" do
29
+ obj = TestSoapObject.new
30
+ expect(TestSoapObject).to receive(:new).once.and_return(obj)
31
+ world.using(TestSoapObject)
32
+ world.using(TestSoapObject)
33
+ end
34
+ end
35
35
  end
@@ -1,145 +1,150 @@
1
- require 'spec_helper'
2
-
3
- class TestSoapObjectWithProperties
4
- include SoapObject
5
-
6
- wsdl 'http://blah.com'
7
- proxy 'http://proxy.com:8080'
8
- open_timeout 10
9
- read_timeout 20
10
- soap_header 'Token' => 'secret'
11
- encoding 'UTF-16'
12
- basic_auth 'steve', 'secret'
13
- digest_auth 'digest', 'auth'
14
- log_level :error
15
- end
16
-
17
- class WithoutClientProperties
18
- include SoapObject
19
- end
20
-
21
- describe SoapObject do
22
- let(:client) { double('client') }
23
- let(:subject) { TestSoapObjectWithProperties.new }
24
-
25
- context 'when creating new instances' do
26
- before do
27
- allow(Savon).to receive(:client).and_return(client)
28
- end
29
-
30
- it 'should initialize the client using the wsdl' do
31
- expect(subject.send(:client_properties)[:wsdl]).to eq('http://blah.com')
32
- end
33
-
34
- it 'should know when it is connected to service' do
35
- expect(subject).to be_connected
36
- end
37
-
38
- it 'should allow one to setup a proxy' do
39
- expect(subject.send(:client_properties)[:proxy]).to eq('http://proxy.com:8080')
40
- end
41
-
42
- it 'should allow one to set an open timeout' do
43
- expect(subject.send(:client_properties)[:open_timeout]).to eq(10)
44
- end
45
-
46
- it 'should allow one to set a read timeout' do
47
- expect(subject.send(:client_properties)[:read_timeout]).to eq(20)
48
- end
49
-
50
- it 'should allow one to set a soap header' do
51
- expect(subject.send(:client_properties)[:soap_header]).to eq({'Token' => 'secret'})
52
- end
53
-
54
- it 'should allow one to set the encoding' do
55
- expect(subject.send(:client_properties)[:encoding]).to eq('UTF-16')
56
- end
57
-
58
- it 'should allow one to use basic authentication' do
59
- expect(subject.send(:client_properties)[:basic_auth]).to eq(['steve', 'secret'])
60
- end
61
-
62
- it 'should allow one to use digest authentication' do
63
- expect(subject.send(:client_properties)[:digest_auth]).to eq(['digest', 'auth'])
64
- end
65
-
66
- it 'should disable logging when no logging level set' do
67
- expect(WithoutClientProperties.new.send(:client_properties)[:log]).to eq(false)
68
- end
69
-
70
- it 'should enable logging when logging level set' do
71
- expect(subject.send(:client_properties)[:log]).to eq(true)
72
- end
73
-
74
- it 'should allow one to set the log level' do
75
- expect(subject.send(:client_properties)[:log_level]).to eq(:error)
76
- end
77
-
78
- it 'should use pretty format for xml when logging' do
79
- expect(subject.send(:client_properties)[:pretty_print_xml]).to eq(true)
80
- end
81
-
82
- it 'should disable SSL verification by default' do
83
- expect(WithoutClientProperties.new.send(:client_properties)[:ssl_verify_mode]).to eq(:none)
84
- end
85
-
86
- it 'should set SSL version to 3 by default' do
87
- expect(WithoutClientProperties.new.send(:client_properties)[:ssl_version]).to eq(:SSLv3)
88
- end
89
-
90
- context 'with ssl_verification' do
91
-
92
- class WithSslVerification
93
- include SoapObject
94
- ssl_verification true
95
- end
96
-
97
- class WithoutSslVerification
98
- include SoapObject
99
- ssl_verification false
100
- end
101
-
102
- it 'should allow one to explicitly disable SSL verification' do
103
- expect(WithoutSslVerification.new.send(:client_properties)[:ssl_verify_mode]).to eq(:none)
104
- end
105
-
106
- it 'should allow one to enable SSL verification' do
107
- expect(WithSslVerification.new.send(:client_properties)[:ssl_verify_mode]).to be_nil
108
- end
109
- end
110
-
111
- context 'with ssl version' do
112
- class WithSslVersion
113
- include SoapObject
114
- ssl_version :SSLv2
115
-
116
- end
117
-
118
- it 'should allow one to set SSL version' do
119
- expect(WithSslVersion.new.send(:client_properties)[:ssl_version]).to eq(:SSLv2)
120
- end
121
- end
122
-
123
- end
124
-
125
-
126
- context 'when calling methods on the service' do
127
- let(:response) { double('response') }
128
-
129
- before do
130
- expect(Savon).to receive(:client).and_return(client)
131
- expect(response).to receive(:to_xml)
132
- end
133
-
134
- it 'should make a valid request' do
135
- expect(client).to receive(:call).with(:fake_call, message: {data_key: 'some_value'}).and_return(response)
136
- subject.fake_call data_key: 'some_value'
137
- end
138
-
139
- it 'should make a valid request with custom xml' do
140
- expected_xml = '<xml><envelope/><data></data></envelope></xml>'
141
- expect(client).to receive(:call).with(anything, xml: expected_xml).and_return(response)
142
- subject.fake_call expected_xml
143
- end
144
- end
145
- end
1
+ require 'spec_helper'
2
+
3
+ class TestSoapObjectWithProperties
4
+ include SoapObject
5
+
6
+ wsdl 'http://blah.com'
7
+ proxy 'http://proxy.com:8080'
8
+ open_timeout 10
9
+ read_timeout 20
10
+ soap_header 'Token' => 'secret'
11
+ encoding 'UTF-16'
12
+ basic_auth 'steve', 'secret'
13
+ digest_auth 'digest', 'auth'
14
+ log_level :error
15
+ soap_version 2
16
+ end
17
+
18
+ class WithoutClientProperties
19
+ include SoapObject
20
+ end
21
+
22
+ describe SoapObject do
23
+ let(:client) { double('client') }
24
+ let(:subject) { TestSoapObjectWithProperties.new }
25
+
26
+ context 'when creating new instances' do
27
+ before do
28
+ allow(Savon).to receive(:client).and_return(client)
29
+ end
30
+
31
+ it 'should initialize the client using the wsdl' do
32
+ expect(subject.send(:client_properties)[:wsdl]).to eq('http://blah.com')
33
+ end
34
+
35
+ it 'should know when it is connected to service' do
36
+ expect(subject).to be_connected
37
+ end
38
+
39
+ it 'should allow one to setup a proxy' do
40
+ expect(subject.send(:client_properties)[:proxy]).to eq('http://proxy.com:8080')
41
+ end
42
+
43
+ it 'should allow one to set an open timeout' do
44
+ expect(subject.send(:client_properties)[:open_timeout]).to eq(10)
45
+ end
46
+
47
+ it 'should allow one to set a read timeout' do
48
+ expect(subject.send(:client_properties)[:read_timeout]).to eq(20)
49
+ end
50
+
51
+ it 'should allow one to set a soap header' do
52
+ expect(subject.send(:client_properties)[:soap_header]).to eq({'Token' => 'secret'})
53
+ end
54
+
55
+ it 'should allow one to set the encoding' do
56
+ expect(subject.send(:client_properties)[:encoding]).to eq('UTF-16')
57
+ end
58
+
59
+ it 'should allow one to use basic authentication' do
60
+ expect(subject.send(:client_properties)[:basic_auth]).to eq(['steve', 'secret'])
61
+ end
62
+
63
+ it 'should allow one to use digest authentication' do
64
+ expect(subject.send(:client_properties)[:digest_auth]).to eq(['digest', 'auth'])
65
+ end
66
+
67
+ it 'should disable logging when no logging level set' do
68
+ expect(WithoutClientProperties.new.send(:client_properties)[:log]).to eq(false)
69
+ end
70
+
71
+ it 'should enable logging when logging level set' do
72
+ expect(subject.send(:client_properties)[:log]).to eq(true)
73
+ end
74
+
75
+ it 'should allow one to set the log level' do
76
+ expect(subject.send(:client_properties)[:log_level]).to eq(:error)
77
+ end
78
+
79
+ it 'should use pretty format for xml when logging' do
80
+ expect(subject.send(:client_properties)[:pretty_print_xml]).to eq(true)
81
+ end
82
+
83
+ it 'should allow one to set the soap version' do
84
+ expect(subject.send(:client_properties)[:soap_version]).to eq(2)
85
+ end
86
+
87
+ it 'should disable SSL verification by default' do
88
+ expect(WithoutClientProperties.new.send(:client_properties)[:ssl_verify_mode]).to eq(:none)
89
+ end
90
+
91
+ it 'should set SSL version to 3 by default' do
92
+ expect(WithoutClientProperties.new.send(:client_properties)[:ssl_version]).to eq(:SSLv3)
93
+ end
94
+
95
+ context 'with ssl_verification' do
96
+
97
+ class WithSslVerification
98
+ include SoapObject
99
+ ssl_verification true
100
+ end
101
+
102
+ class WithoutSslVerification
103
+ include SoapObject
104
+ ssl_verification false
105
+ end
106
+
107
+ it 'should allow one to explicitly disable SSL verification' do
108
+ expect(WithoutSslVerification.new.send(:client_properties)[:ssl_verify_mode]).to eq(:none)
109
+ end
110
+
111
+ it 'should allow one to enable SSL verification' do
112
+ expect(WithSslVerification.new.send(:client_properties)[:ssl_verify_mode]).to be_nil
113
+ end
114
+ end
115
+
116
+ context 'with ssl version' do
117
+ class WithSslVersion
118
+ include SoapObject
119
+ ssl_version :SSLv2
120
+
121
+ end
122
+
123
+ it 'should allow one to set SSL version' do
124
+ expect(WithSslVersion.new.send(:client_properties)[:ssl_version]).to eq(:SSLv2)
125
+ end
126
+ end
127
+
128
+ end
129
+
130
+
131
+ context 'when calling methods on the service' do
132
+ let(:response) { double('response') }
133
+
134
+ before do
135
+ expect(Savon).to receive(:client).and_return(client)
136
+ expect(response).to receive(:to_xml)
137
+ end
138
+
139
+ it 'should make a valid request' do
140
+ expect(client).to receive(:call).with(:fake_call, message: {data_key: 'some_value'}).and_return(response)
141
+ subject.fake_call data_key: 'some_value'
142
+ end
143
+
144
+ it 'should make a valid request with custom xml' do
145
+ expected_xml = '<xml><envelope/><data></data></envelope></xml>'
146
+ expect(client).to receive(:call).with(anything, xml: expected_xml).and_return(response)
147
+ subject.fake_call expected_xml
148
+ end
149
+ end
150
+ end