g5_foundation_client 0.1.0 → 0.2.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/lib/g5_foundation_client/models/location.rb +0 -16
- data/lib/g5_foundation_client/version.rb +1 -1
- data/lib/g5_foundation_client.rb +0 -1
- data/spec/fixtures/hub-clients.json +20022 -0
- data/spec/lib/g5_foundation_client/models/location_spec.rb +0 -5
- metadata +4 -5
- data/lib/g5_foundation_client/models/integration_setting.rb +0 -30
- data/spec/lib/g5_foundation_client/models/integration_setting_spec.rb +0 -71
@@ -50,8 +50,6 @@ describe G5FoundationClient::Location do
|
|
50
50
|
its(:locality) { should eql("Testville") }
|
51
51
|
its(:postal_code) { should eql("31337") }
|
52
52
|
its(:status) { should eql("Pending") }
|
53
|
-
its(:inventory_integration_settings) { should be_nil }
|
54
|
-
its(:lead_integration_settings) { should be_nil }
|
55
53
|
|
56
54
|
it 'deletes client from hash' do
|
57
55
|
expect(subject.location_hash[:client]).to be_nil
|
@@ -67,8 +65,5 @@ describe G5FoundationClient::Location do
|
|
67
65
|
subject(:find) { G5FoundationClient::Location.find_by_uid(uid) }
|
68
66
|
|
69
67
|
its(:name) { should eq('brussels') }
|
70
|
-
it 'has inventory integration settings' do
|
71
|
-
subject.inventory_integration_settings.integration_setting_hash[:strategy_name].should eq('vsn')
|
72
|
-
end
|
73
68
|
end
|
74
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: g5_foundation_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Don Petersen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -143,17 +143,16 @@ files:
|
|
143
143
|
- lib/g5_foundation_client/fetcher.rb
|
144
144
|
- lib/g5_foundation_client/models/client.rb
|
145
145
|
- lib/g5_foundation_client/models/findable_by_uid.rb
|
146
|
-
- lib/g5_foundation_client/models/integration_setting.rb
|
147
146
|
- lib/g5_foundation_client/models/location.rb
|
148
147
|
- lib/g5_foundation_client/record_not_found_exception.rb
|
149
148
|
- lib/g5_foundation_client/rspec.rb
|
150
149
|
- lib/g5_foundation_client/rspec/factories.rb
|
151
150
|
- lib/g5_foundation_client/version.rb
|
152
151
|
- spec/fixtures/hub-client.json
|
152
|
+
- spec/fixtures/hub-clients.json
|
153
153
|
- spec/fixtures/hub-location.json
|
154
154
|
- spec/lib/g5_foundation_client/fetcher_spec.rb
|
155
155
|
- spec/lib/g5_foundation_client/models/client_spec.rb
|
156
|
-
- spec/lib/g5_foundation_client/models/integration_setting_spec.rb
|
157
156
|
- spec/lib/g5_foundation_client/models/location_spec.rb
|
158
157
|
- spec/lib/g5_foundation_client_spec.rb
|
159
158
|
- spec/spec_helper.rb
|
@@ -183,10 +182,10 @@ specification_version: 4
|
|
183
182
|
summary: Client gem to interact with G5 services.
|
184
183
|
test_files:
|
185
184
|
- spec/fixtures/hub-client.json
|
185
|
+
- spec/fixtures/hub-clients.json
|
186
186
|
- spec/fixtures/hub-location.json
|
187
187
|
- spec/lib/g5_foundation_client/fetcher_spec.rb
|
188
188
|
- spec/lib/g5_foundation_client/models/client_spec.rb
|
189
|
-
- spec/lib/g5_foundation_client/models/integration_setting_spec.rb
|
190
189
|
- spec/lib/g5_foundation_client/models/location_spec.rb
|
191
190
|
- spec/lib/g5_foundation_client_spec.rb
|
192
191
|
- spec/spec_helper.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
class G5FoundationClient::IntegrationSetting
|
2
|
-
attr_accessor :integration_setting_hash
|
3
|
-
attr_accessor :location
|
4
|
-
|
5
|
-
def initialize(attrs)
|
6
|
-
self.location = attrs.delete(:location) || attrs.delete('location')
|
7
|
-
self.integration_setting_hash = ActiveSupport::HashWithIndifferentAccess.new attrs
|
8
|
-
end
|
9
|
-
|
10
|
-
def to_settings_hash
|
11
|
-
self.integration_setting_hash
|
12
|
-
end
|
13
|
-
|
14
|
-
def lead?
|
15
|
-
'lead' == self.vendor_action
|
16
|
-
end
|
17
|
-
|
18
|
-
def inventory?
|
19
|
-
'inventory' == self.vendor_action
|
20
|
-
end
|
21
|
-
|
22
|
-
[:location_uid, :urn, :uid, :job_frequency_in_minutes, :vendor_action, :strategy_name,
|
23
|
-
:vendor_endpoint, :vendor_user_name, :vendor_password].each do |field|
|
24
|
-
define_method(field) { self.integration_setting_hash[field] }
|
25
|
-
end
|
26
|
-
|
27
|
-
def vendor_action
|
28
|
-
self.integration_setting_hash[:vendor_action]
|
29
|
-
end
|
30
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe G5FoundationClient::IntegrationSetting do
|
4
|
-
before { G5FoundationClient.access_token = 'token' }
|
5
|
-
|
6
|
-
describe 'instantiating with a hash' do
|
7
|
-
let(:uid) { 'http://uid-is.com' }
|
8
|
-
let(:urn) { 'is' }
|
9
|
-
let(:job_frequency_in_minutes) { 60 }
|
10
|
-
let(:service_url) { 'http://inventory.service.example.com' }
|
11
|
-
let(:location) { 'location' }
|
12
|
-
let(:location_uid) { 'location-uid' }
|
13
|
-
let(:strategy_name) { 'Centershift' }
|
14
|
-
let(:vendor_endpoint) { 'http://centershift.example.com' }
|
15
|
-
let(:vendor_user_name) { 'uname' }
|
16
|
-
let(:vendor_password) { 'pw' }
|
17
|
-
let(:vendor_action) { 'inventory' }
|
18
|
-
let(:custom_integration_settings) { {foo: 'bar'} }
|
19
|
-
let(:init_hash) { {service_url: service_url,
|
20
|
-
location: location,
|
21
|
-
job_frequency_in_minutes: job_frequency_in_minutes,
|
22
|
-
strategy_name: strategy_name,
|
23
|
-
vendor_endpoint: vendor_endpoint,
|
24
|
-
vendor_user_name: vendor_user_name,
|
25
|
-
vendor_password: vendor_password,
|
26
|
-
vendor_action: 'inventory',
|
27
|
-
location_uid: location_uid,
|
28
|
-
uid: uid,
|
29
|
-
urn: urn
|
30
|
-
} }
|
31
|
-
|
32
|
-
let(:expected_hash) do
|
33
|
-
hash = init_hash.dup
|
34
|
-
hash.delete(:location)
|
35
|
-
hash.keys.each do |key|
|
36
|
-
hash[key.to_s] = hash.delete(key)
|
37
|
-
end
|
38
|
-
hash
|
39
|
-
end
|
40
|
-
|
41
|
-
subject { G5FoundationClient::IntegrationSetting.new(init_hash) }
|
42
|
-
|
43
|
-
its(:job_frequency_in_minutes) { should eql(job_frequency_in_minutes) }
|
44
|
-
its(:location) { should eql(location) }
|
45
|
-
its(:location_uid) { should eql(location_uid) }
|
46
|
-
its(:uid) { should eql(uid) }
|
47
|
-
its(:urn) { should eql(urn) }
|
48
|
-
its(:vendor_action) { should eql(vendor_action) }
|
49
|
-
its(:vendor_endpoint) { should eql(vendor_endpoint) }
|
50
|
-
its(:vendor_user_name) { should eql(vendor_user_name) }
|
51
|
-
its(:vendor_password) { should eql(vendor_password) }
|
52
|
-
its(:strategy_name) { should eql(strategy_name) }
|
53
|
-
its(:to_settings_hash) { should eq(expected_hash) }
|
54
|
-
its(:inventory?) { should be_true }
|
55
|
-
its(:lead?) { should be_false }
|
56
|
-
end
|
57
|
-
|
58
|
-
describe 'vendor actions' do
|
59
|
-
context 'inventory' do
|
60
|
-
subject { G5FoundationClient::IntegrationSetting.new(vendor_action: 'inventory') }
|
61
|
-
its(:inventory?) { should be_true }
|
62
|
-
its(:lead?) { should be_false }
|
63
|
-
end
|
64
|
-
|
65
|
-
context 'lead' do
|
66
|
-
subject { G5FoundationClient::IntegrationSetting.new(vendor_action: 'lead') }
|
67
|
-
its(:inventory?) { should be_false }
|
68
|
-
its(:lead?) { should be_true }
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|