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.
- checksums.yaml +4 -4
- data/lib/business_central.rb +6 -0
- data/lib/business_central/client.rb +16 -4
- data/lib/business_central/exceptions.rb +11 -1
- data/lib/business_central/object/account.rb +0 -10
- data/lib/business_central/object/aged_account_payable.rb +0 -10
- data/lib/business_central/object/aged_account_receivable.rb +0 -10
- data/lib/business_central/object/balance_sheet.rb +0 -10
- data/lib/business_central/object/base.rb +30 -13
- data/lib/business_central/object/cash_flow_statement.rb +0 -10
- data/lib/business_central/object/company.rb +5 -0
- data/lib/business_central/object/company_information.rb +0 -10
- data/lib/business_central/object/country_region.rb +0 -10
- data/lib/business_central/object/currency.rb +0 -10
- data/lib/business_central/object/customer.rb +27 -0
- data/lib/business_central/object/customer_financial_detail.rb +11 -0
- data/lib/business_central/object/customer_payment.rb +41 -0
- data/lib/business_central/object/customer_payment_journal.rb +23 -0
- data/lib/business_central/object/customer_sale.rb +11 -0
- data/lib/business_central/object/default_dimension.rb +54 -0
- data/lib/business_central/object/helper.rb +29 -3
- data/lib/business_central/object/item.rb +0 -10
- data/lib/business_central/object/purchase_invoice.rb +0 -10
- data/lib/business_central/object/purchase_invoice_line.rb +4 -10
- data/lib/business_central/object/request.rb +2 -2
- data/lib/business_central/object/vendor.rb +3 -9
- data/lib/business_central/version.rb +1 -1
- data/test/business_central/client_test.rb +37 -2
- data/test/business_central/object/base_test.rb +39 -0
- data/test/business_central/object/customer_financial_detail_test.rb +66 -0
- data/test/business_central/object/customer_payment_journal_test.rb +135 -0
- data/test/business_central/object/customer_payment_test.rb +142 -0
- data/test/business_central/object/customer_sale_test.rb +70 -0
- data/test/business_central/object/customer_test.rb +125 -0
- data/test/business_central/object/default_dimension_test.rb +171 -0
- data/test/business_central/object/request_test.rb +58 -3
- data/test/business_central/object/response_test.rb +24 -6
- data/test/test_helper.rb +6 -2
- 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.
|
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:
|
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
|