business-central 1.0.2 → 1.0.3

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/business_central.rb +6 -0
  3. data/lib/business_central/client.rb +16 -4
  4. data/lib/business_central/exceptions.rb +11 -1
  5. data/lib/business_central/object/account.rb +0 -10
  6. data/lib/business_central/object/aged_account_payable.rb +0 -10
  7. data/lib/business_central/object/aged_account_receivable.rb +0 -10
  8. data/lib/business_central/object/balance_sheet.rb +0 -10
  9. data/lib/business_central/object/base.rb +30 -13
  10. data/lib/business_central/object/cash_flow_statement.rb +0 -10
  11. data/lib/business_central/object/company.rb +5 -0
  12. data/lib/business_central/object/company_information.rb +0 -10
  13. data/lib/business_central/object/country_region.rb +0 -10
  14. data/lib/business_central/object/currency.rb +0 -10
  15. data/lib/business_central/object/customer.rb +27 -0
  16. data/lib/business_central/object/customer_financial_detail.rb +11 -0
  17. data/lib/business_central/object/customer_payment.rb +41 -0
  18. data/lib/business_central/object/customer_payment_journal.rb +23 -0
  19. data/lib/business_central/object/customer_sale.rb +11 -0
  20. data/lib/business_central/object/default_dimension.rb +54 -0
  21. data/lib/business_central/object/helper.rb +29 -3
  22. data/lib/business_central/object/item.rb +0 -10
  23. data/lib/business_central/object/purchase_invoice.rb +0 -10
  24. data/lib/business_central/object/purchase_invoice_line.rb +4 -10
  25. data/lib/business_central/object/request.rb +2 -2
  26. data/lib/business_central/object/vendor.rb +3 -9
  27. data/lib/business_central/version.rb +1 -1
  28. data/test/business_central/client_test.rb +37 -2
  29. data/test/business_central/object/base_test.rb +39 -0
  30. data/test/business_central/object/customer_financial_detail_test.rb +66 -0
  31. data/test/business_central/object/customer_payment_journal_test.rb +135 -0
  32. data/test/business_central/object/customer_payment_test.rb +142 -0
  33. data/test/business_central/object/customer_sale_test.rb +70 -0
  34. data/test/business_central/object/customer_test.rb +125 -0
  35. data/test/business_central/object/default_dimension_test.rb +171 -0
  36. data/test/business_central/object/request_test.rb +58 -3
  37. data/test/business_central/object/response_test.rb +24 -6
  38. data/test/test_helper.rb +6 -2
  39. metadata +36 -2
@@ -17,7 +17,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
17
17
  displayName: 'value1'
18
18
  }
19
19
  ]
20
- }.to_json,
20
+ }.to_json
21
21
  )
22
22
 
23
23
  response = BusinessCentral::Object::Request.get(@client, @url)
@@ -35,7 +35,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
35
35
  displayName: 'value2'
36
36
  }
37
37
  ]
38
- }.to_json,
38
+ }.to_json
39
39
  )
40
40
 
41
41
  response = BusinessCentral::Object::Request.post(@client, @url, { display_name: 'value2' })
@@ -53,7 +53,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
53
53
  displayName: 'value3'
54
54
  }
55
55
  ]
56
- }.to_json,
56
+ }.to_json
57
57
  )
58
58
 
59
59
  response = BusinessCentral::Object::Request.patch(@client, @url, '1', { display_name: 'value3' })
@@ -73,4 +73,59 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
73
73
  request = JSON.parse(BusinessCentral::Object::Request.convert(param))
74
74
  assert request.has_key?("newKey")
75
75
  end
76
+
77
+ def test_get_request_returns_unathorized_error
78
+ stub_request(:get, @url)
79
+ .to_return(status: 401)
80
+
81
+ assert_raises(BusinessCentral::UnauthorizedException) do
82
+ BusinessCentral::Object::Request.get(@client, @url)
83
+ end
84
+ end
85
+
86
+ def test_get_request_returns_error_company_not_found
87
+ stub_request(:get, @url)
88
+ .to_return(
89
+ status: 400,
90
+ body: {
91
+ error: {
92
+ code: 'Internal_CompanyNotFound'
93
+ }
94
+ }.to_json
95
+ )
96
+
97
+ assert_raises(BusinessCentral::CompanyNotFoundException) do
98
+ BusinessCentral::Object::Request.get(@client, @url)
99
+ end
100
+ end
101
+
102
+ def test_get_request_returns_error_code
103
+ stub_request(:get, @url)
104
+ .to_return(
105
+ status: 400,
106
+ body: {
107
+ error: {
108
+ code: 'Not_Catered_For'
109
+ }
110
+ }.to_json
111
+ )
112
+
113
+ assert_raises(BusinessCentral::ApiException) do
114
+ BusinessCentral::Object::Request.get(@client, @url)
115
+ end
116
+ end
117
+
118
+ def test_get_request_returns_error_with_no_code
119
+ stub_request(:get, @url)
120
+ .to_return(
121
+ status: 400,
122
+ body: {
123
+ nope: 'wup wup'
124
+ }.to_json
125
+ )
126
+
127
+ assert_raises(BusinessCentral::ApiException) do
128
+ BusinessCentral::Object::Request.get(@client, @url)
129
+ end
130
+ end
76
131
  end
@@ -2,12 +2,6 @@ require "test_helper"
2
2
  # rake test TEST=test/business_central/object/response_test.rb
3
3
 
4
4
  class BusinessCentral::Object::ResponseTest < Minitest::Test
5
- def test_process_response
6
- params = '{"newKey": "value"}'
7
- request = BusinessCentral::Object::Response.new(params).results
8
- assert request.has_key?(:new_key)
9
- end
10
-
11
5
  def test_success
12
6
  assert BusinessCentral::Object::Response.success?(200)
13
7
  end
@@ -23,4 +17,28 @@ class BusinessCentral::Object::ResponseTest < Minitest::Test
23
17
  def test_no_response
24
18
  BusinessCentral::Object::Response.new("").results
25
19
  end
20
+
21
+ def test_process_response
22
+ params = '{"newKey": "value"}'
23
+ request = BusinessCentral::Object::Response.new(params).results
24
+ assert request.has_key?(:new_key)
25
+ end
26
+
27
+ def test_process_etag
28
+ params = '{"@odata.etag": "123"}'
29
+ request = BusinessCentral::Object::Response.new(params).results
30
+ assert request.has_key?(:etag)
31
+ end
32
+
33
+ def test_process_context
34
+ params = '{"@odata.context": "123"}'
35
+ request = BusinessCentral::Object::Response.new(params).results
36
+ assert request.has_key?(:context)
37
+ end
38
+
39
+ def test_process_inner_hash
40
+ params = '{"item": { "id": "123" }}'
41
+ request = BusinessCentral::Object::Response.new(params).results
42
+ assert request.has_key?(:item)
43
+ end
26
44
  end
data/test/test_helper.rb CHANGED
@@ -1,11 +1,15 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_filter '/test/'
4
+ end
5
+
1
6
  $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
2
7
  require "business_central"
3
8
 
4
9
  require "minitest/autorun"
5
- require "minitest/pride"
6
10
  require "minitest/mock"
7
11
 
8
12
  require "byebug"
9
13
  require 'webmock/minitest'
10
14
 
11
- WebMock.disable_net_connect!(allow_localhost: true)
15
+ WebMock.disable_net_connect!(allow_localhost: true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: business-central
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jarrad Muir
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-19 00:00:00.000000000 Z
11
+ date: 2020-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,6 +92,20 @@ dependencies:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: 11.0.1
95
+ - !ruby/object:Gem::Dependency
96
+ name: simplecov
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 0.17.1
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.17.1
95
109
  - !ruby/object:Gem::Dependency
96
110
  name: oauth2
97
111
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +148,12 @@ files:
134
148
  - lib/business_central/object/company_information.rb
135
149
  - lib/business_central/object/country_region.rb
136
150
  - lib/business_central/object/currency.rb
151
+ - lib/business_central/object/customer.rb
152
+ - lib/business_central/object/customer_financial_detail.rb
153
+ - lib/business_central/object/customer_payment.rb
154
+ - lib/business_central/object/customer_payment_journal.rb
155
+ - lib/business_central/object/customer_sale.rb
156
+ - lib/business_central/object/default_dimension.rb
137
157
  - lib/business_central/object/helper.rb
138
158
  - lib/business_central/object/item.rb
139
159
  - lib/business_central/object/purchase_invoice.rb
@@ -149,11 +169,18 @@ files:
149
169
  - test/business_central/object/aged_account_payable_test.rb
150
170
  - test/business_central/object/aged_account_receivable_test.rb
151
171
  - test/business_central/object/balance_sheet_test.rb
172
+ - test/business_central/object/base_test.rb
152
173
  - test/business_central/object/cash_flow_statement_test.rb
153
174
  - test/business_central/object/company_information_test.rb
154
175
  - test/business_central/object/company_test.rb
155
176
  - test/business_central/object/country_region_test.rb
156
177
  - test/business_central/object/currency_test.rb
178
+ - test/business_central/object/customer_financial_detail_test.rb
179
+ - test/business_central/object/customer_payment_journal_test.rb
180
+ - test/business_central/object/customer_payment_test.rb
181
+ - test/business_central/object/customer_sale_test.rb
182
+ - test/business_central/object/customer_test.rb
183
+ - test/business_central/object/default_dimension_test.rb
157
184
  - test/business_central/object/item_test.rb
158
185
  - test/business_central/object/purchase_invoice_line_test.rb
159
186
  - test/business_central/object/purchase_invoice_test.rb
@@ -195,11 +222,18 @@ test_files:
195
222
  - test/business_central/object/aged_account_payable_test.rb
196
223
  - test/business_central/object/aged_account_receivable_test.rb
197
224
  - test/business_central/object/balance_sheet_test.rb
225
+ - test/business_central/object/base_test.rb
198
226
  - test/business_central/object/cash_flow_statement_test.rb
199
227
  - test/business_central/object/company_information_test.rb
200
228
  - test/business_central/object/company_test.rb
201
229
  - test/business_central/object/country_region_test.rb
202
230
  - test/business_central/object/currency_test.rb
231
+ - test/business_central/object/customer_financial_detail_test.rb
232
+ - test/business_central/object/customer_payment_journal_test.rb
233
+ - test/business_central/object/customer_payment_test.rb
234
+ - test/business_central/object/customer_sale_test.rb
235
+ - test/business_central/object/customer_test.rb
236
+ - test/business_central/object/default_dimension_test.rb
203
237
  - test/business_central/object/item_test.rb
204
238
  - test/business_central/object/purchase_invoice_line_test.rb
205
239
  - test/business_central/object/purchase_invoice_test.rb