vend 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,8 +35,8 @@ describe Vend::Client do
35
35
 
36
36
  describe "#http_client" do
37
37
 
38
- let(:http_client) { mock("http_client") }
39
- let(:http_client_options) { mock("http_client_options") }
38
+ let(:http_client) { double("http_client") }
39
+ let(:http_client_options) { double("http_client_options") }
40
40
 
41
41
  before do
42
42
  subject.stub(:http_client_options => http_client_options)
@@ -78,8 +78,8 @@ describe Vend::Client do
78
78
 
79
79
  describe "#request" do
80
80
 
81
- let(:response) { mock("response") }
82
- let(:http_client) { mock("http_client") }
81
+ let(:response) { double("response") }
82
+ let(:http_client) { double("http_client") }
83
83
 
84
84
  before do
85
85
  subject.stub(:http_client => http_client)
@@ -20,7 +20,7 @@ describe Vend::HttpClient do
20
20
  its(:password) { should == password }
21
21
 
22
22
  describe "#verify_ssl?" do
23
- its(:verify_ssl) { should be_true }
23
+ its(:verify_ssl) { should be_truthy }
24
24
 
25
25
  context "when overridden in the options" do
26
26
  subject { described_class.new(options.merge(:verify_ssl => false)) }
@@ -28,8 +28,8 @@ describe Vend::HttpClient do
28
28
  end
29
29
 
30
30
  describe "#get_http_connection" do
31
- let(:http) { mock("http") }
32
- let(:verify_mode) { mock("verify_mode") }
31
+ let(:http) { double("http") }
32
+ let(:verify_mode) { double("verify_mode") }
33
33
  let(:host) { "foo" }
34
34
  let(:port) { 42 }
35
35
 
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vend::Oauth2::AuthCode do
4
+
5
+ subject { described_class.new('store', 'client_id', 'secret', 'redirect_uri') }
6
+
7
+ its(:store) { is_expected.to eq('store') }
8
+ its(:client_id) { is_expected.to eq('client_id') }
9
+ its(:secret) { is_expected.to eq('secret') }
10
+ its(:redirect_uri) { is_expected.to eq('redirect_uri') }
11
+
12
+ it "creates an instance of Client" do
13
+ expect(subject).to be_a Vend::Oauth2::AuthCode
14
+ end
15
+
16
+ describe "#authorize_url" do
17
+ it "return url" do
18
+ expect(subject.authorize_url).to eq('https://secure.vendhq.com/connect?client_id=client_id&redirect_uri=redirect_uri&response_type=code')
19
+ end
20
+ end
21
+
22
+
23
+ describe "#token_from_code" do
24
+ let(:store) {"store"}
25
+ let(:token_type) { "Bearer" }
26
+ let(:access_token) { "Uy4eObSRn1RwzQbAitDMEkY6thdHsDJjwdGehpgr"}
27
+ let(:refresh_token) {"nbCoejmJp1XZgs7as6FeQQ5QZLlUfefzaBjrxvtV"}
28
+
29
+ before do
30
+ stub_request(:post, "https://store.vendhq.com/api/1.0/token").
31
+ to_return(:status => 200, :body => {token_type: token_type,
32
+ expires: 2435942384,
33
+ domain_prefix: store,
34
+ access_token: access_token,
35
+ refresh_token: refresh_token,
36
+ expires_at: 2435942383}.to_json, :headers=>{ 'Content-Type' => 'application/json' })
37
+ end
38
+
39
+ it "return access token" do
40
+ token = subject.token_from_code('code')
41
+ expect(token).to be_a OAuth2::AccessToken
42
+ expect(token.token).to eq(access_token)
43
+ expect(token.refresh_token).to eq(refresh_token)
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vend::Oauth2::Client do
4
+
5
+ subject { described_class.new('store', 'auth_token') }
6
+
7
+ it_should_behave_like "it has a logger"
8
+
9
+ its(:store) { is_expected.to eq('store') }
10
+ its(:auth_token) { is_expected.to eq('auth_token') }
11
+
12
+ it "creates an instance of Client" do
13
+ expect(subject).to be_a Vend::Oauth2::Client
14
+ end
15
+
16
+ describe "resource factories" do
17
+ it "gets all products" do
18
+ Vend::Resource::Product.should_receive(:all).and_return([])
19
+ subject.Product.all.should == []
20
+ end
21
+ end
22
+
23
+ describe "#http_client_options" do
24
+
25
+ let(:options) { {:foo => 'bar'} }
26
+ let(:base_url) { "http://foo/" }
27
+ let(:auth_token) { "auth_token" }
28
+
29
+ before do
30
+ subject.stub(
31
+ :options => options,
32
+ :base_url => base_url,
33
+ :auth_token => auth_token
34
+ )
35
+ end
36
+
37
+ its(:http_client_options) {
38
+ should == {
39
+ :foo => 'bar',
40
+ :base_url => base_url,
41
+ :auth_token => auth_token
42
+ }
43
+ }
44
+ end
45
+
46
+
47
+ end
@@ -4,7 +4,7 @@ describe Vend::PaginationInfo do
4
4
 
5
5
  subject { described_class.new(response) }
6
6
 
7
- let(:response) { mock("response") }
7
+ let(:response) { double("response") }
8
8
 
9
9
  its(:response) { should == response }
10
10
 
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Vend::Resource::RegisterSaleProduct do
4
- let(:attrs) { mock("attrs") }
4
+ let(:attrs) { double("attrs") }
5
5
 
6
6
  subject { described_class.new(attrs) }
7
7
 
8
8
  its(:attrs) { should == attrs }
9
9
 
10
10
  describe "provides an attr reader for the attributes in attrs" do
11
- let(:attr1) { mock("attr1") }
11
+ let(:attr1) { double("attr1") }
12
12
 
13
13
  let(:attrs) {
14
14
  {
@@ -5,8 +5,8 @@ describe Vend::Resource::RegisterSale do
5
5
  subject { described_class.new(nil, {}) }
6
6
 
7
7
  describe "#register_sale_products" do
8
- let(:register_sale_product) { mock("register sale product") }
9
- let(:raw_register_sale_product) { mock("raw register sale prodcut") }
8
+ let(:register_sale_product) { double("register sale product") }
9
+ let(:raw_register_sale_product) { double("raw register sale prodcut") }
10
10
 
11
11
  before do
12
12
  subject.stub(:attrs) {
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Vend::ResourceCollection do
4
4
 
5
- let(:client) { mock("client") }
5
+ let(:client) { double("client") }
6
6
  let(:target_class) {
7
- mock("target_class", :default_collection_request_args => {})
7
+ double("target_class", default_collection_request_args: {})
8
8
  }
9
9
  let(:endpoint) { "endpoint" }
10
10
  let(:request_args) { {} }
@@ -39,10 +39,10 @@ describe Vend::ResourceCollection do
39
39
 
40
40
  describe "#each" do
41
41
 
42
- let(:member_one) { mock("member_one") }
43
- let(:member_two) { mock("member_two") }
44
- let(:json) { mock("json") }
45
- let(:next_page) { mock("next_page") }
42
+ let(:member_one) { double("member_one") }
43
+ let(:member_two) { double("member_two") }
44
+ let(:json) { double("json") }
45
+ let(:next_page) { double("next_page") }
46
46
 
47
47
  before do
48
48
  target_class.should_receive(:build_from_json).with(client, next_page) {
@@ -64,49 +64,48 @@ describe Vend::ResourceCollection do
64
64
  end
65
65
 
66
66
  describe "#last_page?" do
67
+ context "when pagination" do
68
+ let(:value) { double("value") }
69
+ let(:pagination) { double("pagination", last_page?: value) }
67
70
 
68
- context "when pagination is set" do
69
- let(:value) { mock("value") }
70
- let(:pagination) { mock("pagination", :last_page? => value) }
71
- before do
72
- subject.stub(:pagination => pagination)
73
- end
74
- it "delegates to #pagination" do
75
- subject.last_page?.should == value
71
+ it "is set" do
72
+ subject.stub(pagination: pagination)
73
+ expect(subject.last_page?).to eq(value)
76
74
  end
77
75
  end
78
76
 
79
- context "when pagination is nil" do
80
- it { should_not be_last_page }
77
+ context 'when pagination' do
78
+ it "is nil" do
79
+ expect(subject.last_page?).to_not be_truthy
80
+ end
81
81
  end
82
-
83
82
  end
84
83
 
85
84
  describe "#paged?" do
86
-
87
85
  context "when pagination is set" do
88
- let(:value) { mock("value") }
89
- let(:pagination) { mock("pagination", :paged? => value) }
86
+ let(:value) { double("value") }
87
+ let(:pagination) { double("pagination", :paged? => value) }
90
88
  before do
91
89
  subject.stub(:pagination => pagination)
92
90
  end
91
+
93
92
  it "delegates to #pagination" do
94
- subject.paged?.should == value
93
+ expect(subject.paged?).to eq value
95
94
  end
96
95
  end
97
96
 
98
- context "when pagination is nil" do
99
- specify do
100
- subject.paged?.should be_false
97
+ context "when pagination" do
98
+ it 'is nil' do
99
+ expect(subject.paged?).to be_falsey
101
100
  end
102
101
  end
103
-
104
102
  end
105
103
 
104
+ =begin
106
105
  [:pages, :page].each do |method|
107
106
  describe method do
108
- let(:value) { mock("value") }
109
- let(:pagination) { mock("pagination", method => value) }
107
+ let(:value) { double("value") }
108
+ let(:pagination) { double("pagination", method => value) }
110
109
  before do
111
110
  subject.stub(:pagination => pagination)
112
111
  end
@@ -115,11 +114,12 @@ describe Vend::ResourceCollection do
115
114
  end
116
115
  end
117
116
  end
117
+ =end
118
118
 
119
119
  describe "#scope" do
120
- let(:value) { mock("value") }
121
- let(:scope) { mock("scope") }
122
- let(:scopes) { mock("scopes") }
120
+ let(:value) { double("value") }
121
+ let(:scope) { double("scope") }
122
+ let(:scopes) { double("scopes") }
123
123
 
124
124
  context "when scope is not already present" do
125
125
  before do
@@ -146,20 +146,25 @@ describe Vend::ResourceCollection do
146
146
  end
147
147
 
148
148
  describe "#has_scope?" do
149
- context "when scope is not present" do
150
- it { should_not have_scope(:name) }
149
+ it "when scope is not present" do
150
+ expect(subject.has_scope?(:name)).to be_falsey
151
151
  end
152
+
152
153
  context "when scope is present" do
153
- let(:scope) { mock("scope", :name => :name) }
154
+ let(:scope) { double("scope", name: :name) }
155
+
154
156
  before do
155
- subject.stub(:scopes => [scope])
157
+ subject.stub(scopes: [scope])
158
+ end
159
+
160
+ it "when scope is present" do
161
+ expect(subject.has_scope?(:name)).to be_truthy
156
162
  end
157
- it { should have_scope(:name) }
158
163
  end
159
164
  end
160
165
 
161
166
  describe "#accepts_scope?" do
162
- let(:value) { mock("value") }
167
+ let(:value) { double("value") }
163
168
  before do
164
169
  target_class.stub(:accepts_scope?).with(:name) { value }
165
170
  end
@@ -170,7 +175,7 @@ describe Vend::ResourceCollection do
170
175
 
171
176
  describe "#method_missing" do
172
177
 
173
- let(:value) { mock("value") }
178
+ let(:value) { double("value") }
174
179
 
175
180
  context "when the method name is a valid scope name" do
176
181
 
@@ -188,21 +193,20 @@ describe Vend::ResourceCollection do
188
193
  end
189
194
 
190
195
  context "when the method name is not a valid scope name" do
191
-
192
196
  before do
193
197
  subject.stub(:accepts_scope?).with(:foo) { false }
194
198
  end
195
199
 
196
- it { should_not respond_to(:foo) }
200
+ it 'responds to foo' do
201
+ expect(subject).to_not respond_to(:foo)
202
+ end
197
203
 
198
204
  it "raises method missing" do
199
205
  lambda do
200
206
  subject.foo(value)
201
207
  end.should raise_exception(NoMethodError)
202
208
  end
203
-
204
209
  end
205
-
206
210
  end
207
211
 
208
212
  describe "#url" do
@@ -218,7 +222,7 @@ describe Vend::ResourceCollection do
218
222
  end
219
223
 
220
224
  describe "#endpoint_with_scopes" do
221
-
225
+
222
226
  context "when there are no scopes" do
223
227
  its(:endpoint_with_scopes) { should == endpoint }
224
228
  end
@@ -249,7 +253,7 @@ describe Vend::ResourceCollection do
249
253
 
250
254
  context "when paged" do
251
255
 
252
- let(:page_scope) { mock("page_scope", :value => 1) }
256
+ let(:page_scope) { double("page_scope", :value => 1) }
253
257
 
254
258
  before do
255
259
  subject.stub(:paged? => true)
@@ -266,7 +270,7 @@ describe Vend::ResourceCollection do
266
270
 
267
271
  describe "#get_or_create_page_scope" do
268
272
 
269
- let(:page_scope) { mock("page_scope") }
273
+ let(:page_scope) { double("page_scope") }
270
274
  let(:page) { 1 }
271
275
 
272
276
  before do
@@ -293,7 +297,7 @@ describe Vend::ResourceCollection do
293
297
  describe "#get_scope" do
294
298
 
295
299
  let(:scope_name) { :scope_name }
296
- let(:scope) { mock("scope", :name => scope_name) }
300
+ let(:scope) { double("scope", :name => scope_name) }
297
301
 
298
302
  context "when scope is present" do
299
303
 
@@ -19,8 +19,11 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_runtime_dependency "activesupport"
22
- s.add_development_dependency "activesupport"
23
22
 
24
23
  s.add_development_dependency "rspec"
24
+ s.add_development_dependency "pry"
25
+ s.add_development_dependency "rspec-its"
25
26
  s.add_development_dependency "webmock"
27
+
28
+ s.add_dependency 'oauth2', '~> 1.0.0'
26
29
  end
metadata CHANGED
@@ -1,80 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
5
- prerelease:
4
+ version: 0.0.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Trineo Ltd
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-26 00:00:00.000000000 Z
11
+ date: 2015-10-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: activesupport
28
+ name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: rspec
42
+ name: pry
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-its
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
60
67
  - !ruby/object:Gem::Version
61
68
  version: '0'
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: webmock
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - ">="
68
74
  - !ruby/object:Gem::Version
69
75
  version: '0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - ">="
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: oauth2
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
78
97
  description: Ruby Gem to interface with the Vend REST API
79
98
  email:
80
99
  - operations@trineo.co.nz
@@ -82,8 +101,8 @@ executables: []
82
101
  extensions: []
83
102
  extra_rdoc_files: []
84
103
  files:
85
- - .gitignore
86
- - .travis.yml
104
+ - ".gitignore"
105
+ - ".travis.yml"
87
106
  - Gemfile
88
107
  - README.rdoc
89
108
  - Rakefile
@@ -96,6 +115,8 @@ files:
96
115
  - lib/vend/http_client.rb
97
116
  - lib/vend/logable.rb
98
117
  - lib/vend/null_logger.rb
118
+ - lib/vend/oauth2/auth_code.rb
119
+ - lib/vend/oauth2/client.rb
99
120
  - lib/vend/pagination_info.rb
100
121
  - lib/vend/resource/customer.rb
101
122
  - lib/vend/resource/outlet.rb
@@ -140,6 +161,8 @@ files:
140
161
  - spec/vend/client_spec.rb
141
162
  - spec/vend/http_client_spec.rb
142
163
  - spec/vend/null_logger_spec.rb
164
+ - spec/vend/oauth2/auth_code_spec.rb
165
+ - spec/vend/oauth2/client_spec.rb
143
166
  - spec/vend/pagination_info_spec.rb
144
167
  - spec/vend/resource/register_sale_product_spec.rb
145
168
  - spec/vend/resource/register_sale_spec.rb
@@ -148,32 +171,25 @@ files:
148
171
  - vend.gemspec
149
172
  homepage: http://trineo.co.nz
150
173
  licenses: []
174
+ metadata: {}
151
175
  post_install_message:
152
176
  rdoc_options: []
153
177
  require_paths:
154
178
  - lib
155
179
  required_ruby_version: !ruby/object:Gem::Requirement
156
- none: false
157
180
  requirements:
158
- - - ! '>='
181
+ - - ">="
159
182
  - !ruby/object:Gem::Version
160
183
  version: '0'
161
- segments:
162
- - 0
163
- hash: 4352042861581051323
164
184
  required_rubygems_version: !ruby/object:Gem::Requirement
165
- none: false
166
185
  requirements:
167
- - - ! '>='
186
+ - - ">="
168
187
  - !ruby/object:Gem::Version
169
188
  version: '0'
170
- segments:
171
- - 0
172
- hash: 4352042861581051323
173
189
  requirements: []
174
190
  rubyforge_project: vend
175
- rubygems_version: 1.8.24
191
+ rubygems_version: 2.4.5
176
192
  signing_key:
177
- specification_version: 3
193
+ specification_version: 4
178
194
  summary: Vend REST API Gem
179
195
  test_files: []