vend 0.0.7 → 0.0.8

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.
@@ -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: []