business-central 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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