fuelsdk 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/spec/rest_spec.rb ADDED
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ describe FuelSDK::Rest do
3
+ let(:client) { FuelSDK::ET_Client.new }
4
+
5
+ subject { client }
6
+ it { should respond_to(:rest_get) }
7
+ it { should respond_to(:rest_client) }
8
+ it { should respond_to(:complete_url) }
9
+
10
+ describe '#complete_url' do
11
+ it 'raises an exception when identities are missing' do
12
+ expect { client.complete_url "some_url/%{parent}/%{child}", {parent: 1} }.to raise_exception 'key{child} not found to complete some_url/%{parent}/%{child}'
13
+ end
14
+
15
+ it 'returns url with all identities replaced' do
16
+ expect( client.complete_url "some_url/%{parent}/%{child}", {:parent => 1, :child => 2} ).to eq 'some_url/1/2'
17
+ end
18
+
19
+ it 'handles identities with string keys' do
20
+ expect( client.complete_url "some_url/%{parent}/%{child}", {'parent'=> 1, 'child'=> 2} ).to eq 'some_url/1/2'
21
+ end
22
+
23
+ it 'treats empty values as optional keys' do
24
+ expect( client.complete_url "some_url/%{parent}/%{child}", {'parent'=> 1, 'child'=> ''} ).to eq 'some_url/1'
25
+ end
26
+
27
+ it 'handles extra keys' do
28
+ expect( client.complete_url "some_url/%{parent}/%{child}", {'parent'=> 1, 'child'=> '', 'other' => 1} ).to eq 'some_url/1'
29
+ end
30
+ end
31
+
32
+ describe '#get_url_properties' do
33
+ it 'returns hash of properties in format string' do
34
+ expect( client.get_url_properties "some_url/%{parent}/%{child}", {'parent'=> 1, 'child'=> '', 'other' => 1} ).to eq({'parent' => 1, 'child' => ''})
35
+ end
36
+
37
+ it 'handles missing url properties' do
38
+ expect( client.get_url_properties "some_url/%{parent}/%{child}", {'parent'=> 1, 'other' => 1} ).to eq({'parent' => 1})
39
+ end
40
+
41
+ it 'remaining properties are query params' do
42
+ properties = {'parent'=> 1, 'other' => 1}
43
+ client.get_url_properties "some_url/%{parent}/%{child}", properties
44
+ expect(properties).to eq 'other' => 1
45
+ end
46
+ end
47
+
48
+ end
data/spec/soap_spec.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe FuelSDK::Soap do
4
+
5
+ let(:client) { FuelSDK::ET_Client.new }
6
+
7
+ subject { client }
8
+
9
+ it { should respond_to(:soap_get) }
10
+ it { should respond_to(:soap_post) }
11
+
12
+ it { should respond_to(:header) }
13
+ it { should_not respond_to(:header=) }
14
+
15
+ it { should respond_to(:wsdl) }
16
+ it { should respond_to(:wsdl=) }
17
+
18
+ it { should respond_to(:endpoint) }
19
+ it { should_not respond_to(:endpoint=) }
20
+
21
+ it { should respond_to(:soap_client) }
22
+
23
+ its(:debug) { should be_false }
24
+ its(:wsdl) { should eq 'https://webservice.exacttarget.com/etframework.wsdl' }
25
+
26
+ describe '#header' do
27
+ it 'raises an exception when internal_token is missing' do
28
+ expect { client.header }.to raise_exception 'Require legacy token for soap header'
29
+ end
30
+
31
+ it 'returns header hash' do
32
+ client.internal_token = 'innerspace'
33
+ expect(client.header).to eq(
34
+ {
35
+ 'oAuth' => { 'oAuthToken' => 'innerspace' },
36
+ :attributes! => {
37
+ 'oAuth' => { 'xmlns' => 'http://exacttarget.com' }
38
+ }
39
+ }
40
+ )
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,14 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'fuelsdk'
5
+
6
+ RSpec.configure do |config|
7
+ config.mock_with :rspec
8
+
9
+ # Use color in STDOUT
10
+ config.color_enabled = true
11
+
12
+ # Use the specified formatter
13
+ config.formatter = :documentation
14
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe FuelSDK::Targeting do
4
+
5
+ subject { Class.new.new.extend(FuelSDK::Targeting) }
6
+
7
+ it { should respond_to(:endpoint) }
8
+ it { should_not respond_to(:endpoint=) }
9
+ it { should respond_to(:determine_stack) }
10
+ it { should respond_to(:get) }
11
+ it { should respond_to(:post) }
12
+ it { should respond_to(:patch) }
13
+ it { should respond_to(:delete) }
14
+ it { should respond_to(:access_token) }
15
+
16
+ describe '#determine_stack' do
17
+ let(:client) { c = Class.new.new.extend(FuelSDK::Targeting)
18
+ c.stub(:access_token).and_return('open_sesame')
19
+ c.stub(:get)
20
+ .with('https://www.exacttargetapis.com/platform/v1/endpoints/soap',{'params'=>{'access_token'=>'open_sesame'}})
21
+ .and_return({'url' => 'S#.authentication.target'})
22
+ c
23
+ }
24
+ it 'sets @endpoint' do
25
+ expect(client.send(:determine_stack)).to eq 'S#.authentication.target'
26
+ end
27
+ end
28
+
29
+ describe '#endpoint' do
30
+ let(:client) { c = Class.new.new.extend(FuelSDK::Targeting)
31
+ c.stub(:get).and_return({'url' => 'S#.authentication.target'})
32
+ c
33
+ }
34
+
35
+ it 'calls determine_stack to find target' do
36
+ expect(client.endpoint).to eq 'S#.authentication.target'
37
+ end
38
+ end
39
+ end
metadata ADDED
@@ -0,0 +1,239 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fuelsdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - MichaelAllenClark
9
+ - barberj
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-06-17 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '1.3'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.3'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rake
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: guard
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: guard-rspec
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: savon
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: '2.0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: json
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 1.7.0
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 1.7.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: jwt
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: 0.1.6
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: 0.1.6
143
+ description: Fuel SDK for Ruby
144
+ email: []
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - .gitignore
150
+ - Gemfile
151
+ - Guardfile
152
+ - README.md
153
+ - Rakefile
154
+ - fuelsdk.gemspec
155
+ - lib/fuelsdk.rb
156
+ - lib/fuelsdk/client.rb
157
+ - lib/fuelsdk/http_request.rb
158
+ - lib/fuelsdk/objects.rb
159
+ - lib/fuelsdk/rest.rb
160
+ - lib/fuelsdk/soap.rb
161
+ - lib/fuelsdk/targeting.rb
162
+ - lib/fuelsdk/version.rb
163
+ - lib/new.rb
164
+ - samples/sample-AddSubscriberToList.rb
165
+ - samples/sample-CreateDataExtensions.rb
166
+ - samples/sample-bounceevent.rb
167
+ - samples/sample-campaign.rb
168
+ - samples/sample-clickevent.rb
169
+ - samples/sample-contentarea.rb
170
+ - samples/sample-dataextension.rb
171
+ - samples/sample-email.rb
172
+ - samples/sample-folder.rb
173
+ - samples/sample-list.rb
174
+ - samples/sample-list.subscriber.rb
175
+ - samples/sample-openevent.rb
176
+ - samples/sample-sentevent.rb
177
+ - samples/sample-subscriber.rb
178
+ - samples/sample-triggeredsend.rb
179
+ - samples/sample-unsubevent.rb
180
+ - samples/sample_helper.rb
181
+ - spec/fuelsdk/client_spec.rb
182
+ - spec/fuelsdk_spec.rb
183
+ - spec/helper_funcs_spec.rb
184
+ - spec/http_request_spec.rb
185
+ - spec/rest_spec.rb
186
+ - spec/soap_spec.rb
187
+ - spec/spec_helper.rb
188
+ - spec/targeting_spec.rb
189
+ homepage: https://github.com/ExactTarget/FuelSDK-Ruby
190
+ licenses:
191
+ - ''
192
+ post_install_message:
193
+ rdoc_options: []
194
+ require_paths:
195
+ - lib
196
+ required_ruby_version: !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ requirements: []
209
+ rubyforge_project:
210
+ rubygems_version: 1.8.25
211
+ signing_key:
212
+ specification_version: 3
213
+ summary: Fuel SDK for Ruby
214
+ test_files:
215
+ - samples/sample-AddSubscriberToList.rb
216
+ - samples/sample-CreateDataExtensions.rb
217
+ - samples/sample-bounceevent.rb
218
+ - samples/sample-campaign.rb
219
+ - samples/sample-clickevent.rb
220
+ - samples/sample-contentarea.rb
221
+ - samples/sample-dataextension.rb
222
+ - samples/sample-email.rb
223
+ - samples/sample-folder.rb
224
+ - samples/sample-list.rb
225
+ - samples/sample-list.subscriber.rb
226
+ - samples/sample-openevent.rb
227
+ - samples/sample-sentevent.rb
228
+ - samples/sample-subscriber.rb
229
+ - samples/sample-triggeredsend.rb
230
+ - samples/sample-unsubevent.rb
231
+ - samples/sample_helper.rb
232
+ - spec/fuelsdk/client_spec.rb
233
+ - spec/fuelsdk_spec.rb
234
+ - spec/helper_funcs_spec.rb
235
+ - spec/http_request_spec.rb
236
+ - spec/rest_spec.rb
237
+ - spec/soap_spec.rb
238
+ - spec/spec_helper.rb
239
+ - spec/targeting_spec.rb