business-central 1.0.3 → 1.0.4
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 +35 -2
- data/lib/business_central/client.rb +65 -38
- data/lib/business_central/exceptions.rb +19 -9
- data/lib/business_central/object/account.rb +4 -2
- data/lib/business_central/object/aged_account_payable.rb +4 -2
- data/lib/business_central/object/aged_account_receivable.rb +4 -2
- data/lib/business_central/object/argument_helper.rb +22 -0
- data/lib/business_central/object/balance_sheet.rb +4 -2
- data/lib/business_central/object/base.rb +90 -56
- data/lib/business_central/object/cash_flow_statement.rb +4 -2
- data/lib/business_central/object/company.rb +5 -3
- data/lib/business_central/object/company_information.rb +7 -5
- data/lib/business_central/object/country_region.rb +8 -6
- data/lib/business_central/object/currency.rb +8 -6
- data/lib/business_central/object/customer.rb +15 -9
- data/lib/business_central/object/customer_financial_detail.rb +3 -1
- data/lib/business_central/object/customer_payment.rb +8 -6
- data/lib/business_central/object/customer_payment_journal.rb +8 -6
- data/lib/business_central/object/customer_sale.rb +3 -1
- data/lib/business_central/object/default_dimension.rb +17 -20
- data/lib/business_central/object/dimension.rb +20 -0
- data/lib/business_central/object/dimension_line.rb +37 -0
- data/lib/business_central/object/dimension_value.rb +28 -0
- data/lib/business_central/object/employee.rb +21 -0
- data/lib/business_central/object/filter_query.rb +18 -0
- data/lib/business_central/object/item.rb +17 -10
- data/lib/business_central/object/item_category.rb +16 -0
- data/lib/business_central/object/journal.rb +29 -0
- data/lib/business_central/object/journal_line.rb +48 -0
- data/lib/business_central/object/{helper.rb → object_helper.rb} +18 -10
- data/lib/business_central/object/payment_method.rb +16 -0
- data/lib/business_central/object/payment_term.rb +16 -0
- data/lib/business_central/object/picture.rb +53 -0
- data/lib/business_central/object/purchase_invoice.rb +8 -6
- data/lib/business_central/object/purchase_invoice_line.rb +10 -8
- data/lib/business_central/object/request.rb +60 -49
- data/lib/business_central/object/response.rb +28 -22
- data/lib/business_central/object/retained_earning_statement.rb +13 -0
- data/lib/business_central/object/sales_credit_memo.rb +20 -0
- data/lib/business_central/object/sales_credit_memo_line.rb +30 -0
- data/lib/business_central/object/sales_invoice.rb +62 -0
- data/lib/business_central/object/sales_invoice_line.rb +30 -0
- data/lib/business_central/object/sales_order.rb +20 -0
- data/lib/business_central/object/sales_order_line.rb +30 -0
- data/lib/business_central/object/sales_quote.rb +20 -0
- data/lib/business_central/object/sales_quote_line.rb +30 -0
- data/lib/business_central/object/shipment_method.rb +16 -0
- data/lib/business_central/object/subscription.rb +16 -0
- data/lib/business_central/object/tax_area.rb +16 -0
- data/lib/business_central/object/tax_group.rb +16 -0
- data/lib/business_central/object/time_registration_entry.rb +16 -0
- data/lib/business_central/object/trial_balance.rb +13 -0
- data/lib/business_central/object/units_of_measure.rb +16 -0
- data/lib/business_central/object/url_builder.rb +59 -0
- data/lib/business_central/object/url_helper.rb +32 -0
- data/lib/business_central/object/validation.rb +10 -7
- data/lib/business_central/object/vendor.rb +10 -7
- data/lib/business_central/object/vendor_purchase.rb +13 -0
- data/lib/business_central/version.rb +4 -2
- data/lib/business_central/web_service.rb +78 -0
- data/lib/core_ext/string.rb +18 -12
- data/test/business_central/client_test.rb +18 -11
- data/test/business_central/object/account_test.rb +6 -5
- data/test/business_central/object/aged_account_payable_test.rb +6 -5
- data/test/business_central/object/aged_account_receivable_test.rb +6 -5
- data/test/business_central/object/balance_sheet_test.rb +6 -5
- data/test/business_central/object/base_test.rb +4 -2
- data/test/business_central/object/cash_flow_statement_test.rb +6 -5
- data/test/business_central/object/company_information_test.rb +9 -10
- data/test/business_central/object/company_test.rb +6 -5
- data/test/business_central/object/country_region_test.rb +16 -17
- data/test/business_central/object/currency_test.rb +17 -18
- data/test/business_central/object/customer_financial_detail_test.rb +8 -6
- data/test/business_central/object/customer_payment_journal_test.rb +14 -15
- data/test/business_central/object/customer_payment_test.rb +15 -16
- data/test/business_central/object/customer_sale_test.rb +8 -6
- data/test/business_central/object/customer_test.rb +15 -16
- data/test/business_central/object/default_dimension_test.rb +15 -16
- data/test/business_central/object/dimension_line_test.rb +165 -0
- data/test/business_central/object/dimension_test.rb +65 -0
- data/test/business_central/object/dimension_value_test.rb +68 -0
- data/test/business_central/object/employee_test.rb +141 -0
- data/test/business_central/object/filter_query_test.rb +36 -0
- data/test/business_central/object/item_category_test.rb +122 -0
- data/test/business_central/object/item_test.rb +16 -17
- data/test/business_central/object/journal_line_test.rb +152 -0
- data/test/business_central/object/journal_test.rb +124 -0
- data/test/business_central/object/payment_method_test.rb +134 -0
- data/test/business_central/object/payment_term_test.rb +134 -0
- data/test/business_central/object/picture_test.rb +74 -0
- data/test/business_central/object/purchase_invoice_line_test.rb +15 -15
- data/test/business_central/object/purchase_invoice_test.rb +15 -15
- data/test/business_central/object/request_test.rb +17 -9
- data/test/business_central/object/response_test.rb +9 -7
- data/test/business_central/object/retained_earning_statement_test.rb +52 -0
- data/test/business_central/object/sales_credit_memo_line_test.rb +134 -0
- data/test/business_central/object/sales_credit_memo_test.rb +146 -0
- data/test/business_central/object/sales_invoice_line_test.rb +164 -0
- data/test/business_central/object/sales_invoice_test.rb +134 -0
- data/test/business_central/object/sales_order_line_test.rb +134 -0
- data/test/business_central/object/sales_order_test.rb +146 -0
- data/test/business_central/object/sales_quote_line_test.rb +134 -0
- data/test/business_central/object/sales_quote_test.rb +146 -0
- data/test/business_central/object/shipment_method_test.rb +133 -0
- data/test/business_central/object/subscription_test.rb +126 -0
- data/test/business_central/object/tax_area_test.rb +126 -0
- data/test/business_central/object/tax_group_test.rb +126 -0
- data/test/business_central/object/time_registration_entry_test.rb +126 -0
- data/test/business_central/object/trial_balance_test.rb +82 -0
- data/test/business_central/object/units_of_measure_test.rb +126 -0
- data/test/business_central/object/validation_test.rb +5 -4
- data/test/business_central/object/vendor_purchase_test.rb +82 -0
- data/test/business_central/object/vendor_test.rb +16 -16
- data/test/business_central/web_service_test.rb +95 -0
- data/test/business_central_test.rb +3 -1
- data/test/test_helper.rb +12 -6
- metadata +132 -33
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/dimension_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::DimensionTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@company_id = '123456'
|
9
|
+
@client = BusinessCentral::Client.new
|
10
|
+
@dimension = @client.dimension(company_id: @company_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_find_all
|
14
|
+
stub_request(:get, /dimensions/)
|
15
|
+
.to_return(
|
16
|
+
status: 200,
|
17
|
+
body: {
|
18
|
+
'value': [
|
19
|
+
{
|
20
|
+
id: '123',
|
21
|
+
code: '456',
|
22
|
+
displayName: 'Dimension1'
|
23
|
+
}
|
24
|
+
]
|
25
|
+
}.to_json
|
26
|
+
)
|
27
|
+
|
28
|
+
response = @dimension.find_all
|
29
|
+
assert_equal response.first[:display_name], 'Dimension1'
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_find_by_id
|
33
|
+
test_id = '123'
|
34
|
+
stub_request(:get, /dimensions\(#{test_id}\)/)
|
35
|
+
.to_return(
|
36
|
+
status: 200,
|
37
|
+
body: {
|
38
|
+
id: '123',
|
39
|
+
code: '456',
|
40
|
+
displayName: 'Dimension2'
|
41
|
+
}.to_json
|
42
|
+
)
|
43
|
+
|
44
|
+
response = @dimension.find_by_id(test_id)
|
45
|
+
assert_equal response[:display_name], 'Dimension2'
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_create
|
49
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
50
|
+
@dimension.create({})
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_update
|
55
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
56
|
+
@dimension.update('123', {})
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_delete
|
61
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
62
|
+
@dimension.destroy('123')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/dimension_value_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::DimensionValueTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@company_id = '123456'
|
9
|
+
@client = BusinessCentral::Client.new
|
10
|
+
@dimension_value = @client.dimension_value(
|
11
|
+
company_id: @company_id,
|
12
|
+
dimension_id: '123456'
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_find_all
|
17
|
+
stub_request(:get, /dimensionValues/)
|
18
|
+
.to_return(
|
19
|
+
status: 200,
|
20
|
+
body: {
|
21
|
+
'value': [
|
22
|
+
{
|
23
|
+
id: '123',
|
24
|
+
code: '456',
|
25
|
+
displayName: 'dimension value 1'
|
26
|
+
}
|
27
|
+
]
|
28
|
+
}.to_json
|
29
|
+
)
|
30
|
+
|
31
|
+
response = @dimension_value.find_all
|
32
|
+
assert_equal response.first[:display_name], 'dimension value 1'
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_find_by_id
|
36
|
+
test_id = '123'
|
37
|
+
stub_request(:get, /dimensionValues\(#{test_id}\)/)
|
38
|
+
.to_return(
|
39
|
+
status: 200,
|
40
|
+
body: {
|
41
|
+
id: '123',
|
42
|
+
code: '456',
|
43
|
+
displayName: 'dimension value 2'
|
44
|
+
}.to_json
|
45
|
+
)
|
46
|
+
|
47
|
+
response = @dimension_value.find_by_id(test_id)
|
48
|
+
assert_equal response[:display_name], 'dimension value 2'
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_create
|
52
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
53
|
+
@dimension_value.create({})
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_update
|
58
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
59
|
+
@dimension_value.update('123', {})
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_delete
|
64
|
+
assert_raises BusinessCentral::NoSupportedMethod do
|
65
|
+
@dimension_value.destroy('123')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/employee_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::EmployeeTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@company_id = '123456'
|
9
|
+
@client = BusinessCentral::Client.new
|
10
|
+
@employee = @client.employee(company_id: @company_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_find_all
|
14
|
+
stub_request(:get, %r{/employees})
|
15
|
+
.to_return(
|
16
|
+
status: 200,
|
17
|
+
body: {
|
18
|
+
'value': [
|
19
|
+
{
|
20
|
+
displayName: 'employee1'
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}.to_json
|
24
|
+
)
|
25
|
+
|
26
|
+
response = @employee.find_all
|
27
|
+
assert_equal response.first[:display_name], 'employee1'
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_find_by_id
|
31
|
+
test_id = '09876'
|
32
|
+
stub_request(:get, /employees\(#{test_id}\)/)
|
33
|
+
.to_return(
|
34
|
+
status: 200,
|
35
|
+
body: {
|
36
|
+
id: test_id,
|
37
|
+
displayName: 'employee2'
|
38
|
+
}.to_json
|
39
|
+
)
|
40
|
+
|
41
|
+
response = @employee.find_by_id(test_id)
|
42
|
+
assert_equal response[:display_name], 'employee2'
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_where
|
46
|
+
test_filter = "displayName eq 'employee3'"
|
47
|
+
stub_request(:get, /employees\?\$filter=#{test_filter}/)
|
48
|
+
.to_return(
|
49
|
+
status: 200,
|
50
|
+
body: {
|
51
|
+
'value': [
|
52
|
+
{
|
53
|
+
displayName: 'employee3'
|
54
|
+
}
|
55
|
+
]
|
56
|
+
}.to_json
|
57
|
+
)
|
58
|
+
|
59
|
+
response = @employee.where(test_filter)
|
60
|
+
assert_equal response.first[:display_name], 'employee3'
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_create
|
64
|
+
stub_request(:post, /employees/)
|
65
|
+
.to_return(
|
66
|
+
status: 200,
|
67
|
+
body: {
|
68
|
+
displayName: 'employee4'
|
69
|
+
}.to_json
|
70
|
+
)
|
71
|
+
|
72
|
+
response = @employee.create(
|
73
|
+
display_name: 'employee4'
|
74
|
+
)
|
75
|
+
assert_equal response[:display_name], 'employee4'
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_update
|
79
|
+
test_id = '011123'
|
80
|
+
stub_request(:get, /employees\(#{test_id}\)/)
|
81
|
+
.to_return(
|
82
|
+
status: 200,
|
83
|
+
body: {
|
84
|
+
etag: '112',
|
85
|
+
id: test_id,
|
86
|
+
displayName: 'employee5'
|
87
|
+
}.to_json
|
88
|
+
)
|
89
|
+
|
90
|
+
stub_request(:patch, /employees\(#{test_id}\)/)
|
91
|
+
.to_return(
|
92
|
+
status: 200,
|
93
|
+
body: {
|
94
|
+
etag: '112',
|
95
|
+
id: test_id,
|
96
|
+
displayName: 'employee6'
|
97
|
+
}.to_json
|
98
|
+
)
|
99
|
+
|
100
|
+
response = @employee.update(
|
101
|
+
test_id,
|
102
|
+
display_name: 'employee6'
|
103
|
+
)
|
104
|
+
assert_equal response[:display_name], 'employee6'
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_delete
|
108
|
+
test_id = '0111245'
|
109
|
+
stub_request(:get, /employees\(#{test_id}\)/)
|
110
|
+
.to_return(
|
111
|
+
status: 200,
|
112
|
+
body: {
|
113
|
+
etag: '113',
|
114
|
+
displayName: 'employee7'
|
115
|
+
}.to_json
|
116
|
+
)
|
117
|
+
|
118
|
+
stub_request(:delete, /employees\(#{test_id}\)/)
|
119
|
+
.to_return(status: 204)
|
120
|
+
|
121
|
+
assert @employee.destroy(test_id)
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_default_dimension_navigation
|
125
|
+
stub_request(:get, /defaultDimensions/)
|
126
|
+
.to_return(
|
127
|
+
status: 200,
|
128
|
+
body: {
|
129
|
+
'value': [
|
130
|
+
{
|
131
|
+
id: 1,
|
132
|
+
parentId: '123',
|
133
|
+
}
|
134
|
+
]
|
135
|
+
}.to_json
|
136
|
+
)
|
137
|
+
|
138
|
+
response = @client.employee(company_id: @company_id, id: '123').default_dimension.find_all
|
139
|
+
assert_equal response.first[:parent_id], '123'
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/filter_query_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::FilterQueryTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@filter_query = BusinessCentral::Object::FilterQuery
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_no_template_values
|
12
|
+
test_filter = "displayName eq 'name'"
|
13
|
+
filter = @filter_query.sanitize(test_filter)
|
14
|
+
assert_equal filter, CGI.escape(test_filter)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_template_filter_value
|
18
|
+
filter = @filter_query.sanitize("displayName eq '?'", ['name'])
|
19
|
+
assert_equal filter, CGI.escape("displayName eq 'name'")
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_multiple_template_filter_value
|
23
|
+
filter = @filter_query.sanitize("displayName eq '?' and '?'", %w[name hello])
|
24
|
+
assert_equal filter, CGI.escape("displayName eq 'name' and 'hello'")
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_template_filter_with_single_quote
|
28
|
+
filter = @filter_query.sanitize("displayName eq '?'", ["It's a hard knock life"])
|
29
|
+
assert_equal filter, CGI.escape("displayName eq 'It''s a hard knock life'")
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_invalid_values_provided_for_templates_defined
|
33
|
+
filter = @filter_query.sanitize("displayName eq '?' and ?", ['test1'])
|
34
|
+
assert_equal filter, CGI.escape("displayName eq 'test1' and ")
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/item_category_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::ItemCategoryTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@company_id = '123456'
|
9
|
+
@client = BusinessCentral::Client.new
|
10
|
+
@item_category = @client.item_category(company_id: @company_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_find_all
|
14
|
+
stub_request(:get, /itemCategories/)
|
15
|
+
.to_return(
|
16
|
+
status: 200,
|
17
|
+
body: {
|
18
|
+
'value': [
|
19
|
+
{
|
20
|
+
code: '123',
|
21
|
+
displayName: 'item_category1'
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}.to_json
|
25
|
+
)
|
26
|
+
|
27
|
+
response = @item_category.find_all
|
28
|
+
assert_equal response.first[:display_name], 'item_category1'
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_find_by_id
|
32
|
+
test_item_category_id = '345'
|
33
|
+
stub_request(:get, /itemCategories\(#{test_item_category_id}\)/)
|
34
|
+
.to_return(
|
35
|
+
status: 200,
|
36
|
+
body: {
|
37
|
+
id: test_item_category_id,
|
38
|
+
displayName: 'item_category2'
|
39
|
+
}.to_json
|
40
|
+
)
|
41
|
+
|
42
|
+
response = @item_category.find_by_id(test_item_category_id)
|
43
|
+
assert_equal response[:display_name], 'item_category2'
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_where
|
47
|
+
test_filter = "displayName eq 'item_category3'"
|
48
|
+
stub_request(:get, /itemCategories\?\$filter=#{test_filter}/)
|
49
|
+
.to_return(
|
50
|
+
status: 200,
|
51
|
+
body: {
|
52
|
+
'value': [
|
53
|
+
{
|
54
|
+
code: '678',
|
55
|
+
displayName: 'item_category3'
|
56
|
+
}
|
57
|
+
]
|
58
|
+
}.to_json
|
59
|
+
)
|
60
|
+
|
61
|
+
response = @item_category.where(test_filter)
|
62
|
+
assert_equal response.first[:display_name], 'item_category3'
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_create
|
66
|
+
stub_request(:post, /itemCategories/)
|
67
|
+
.to_return(
|
68
|
+
status: 200,
|
69
|
+
body: {
|
70
|
+
displayName: 'item_category4'
|
71
|
+
}.to_json
|
72
|
+
)
|
73
|
+
|
74
|
+
response = @item_category.create(
|
75
|
+
display_name: 'item_category4'
|
76
|
+
)
|
77
|
+
assert_equal response[:display_name], 'item_category4'
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_update
|
81
|
+
test_item_category_id = '011123'
|
82
|
+
stub_request(:get, /itemCategories\(#{test_item_category_id}\)/)
|
83
|
+
.to_return(
|
84
|
+
status: 200,
|
85
|
+
body: {
|
86
|
+
etag: '112',
|
87
|
+
displayName: 'item_category5'
|
88
|
+
}.to_json
|
89
|
+
)
|
90
|
+
|
91
|
+
stub_request(:patch, /itemCategories\(#{test_item_category_id}\)/)
|
92
|
+
.to_return(
|
93
|
+
status: 200,
|
94
|
+
body: {
|
95
|
+
displayName: 'item_category6'
|
96
|
+
}.to_json
|
97
|
+
)
|
98
|
+
|
99
|
+
response = @item_category.update(
|
100
|
+
test_item_category_id,
|
101
|
+
display_name: 'item_category6'
|
102
|
+
)
|
103
|
+
assert_equal response[:display_name], 'item_category6'
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_delete
|
107
|
+
test_item_category_id = '0111245'
|
108
|
+
stub_request(:get, /itemCategories\(#{test_item_category_id}\)/)
|
109
|
+
.to_return(
|
110
|
+
status: 200,
|
111
|
+
body: {
|
112
|
+
etag: '113',
|
113
|
+
displayName: 'item_category7'
|
114
|
+
}.to_json
|
115
|
+
)
|
116
|
+
|
117
|
+
stub_request(:delete, /itemCategories\(#{test_item_category_id}\)/)
|
118
|
+
.to_return(status: 204)
|
119
|
+
|
120
|
+
assert @item_category.destroy(test_item_category_id)
|
121
|
+
end
|
122
|
+
end
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
2
4
|
# rake test TEST=test/business_central/object/item_test.rb
|
3
5
|
|
4
6
|
class BusinessCentral::Object::ItemTest < Minitest::Test
|
@@ -11,14 +13,14 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
11
13
|
def test_find_all
|
12
14
|
stub_request(:get, /items/)
|
13
15
|
.to_return(
|
14
|
-
status: 200,
|
16
|
+
status: 200,
|
15
17
|
body: {
|
16
18
|
'value': [
|
17
19
|
{
|
18
20
|
displayName: 'item1'
|
19
21
|
}
|
20
22
|
]
|
21
|
-
}.to_json
|
23
|
+
}.to_json
|
22
24
|
)
|
23
25
|
|
24
26
|
response = @item.find_all
|
@@ -29,7 +31,7 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
29
31
|
test_item_id = '09876'
|
30
32
|
stub_request(:get, /items\(#{test_item_id}\)/)
|
31
33
|
.to_return(
|
32
|
-
status: 200,
|
34
|
+
status: 200,
|
33
35
|
body: {
|
34
36
|
displayName: 'item2'
|
35
37
|
}.to_json
|
@@ -43,7 +45,7 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
43
45
|
test_filter = "displayName eq 'item3'"
|
44
46
|
stub_request(:get, /items\?\$filter=#{test_filter}/)
|
45
47
|
.to_return(
|
46
|
-
status: 200,
|
48
|
+
status: 200,
|
47
49
|
body: {
|
48
50
|
'value': [
|
49
51
|
{
|
@@ -60,25 +62,24 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
60
62
|
def test_create
|
61
63
|
stub_request(:post, /items/)
|
62
64
|
.to_return(
|
63
|
-
status: 200,
|
65
|
+
status: 200,
|
64
66
|
body: {
|
65
67
|
displayName: 'item4'
|
66
68
|
}.to_json
|
67
69
|
)
|
68
70
|
|
69
|
-
response = @item.create(
|
71
|
+
response = @item.create(
|
70
72
|
display_name: 'item4',
|
71
73
|
type: 'Inventory'
|
72
|
-
|
74
|
+
)
|
73
75
|
assert_equal response[:display_name], 'item4'
|
74
76
|
end
|
75
77
|
|
76
|
-
|
77
78
|
def test_update
|
78
79
|
test_item_id = '011123'
|
79
80
|
stub_request(:get, /items\(#{test_item_id}\)/)
|
80
81
|
.to_return(
|
81
|
-
status: 200,
|
82
|
+
status: 200,
|
82
83
|
body: {
|
83
84
|
etag: '112',
|
84
85
|
displayName: 'item5'
|
@@ -87,7 +88,7 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
87
88
|
|
88
89
|
stub_request(:patch, /items\(#{test_item_id}\)/)
|
89
90
|
.to_return(
|
90
|
-
status: 200,
|
91
|
+
status: 200,
|
91
92
|
body: {
|
92
93
|
displayName: 'item6'
|
93
94
|
}.to_json
|
@@ -95,10 +96,8 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
95
96
|
|
96
97
|
response = @item.update(
|
97
98
|
test_item_id,
|
98
|
-
|
99
|
-
|
100
|
-
type: 'Inventory'
|
101
|
-
}
|
99
|
+
display_name: 'item6',
|
100
|
+
type: 'Inventory'
|
102
101
|
)
|
103
102
|
assert_equal response[:display_name], 'item6'
|
104
103
|
end
|
@@ -107,7 +106,7 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
107
106
|
test_item_id = '0111245'
|
108
107
|
stub_request(:get, /items\(#{test_item_id}\)/)
|
109
108
|
.to_return(
|
110
|
-
status: 200,
|
109
|
+
status: 200,
|
111
110
|
body: {
|
112
111
|
etag: '113',
|
113
112
|
displayName: 'item7'
|
@@ -119,4 +118,4 @@ class BusinessCentral::Object::ItemTest < Minitest::Test
|
|
119
118
|
|
120
119
|
assert @item.destroy(test_item_id)
|
121
120
|
end
|
122
|
-
end
|
121
|
+
end
|