my_john_deere_api 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/my_john_deere_api/client.rb +11 -11
  3. data/lib/my_john_deere_api/model/asset.rb +1 -1
  4. data/lib/my_john_deere_api/model/base.rb +15 -6
  5. data/lib/my_john_deere_api/model/contribution_product.rb +1 -1
  6. data/lib/my_john_deere_api/model/field.rb +1 -1
  7. data/lib/my_john_deere_api/model/organization.rb +2 -2
  8. data/lib/my_john_deere_api/request/collection/asset_locations.rb +1 -1
  9. data/lib/my_john_deere_api/request/collection/assets.rb +2 -2
  10. data/lib/my_john_deere_api/request/collection/base.rb +16 -8
  11. data/lib/my_john_deere_api/request/collection/contribution_definitions.rb +1 -1
  12. data/lib/my_john_deere_api/request/collection/contribution_products.rb +1 -1
  13. data/lib/my_john_deere_api/request/collection/fields.rb +1 -1
  14. data/lib/my_john_deere_api/request/collection/organizations.rb +1 -1
  15. data/lib/my_john_deere_api/request/create/base.rb +12 -4
  16. data/lib/my_john_deere_api/request/individual/base.rb +13 -5
  17. data/lib/my_john_deere_api/request/update/base.rb +11 -3
  18. data/lib/my_john_deere_api/version.rb +1 -1
  19. data/test/lib/my_john_deere_api/client_test.rb +0 -3
  20. data/test/lib/my_john_deere_api/model/asset_location_test.rb +6 -6
  21. data/test/lib/my_john_deere_api/model/asset_test.rb +8 -9
  22. data/test/lib/my_john_deere_api/model/base_test.rb +8 -7
  23. data/test/lib/my_john_deere_api/model/contribution_definition_test.rb +3 -5
  24. data/test/lib/my_john_deere_api/model/contribution_product_test.rb +8 -8
  25. data/test/lib/my_john_deere_api/model/field_test.rb +8 -9
  26. data/test/lib/my_john_deere_api/model/flag_test.rb +6 -6
  27. data/test/lib/my_john_deere_api/model/organization_test.rb +9 -11
  28. data/test/lib/my_john_deere_api/request/collection/asset_locations_test.rb +6 -5
  29. data/test/lib/my_john_deere_api/request/collection/assets_test.rb +6 -5
  30. data/test/lib/my_john_deere_api/request/collection/base_test.rb +8 -6
  31. data/test/lib/my_john_deere_api/request/collection/contribution_definitions_test.rb +5 -5
  32. data/test/lib/my_john_deere_api/request/collection/contribution_products_test.rb +5 -5
  33. data/test/lib/my_john_deere_api/request/collection/fields_test.rb +6 -5
  34. data/test/lib/my_john_deere_api/request/collection/flags_test.rb +6 -5
  35. data/test/lib/my_john_deere_api/request/collection/organizations_test.rb +7 -6
  36. data/test/lib/my_john_deere_api/request/create/asset_location_test.rb +15 -13
  37. data/test/lib/my_john_deere_api/request/create/asset_test.rb +16 -14
  38. data/test/lib/my_john_deere_api/request/create/base_test.rb +6 -4
  39. data/test/lib/my_john_deere_api/request/individual/asset_test.rb +4 -3
  40. data/test/lib/my_john_deere_api/request/individual/base_test.rb +4 -3
  41. data/test/lib/my_john_deere_api/request/individual/contribution_definition_test.rb +4 -3
  42. data/test/lib/my_john_deere_api/request/individual/contribution_product_test.rb +4 -3
  43. data/test/lib/my_john_deere_api/request/individual/field_test.rb +4 -3
  44. data/test/lib/my_john_deere_api/request/individual/organization_test.rb +4 -3
  45. data/test/lib/my_john_deere_api/request/update/asset_test.rb +6 -5
  46. data/test/lib/my_john_deere_api/request/update/base_test.rb +6 -4
  47. data/test/support/helper.rb +7 -2
  48. metadata +1 -1
@@ -1,6 +1,8 @@
1
1
  require 'support/helper'
2
2
 
3
3
  describe 'MyJohnDeereApi::Model::Field' do
4
+ let(:klass) { JD::Model::Field }
5
+
4
6
  let(:record) do
5
7
  {
6
8
  "@type"=>"Field",
@@ -21,9 +23,9 @@ describe 'MyJohnDeereApi::Model::Field' do
21
23
  end
22
24
 
23
25
  it 'sets the attributes from the given record' do
24
- field = JD::Model::Field.new(record)
26
+ field = klass.new(record)
25
27
 
26
- assert_nil field.accessor
28
+ assert_nil field.client
27
29
 
28
30
  # basic attributes
29
31
  assert_equal record['name'], field.name
@@ -39,16 +41,13 @@ describe 'MyJohnDeereApi::Model::Field' do
39
41
  end
40
42
 
41
43
  it 'accepts an optional accessor' do
42
- mock_accessor = 'mock-accessor'
43
-
44
- field = JD::Model::Field.new(record, mock_accessor)
45
- assert_equal mock_accessor, field.accessor
44
+ field = klass.new(record, client)
45
+ assert_equal client, field.client
46
46
  end
47
47
  end
48
48
 
49
49
  describe '#flags' do
50
50
  it 'returns a collection of flags for this organization' do
51
- accessor
52
51
  organization = VCR.use_cassette('get_organizations') { client.organizations.first }
53
52
  field = VCR.use_cassette('get_fields') { organization.fields.first }
54
53
  flags = VCR.use_cassette('get_flags') { field.flags.all }
@@ -61,7 +60,7 @@ describe 'MyJohnDeereApi::Model::Field' do
61
60
  end
62
61
 
63
62
  it 'raises an exception if an accessor is not available' do
64
- field = JD::Model::Field.new(record)
63
+ field = klass.new(record)
65
64
 
66
65
  exception = assert_raises(JD::AccessTokenError) { field.flags }
67
66
 
@@ -71,7 +70,7 @@ describe 'MyJohnDeereApi::Model::Field' do
71
70
 
72
71
  describe 'private #organization_id' do
73
72
  it "infers the organization_id from links" do
74
- field = JD::Model::Field.new(record)
73
+ field = klass.new(record)
75
74
  assert_equal organization_id, field.send(:organization_id)
76
75
  end
77
76
  end
@@ -2,6 +2,8 @@ require 'support/helper'
2
2
  require 'json'
3
3
 
4
4
  describe 'MyJohnDeereApi::Model::Flag' do
5
+ let(:klass) { JD::Model::Flag }
6
+
5
7
  let(:record) do
6
8
  {
7
9
  "@type"=>"Flag",
@@ -24,7 +26,7 @@ describe 'MyJohnDeereApi::Model::Flag' do
24
26
  end
25
27
 
26
28
  it 'sets the attributes from the given record' do
27
- field = JD::Model::Flag.new(record)
29
+ field = klass.new(record)
28
30
 
29
31
  assert_nil field.accessor
30
32
 
@@ -42,11 +44,9 @@ describe 'MyJohnDeereApi::Model::Flag' do
42
44
  assert_equal link_for('lastModifiedBy'), field.links['last_modified_by']
43
45
  end
44
46
 
45
- it 'accepts an optional accessor' do
46
- accessor = 'mock-accessor'
47
-
48
- field = JD::Model::Flag.new(record, accessor)
49
- assert_equal accessor, field.accessor
47
+ it 'accepts an optional client' do
48
+ field = klass.new(record, client)
49
+ assert_equal client, field.client
50
50
  end
51
51
  end
52
52
  end
@@ -1,6 +1,8 @@
1
1
  require 'support/helper'
2
2
 
3
3
  describe 'MyJohnDeereApi::Model::Organization' do
4
+ let(:klass) { JD::Model::Organization }
5
+
4
6
  let(:record) do
5
7
  {
6
8
  "@type"=>"Organization",
@@ -28,13 +30,13 @@ describe 'MyJohnDeereApi::Model::Organization' do
28
30
  }
29
31
  end
30
32
 
31
- describe '#initialize(record, accessor = nil)' do
33
+ describe '#initialize(record, client = nil)' do
32
34
  def link_for label
33
35
  record['links'].detect{|link| link['rel'] == label}['uri'].gsub('https://sandboxapi.deere.com/platform', '')
34
36
  end
35
37
 
36
38
  it 'sets the attributes from the given record' do
37
- organization = JD::Model::Organization.new(record)
39
+ organization = klass.new(record)
38
40
 
39
41
  # basic attributes
40
42
  assert_equal record['name'], organization.name
@@ -51,17 +53,14 @@ describe 'MyJohnDeereApi::Model::Organization' do
51
53
  end
52
54
  end
53
55
 
54
- it 'accepts an optional accessor' do
55
- mock_accessor = 'mock-accessor'
56
-
57
- organization = JD::Model::Organization.new(record, mock_accessor)
58
- assert_equal mock_accessor, organization.accessor
56
+ it 'accepts an optional client' do
57
+ organization = klass.new(record, client)
58
+ assert_equal client, organization.client
59
59
  end
60
60
  end
61
61
 
62
62
  describe '#fields' do
63
63
  it 'returns a collection of fields for this organization' do
64
- accessor
65
64
  organization = VCR.use_cassette('get_organizations') { client.organizations.first }
66
65
  fields = VCR.use_cassette('get_fields') { organization.fields.all }
67
66
 
@@ -73,7 +72,7 @@ describe 'MyJohnDeereApi::Model::Organization' do
73
72
  end
74
73
 
75
74
  it 'raises an exception if an accessor is not available' do
76
- organization = JD::Model::Organization.new(record)
75
+ organization = klass.new(record)
77
76
 
78
77
  exception = assert_raises(JD::AccessTokenError) { organization.fields }
79
78
 
@@ -83,7 +82,6 @@ describe 'MyJohnDeereApi::Model::Organization' do
83
82
 
84
83
  describe '#assets' do
85
84
  it 'returns a collection of assets for this organization' do
86
- accessor
87
85
  organization = VCR.use_cassette('get_organizations') { client.organizations.first }
88
86
  assets = VCR.use_cassette('get_assets') { organization.assets.all; organization.assets }
89
87
 
@@ -95,7 +93,7 @@ describe 'MyJohnDeereApi::Model::Organization' do
95
93
  end
96
94
 
97
95
  it 'raises an exception if an accessor is not available' do
98
- organization = JD::Model::Organization.new(record)
96
+ organization = klass.new(record)
99
97
 
100
98
  exception = assert_raises(JD::AccessTokenError) { organization.assets }
101
99
  assert_includes exception.message, 'Access Token must be supplied'
@@ -3,18 +3,19 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Collection::AssetLocations' do
6
- let(:collection) { JD::Request::Collection::AssetLocations.new(accessor, asset: asset_id) }
6
+ let(:klass) { JD::Request::Collection::AssetLocations }
7
+ let(:collection) { klass.new(client, asset: asset_id) }
7
8
  let(:object) { collection }
8
9
 
9
10
  inherits_from JD::Request::Collection::Base
10
11
 
11
- describe '#initialize(access_token)' do
12
- it 'accepts an access token' do
13
- assert_kind_of OAuth::AccessToken, collection.accessor
12
+ describe '#initialize(client)' do
13
+ it 'accepts a client' do
14
+ assert_equal client, collection.client
14
15
  end
15
16
 
16
17
  it 'accepts associations' do
17
- collection = JD::Request::Collection::AssetLocations.new(accessor, asset: asset_id)
18
+ collection = klass.new(client, asset: asset_id)
18
19
 
19
20
  assert_kind_of Hash, collection.associations
20
21
  assert_equal asset_id, collection.associations[:asset]
@@ -3,18 +3,19 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Collection::Assets' do
6
- let(:collection) { JD::Request::Collection::Assets.new(accessor, organization: organization_id) }
6
+ let(:klass) { JD::Request::Collection::Assets }
7
+ let(:collection) { klass.new(client, organization: organization_id) }
7
8
  let(:object) { collection }
8
9
 
9
10
  inherits_from JD::Request::Collection::Base
10
11
 
11
- describe '#initialize(access_token)' do
12
- it 'accepts an access token' do
13
- assert_kind_of OAuth::AccessToken, collection.accessor
12
+ describe '#initialize(client)' do
13
+ it 'accepts a client' do
14
+ assert_equal client, collection.client
14
15
  end
15
16
 
16
17
  it 'accepts associations' do
17
- collection = JD::Request::Collection::Assets.new(accessor, organization: organization_id)
18
+ collection = klass.new(client, organization: organization_id)
18
19
 
19
20
  assert_kind_of Hash, collection.associations
20
21
  assert_equal organization_id, collection.associations[:organization]
@@ -1,14 +1,16 @@
1
1
  require 'support/helper'
2
2
 
3
3
  describe 'MyJohnDeereApi::Request::Collection::Base' do
4
- describe '#initialize(access_token)' do
5
- it 'accepts an access token' do
6
- collection = JD::Request::Collection::Base.new(accessor)
7
- assert_kind_of OAuth::AccessToken, collection.accessor
4
+ let(:klass) { JD::Request::Collection::Base }
5
+
6
+ describe '#initialize(client)' do
7
+ it 'accepts a client' do
8
+ collection = klass.new(client)
9
+ assert_equal client, collection.client
8
10
  end
9
11
 
10
12
  it 'accepts associations' do
11
- collection = JD::Request::Collection::Base.new(accessor, organization: organization_id)
13
+ collection = klass.new(client, organization: organization_id)
12
14
 
13
15
  assert_kind_of Hash, collection.associations
14
16
  assert_equal organization_id, collection.associations[:organization]
@@ -16,7 +18,7 @@ describe 'MyJohnDeereApi::Request::Collection::Base' do
16
18
  end
17
19
 
18
20
  it 'uses the Enumerable module' do
19
- collection = JD::Request::Collection::Base.new(accessor)
21
+ collection = klass.new(client)
20
22
 
21
23
  [:each, :first, :map, :detect, :select].each do |method_name|
22
24
  assert collection.respond_to?(method_name)
@@ -5,18 +5,18 @@ require 'json'
5
5
  describe 'MyJohnDeereApi::Request::Collection::ContributionDefinitions' do
6
6
  let(:klass) { MyJohnDeereApi::Request::Collection::ContributionDefinitions }
7
7
 
8
- let(:collection) { klass.new(accessor, contribution_product: contribution_product_id) }
8
+ let(:collection) { klass.new(client, contribution_product: contribution_product_id) }
9
9
  let(:object) { collection }
10
10
 
11
11
  inherits_from JD::Request::Collection::Base
12
12
 
13
- describe '#initialize(access_token)' do
14
- it 'accepts an access token' do
15
- assert_kind_of OAuth::AccessToken, collection.accessor
13
+ describe '#initialize(client)' do
14
+ it 'accepts a client' do
15
+ assert_equal client, collection.client
16
16
  end
17
17
 
18
18
  it 'accepts associations' do
19
- collection = klass.new(accessor, something: 123)
19
+ collection = klass.new(client, something: 123)
20
20
 
21
21
  assert_kind_of Hash, collection.associations
22
22
  assert_equal 123, collection.associations[:something]
@@ -5,18 +5,18 @@ require 'json'
5
5
  describe 'MyJohnDeereApi::Request::Collection::ContributionProducts' do
6
6
  let(:klass) { MyJohnDeereApi::Request::Collection::ContributionProducts }
7
7
 
8
- let(:collection) { klass.new(accessor) }
8
+ let(:collection) { klass.new(client) }
9
9
  let(:object) { collection }
10
10
 
11
11
  inherits_from JD::Request::Collection::Base
12
12
 
13
- describe '#initialize(access_token)' do
14
- it 'accepts an access token' do
15
- assert_kind_of OAuth::AccessToken, collection.accessor
13
+ describe '#initialize(client)' do
14
+ it 'accepts a client' do
15
+ assert_equal client, collection.client
16
16
  end
17
17
 
18
18
  it 'accepts associations' do
19
- collection = klass.new(accessor, something: 123)
19
+ collection = klass.new(client, something: 123)
20
20
 
21
21
  assert_kind_of Hash, collection.associations
22
22
  assert_equal 123, collection.associations[:something]
@@ -3,18 +3,19 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Collection::Fields' do
6
- let(:collection) { JD::Request::Collection::Fields.new(accessor, organization: organization_id) }
6
+ let(:klass) { JD::Request::Collection::Fields }
7
+ let(:collection) { klass.new(client, organization: organization_id) }
7
8
  let(:object) { collection }
8
9
 
9
10
  inherits_from JD::Request::Collection::Base
10
11
 
11
- describe '#initialize(access_token)' do
12
- it 'accepts an access token' do
13
- assert_kind_of OAuth::AccessToken, collection.accessor
12
+ describe '#initialize(client)' do
13
+ it 'accepts a client' do
14
+ assert_equal client, collection.client
14
15
  end
15
16
 
16
17
  it 'accepts associations' do
17
- collection = JD::Request::Collection::Fields.new(accessor, organization: organization_id)
18
+ collection = klass.new(client, organization: organization_id)
18
19
 
19
20
  assert_kind_of Hash, collection.associations
20
21
  assert_equal organization_id, collection.associations[:organization]
@@ -3,18 +3,19 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Collection::Flags' do
6
- let(:collection) { JD::Request::Collection::Flags.new(accessor, organization: organization_id, field: field_id) }
6
+ let(:klass) { JD::Request::Collection::Flags }
7
+ let(:collection) { klass.new(client, organization: organization_id, field: field_id) }
7
8
  let(:object) { collection }
8
9
 
9
10
  inherits_from JD::Request::Collection::Base
10
11
 
11
- describe '#initialize(access_token)' do
12
- it 'accepts an access token' do
13
- assert_kind_of OAuth::AccessToken, collection.accessor
12
+ describe '#initialize(client)' do
13
+ it 'accepts a client' do
14
+ assert_equal client, collection.client
14
15
  end
15
16
 
16
17
  it 'accepts associations' do
17
- collection = JD::Request::Collection::Flags.new(accessor, organization: organization_id, field: field_id)
18
+ collection = klass.new(client, organization: organization_id, field: field_id)
18
19
 
19
20
  assert_kind_of Hash, collection.associations
20
21
  assert_equal organization_id, collection.associations[:organization]
@@ -3,14 +3,15 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Collection::Organizations' do
6
- let(:collection) { JD::Request::Collection::Organizations.new(accessor) }
6
+ let(:klass) { JD::Request::Collection::Organizations }
7
+ let(:collection) { klass.new(client) }
7
8
  let(:object) { collection }
8
9
 
9
10
  inherits_from JD::Request::Collection::Base
10
11
 
11
- describe '#initialize(access_token)' do
12
- it 'accepts an access token' do
13
- assert_kind_of OAuth::AccessToken, collection.accessor
12
+ describe '#initialize(client)' do
13
+ it 'accepts a client' do
14
+ assert_equal client, collection.client
14
15
  end
15
16
  end
16
17
 
@@ -75,11 +76,11 @@ describe 'MyJohnDeereApi::Request::Collection::Organizations' do
75
76
  end
76
77
  end
77
78
 
78
- it 'passes the accessor to all organizations' do
79
+ it 'passes the client to all organizations' do
79
80
  organizations = VCR.use_cassette('get_organizations') { collection.all }
80
81
 
81
82
  organizations.each do |organization|
82
- assert_equal accessor, organization.accessor
83
+ assert_equal client, organization.client
83
84
  end
84
85
  end
85
86
  end
@@ -15,12 +15,14 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
15
15
 
16
16
  let(:attributes) { valid_attributes }
17
17
 
18
- let(:object) { JD::Request::Create::AssetLocation.new(accessor, attributes) }
18
+ let(:klass) { JD::Request::Create::AssetLocation }
19
+ let(:object) { klass.new(client, attributes) }
19
20
 
20
21
  inherits_from MyJohnDeereApi::Request::Create::Base
21
22
 
22
- describe '#initialize(access_token, attributes)' do
23
- it 'accepts an accessor and attributes' do
23
+ describe '#initialize(client, attributes)' do
24
+ it 'accepts a client and attributes' do
25
+ assert_equal client, object.client
24
26
  assert_equal accessor, object.accessor
25
27
  assert_equal attributes, object.attributes
26
28
  end
@@ -33,13 +35,13 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
33
35
  measurement_data: valid_attributes[:measurement_data]
34
36
  }
35
37
 
36
- object = JD::Request::Create::AssetLocation.new(accessor, attributes)
38
+ object = klass.new(client, attributes)
37
39
  assert_equal valid_attributes[:geometry].to_json, object.attributes[:geometry]
38
40
  end
39
41
 
40
42
  it 'defaults timestamp to current time' do
41
43
  attributes = valid_attributes.slice(:asset_id, :geometry, :measurement_data)
42
- object = JD::Request::Create::AssetLocation.new(accessor, attributes)
44
+ object = klass.new(client, attributes)
43
45
 
44
46
  expected_stamp = Time.now.utc.to_i
45
47
  actual_stamp = DateTime.parse(object.attributes[:timestamp]).to_time.to_i
@@ -55,21 +57,21 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
55
57
  end
56
58
 
57
59
  it 'requires asset_id' do
58
- object = JD::Request::Create::AssetLocation.new(accessor, attributes_without(:asset_id))
60
+ object = klass.new(client, attributes_without(:asset_id))
59
61
 
60
62
  refute object.valid?
61
63
  assert_equal 'is required', object.errors[:asset_id]
62
64
  end
63
65
 
64
66
  it 'requires geometry' do
65
- object = JD::Request::Create::AssetLocation.new(accessor, attributes_without(:geometry))
67
+ object = klass.new(client, attributes_without(:geometry))
66
68
 
67
69
  refute object.valid?
68
70
  assert_equal 'is required', object.errors[:geometry]
69
71
  end
70
72
 
71
73
  it 'requires measurement_data' do
72
- object = JD::Request::Create::AssetLocation.new(accessor, attributes_without(:measurement_data))
74
+ object = klass.new(client, attributes_without(:measurement_data))
73
75
 
74
76
  refute object.valid?
75
77
  assert_equal 'is required', object.errors[:measurement_data]
@@ -77,7 +79,7 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
77
79
 
78
80
  describe 'validating measurement_data' do
79
81
  it 'must be an array' do
80
- object = JD::Request::Create::AssetLocation.new(accessor, attributes.merge(measurement_data: 'something'))
82
+ object = klass.new(client, attributes.merge(measurement_data: 'something'))
81
83
 
82
84
  refute object.valid?
83
85
  assert_equal 'must be an array', object.errors[:measurement_data]
@@ -85,7 +87,7 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
85
87
 
86
88
  it 'must include a name' do
87
89
  without_attr = [attributes[:measurement_data].first.reject{|k,v| k == :name}]
88
- object = JD::Request::Create::AssetLocation.new(accessor, attributes.merge(measurement_data: without_attr))
90
+ object = klass.new(client, attributes.merge(measurement_data: without_attr))
89
91
 
90
92
  refute object.valid?
91
93
  assert_equal 'must include name', object.errors[:measurement_data]
@@ -93,7 +95,7 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
93
95
 
94
96
  it 'must include a value' do
95
97
  without_attr = [attributes[:measurement_data].first.reject{|k,v| k == :value}]
96
- object = JD::Request::Create::AssetLocation.new(accessor, attributes.merge(measurement_data: without_attr))
98
+ object = klass.new(client, attributes.merge(measurement_data: without_attr))
97
99
 
98
100
  refute object.valid?
99
101
  assert_equal 'must include value', object.errors[:measurement_data]
@@ -101,7 +103,7 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
101
103
 
102
104
  it 'must include a unit' do
103
105
  without_attr = [attributes[:measurement_data].first.reject{|k,v| k == :unit}]
104
- object = JD::Request::Create::AssetLocation.new(accessor, attributes.merge(measurement_data: without_attr))
106
+ object = klass.new(client, attributes.merge(measurement_data: without_attr))
105
107
 
106
108
  refute object.valid?
107
109
  assert_equal 'must include unit', object.errors[:measurement_data]
@@ -111,7 +113,7 @@ describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
111
113
 
112
114
  describe '#validate!' do
113
115
  it 'raises an error when invalid' do
114
- object = JD::Request::Create::AssetLocation.new(accessor, attributes_without(:asset_id))
116
+ object = klass.new(client, attributes_without(:asset_id))
115
117
 
116
118
  exception = assert_raises(JD::InvalidRecordError) { object.validate! }
117
119
  assert_includes exception.message, 'Record is invalid'
@@ -13,14 +13,16 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
13
13
  )
14
14
  end
15
15
 
16
- let(:object) { JD::Request::Create::Asset.new(accessor, attributes) }
16
+ let(:klass) { JD::Request::Create::Asset }
17
+ let(:object) { klass.new(client, attributes) }
17
18
 
18
19
  let(:attributes) { valid_attributes }
19
20
 
20
21
  inherits_from MyJohnDeereApi::Request::Create::Base
21
22
 
22
- describe '#initialize(access_token, attributes)' do
23
- it 'accepts an accessor and attributes' do
23
+ describe '#initialize(client, attributes)' do
24
+ it 'accepts a client and attributes' do
25
+ assert_equal client, object.client
24
26
  assert_equal accessor, object.accessor
25
27
  assert_equal attributes, object.attributes
26
28
  end
@@ -33,42 +35,42 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
33
35
  end
34
36
 
35
37
  it 'requires organization_id' do
36
- object = JD::Request::Create::Asset.new(accessor, attributes_without(:organization_id))
38
+ object = klass.new(client, attributes_without(:organization_id))
37
39
 
38
40
  refute object.valid?
39
41
  assert_equal 'is required', object.errors[:organization_id]
40
42
  end
41
43
 
42
44
  it 'requires contribution_definition_id' do
43
- object = JD::Request::Create::Asset.new(accessor, attributes_without(:contribution_definition_id))
45
+ object = klass.new(client, attributes_without(:contribution_definition_id))
44
46
 
45
47
  refute object.valid?
46
48
  assert_equal 'is required', object.errors[:contribution_definition_id]
47
49
  end
48
50
 
49
51
  it 'requires title' do
50
- object = JD::Request::Create::Asset.new(accessor, attributes_without(:title))
52
+ object = klass.new(client, attributes_without(:title))
51
53
 
52
54
  refute object.valid?
53
55
  assert_equal 'is required', object.errors[:title]
54
56
  end
55
57
 
56
58
  it 'requires a valid category' do
57
- object = JD::Request::Create::Asset.new(accessor, attributes.merge(asset_category: 'TURTLES'))
59
+ object = klass.new(client, attributes.merge(asset_category: 'TURTLES'))
58
60
 
59
61
  refute object.valid?
60
62
  assert_equal 'requires valid combination of category/type/subtype', object.errors[:asset_category]
61
63
  end
62
64
 
63
65
  it 'requires a valid type' do
64
- object = JD::Request::Create::Asset.new(accessor, attributes.merge(asset_type: 'TURTLES'))
66
+ object = klass.new(client, attributes.merge(asset_type: 'TURTLES'))
65
67
 
66
68
  refute object.valid?
67
69
  assert_equal 'requires valid combination of category/type/subtype', object.errors[:asset_category]
68
70
  end
69
71
 
70
72
  it 'requires a valid subtype' do
71
- object = JD::Request::Create::Asset.new(accessor, attributes.merge(asset_sub_type: 'TURTLES'))
73
+ object = klass.new(client, attributes.merge(asset_sub_type: 'TURTLES'))
72
74
 
73
75
  refute object.valid?
74
76
  assert_equal 'requires valid combination of category/type/subtype', object.errors[:asset_category]
@@ -77,7 +79,7 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
77
79
 
78
80
  describe '#validate!' do
79
81
  it 'raises an error when invalid' do
80
- object = JD::Request::Create::Asset.new(accessor, attributes_without(:organization_id))
82
+ object = klass.new(client, attributes_without(:organization_id))
81
83
 
82
84
  exception = assert_raises(JD::InvalidRecordError) { object.validate! }
83
85
  assert_includes exception.message, 'Record is invalid'
@@ -87,7 +89,7 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
87
89
 
88
90
  describe '#valid_categories?(category, type, subtype)' do
89
91
  it 'only allows pre-defined combinations' do
90
- object = JD::Request::Create::Asset.new(accessor, {})
92
+ object = klass.new(client, {})
91
93
 
92
94
  valid_combos = [
93
95
  ['DEVICE', 'SENSOR', 'ENVIRONMENTAL'],
@@ -126,14 +128,14 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
126
128
 
127
129
  describe '#resource' do
128
130
  it 'is built from the organization id' do
129
- object = JD::Request::Create::Asset.new(accessor, attributes)
131
+ object = klass.new(client, attributes)
130
132
  assert_equal "/organizations/#{organization_id}/assets", object.send(:resource)
131
133
  end
132
134
  end
133
135
 
134
136
  describe '#request_body' do
135
137
  it 'properly forms the request body' do
136
- object = JD::Request::Create::Asset.new(accessor, attributes)
138
+ object = klass.new(client, attributes)
137
139
  body = object.send(:request_body)
138
140
 
139
141
  assert_equal attributes[:title], body[:title]
@@ -162,7 +164,7 @@ describe 'MyJohnDeereApi::Request::Create::Asset' do
162
164
 
163
165
  describe '#object' do
164
166
  it 'returns the asset model instance' do
165
- object = JD::Request::Create::Asset.new(accessor, attributes)
167
+ object = klass.new(client, attributes)
166
168
  result = VCR.use_cassette('post_assets') { object.object }
167
169
 
168
170
  assert_kind_of JD::Model::Asset, result
@@ -1,12 +1,14 @@
1
1
  require 'support/helper'
2
2
 
3
3
  describe 'MyJohnDeereApi::Request::Create::Base' do
4
+ let(:klass) { JD::Request::Create::Base }
4
5
  let(:attributes) { {} }
5
6
 
6
- describe '#initialize(access_token, attributes)' do
7
- it 'accepts an accessor and attributes' do
8
- object = JD::Request::Create::Base.new(accessor, attributes)
7
+ describe '#initialize(client, attributes)' do
8
+ it 'accepts a client and attributes' do
9
+ object = klass.new(client, attributes)
9
10
 
11
+ assert_equal client, object.client
10
12
  assert_equal accessor, object.accessor
11
13
  assert_equal attributes, object.attributes
12
14
  end
@@ -14,7 +16,7 @@ describe 'MyJohnDeereApi::Request::Create::Base' do
14
16
 
15
17
  describe '#headers' do
16
18
  it 'sets the accept and content-type headers' do
17
- object = JD::Request::Create::Base.new(accessor, attributes)
19
+ object = klass.new(client, attributes)
18
20
  headers = object.send(:headers)
19
21
 
20
22
  expected = 'application/vnd.deere.axiom.v3+json'
@@ -3,12 +3,13 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Individual::Asset' do
6
- let(:object) { JD::Request::Individual::Asset.new(accessor, asset_id) }
6
+ let(:object) { JD::Request::Individual::Asset.new(client, asset_id) }
7
7
 
8
8
  inherits_from JD::Request::Individual::Base
9
9
 
10
- describe '#initialize(access_token, asset_id)' do
11
- it 'accepts an access token' do
10
+ describe '#initialize(client, asset_id)' do
11
+ it 'accepts a client' do
12
+ assert_equal client, object.client
12
13
  assert_equal accessor, object.accessor
13
14
  end
14
15
 
@@ -3,10 +3,11 @@ require 'yaml'
3
3
  require 'json'
4
4
 
5
5
  describe 'MyJohnDeereApi::Request::Individual::Base' do
6
- let(:object) { JD::Request::Individual::Base.new(accessor, asset_id) }
6
+ let(:object) { JD::Request::Individual::Base.new(client, asset_id) }
7
7
 
8
- describe '#initialize(access_token, asset_id)' do
9
- it 'accepts an access token' do
8
+ describe '#initialize(client, asset_id)' do
9
+ it 'accepts a client' do
10
+ assert_equal client, object.client
10
11
  assert_equal accessor, object.accessor
11
12
  end
12
13