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
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
2
4
|
# rake test TEST=test/business_central/object/customer_payment_test.rb
|
3
5
|
|
4
6
|
class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
@@ -11,7 +13,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
11
13
|
def test_find_all
|
12
14
|
stub_request(:get, /customerPayments/)
|
13
15
|
.to_return(
|
14
|
-
status: 200,
|
16
|
+
status: 200,
|
15
17
|
body: {
|
16
18
|
'value': [
|
17
19
|
{
|
@@ -21,7 +23,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
21
23
|
customerNumber: '123'
|
22
24
|
}
|
23
25
|
]
|
24
|
-
}.to_json
|
26
|
+
}.to_json
|
25
27
|
)
|
26
28
|
|
27
29
|
response = @customer_payment.find_all
|
@@ -32,7 +34,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
32
34
|
test_id = '2'
|
33
35
|
stub_request(:get, /customerPayments\(#{test_id}\)/)
|
34
36
|
.to_return(
|
35
|
-
status: 200,
|
37
|
+
status: 200,
|
36
38
|
body: {
|
37
39
|
id: test_id,
|
38
40
|
lineNumber: 1,
|
@@ -49,7 +51,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
49
51
|
test_filter = "customerNumber eq '123'"
|
50
52
|
stub_request(:get, /customerPayments\?\$filter=#{test_filter}/)
|
51
53
|
.to_return(
|
52
|
-
status: 200,
|
54
|
+
status: 200,
|
53
55
|
body: {
|
54
56
|
'value': [
|
55
57
|
{
|
@@ -69,7 +71,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
69
71
|
def test_create
|
70
72
|
stub_request(:post, /customerPayments/)
|
71
73
|
.to_return(
|
72
|
-
status: 200,
|
74
|
+
status: 200,
|
73
75
|
body: {
|
74
76
|
id: 1,
|
75
77
|
lineNumber: 1,
|
@@ -78,18 +80,17 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
78
80
|
}.to_json
|
79
81
|
)
|
80
82
|
|
81
|
-
response = @customer_payment.create(
|
83
|
+
response = @customer_payment.create(
|
82
84
|
customer_number: '789'
|
83
|
-
|
85
|
+
)
|
84
86
|
assert_equal response[:customer_number], '789'
|
85
87
|
end
|
86
88
|
|
87
|
-
|
88
89
|
def test_update
|
89
90
|
test_id = '2'
|
90
91
|
stub_request(:get, /customerPayments\(#{test_id}\)/)
|
91
92
|
.to_return(
|
92
|
-
status: 200,
|
93
|
+
status: 200,
|
93
94
|
body: {
|
94
95
|
etag: '3333',
|
95
96
|
id: test_id,
|
@@ -101,7 +102,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
101
102
|
|
102
103
|
stub_request(:patch, /customerPayments\(#{test_id}\)/)
|
103
104
|
.to_return(
|
104
|
-
status: 200,
|
105
|
+
status: 200,
|
105
106
|
body: {
|
106
107
|
etag: '4444',
|
107
108
|
id: test_id,
|
@@ -113,9 +114,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
113
114
|
|
114
115
|
response = @customer_payment.update(
|
115
116
|
test_id,
|
116
|
-
|
117
|
-
customer_number: '1011'
|
118
|
-
}
|
117
|
+
customer_number: '1011'
|
119
118
|
)
|
120
119
|
assert_equal response[:customer_number], '1011'
|
121
120
|
end
|
@@ -124,7 +123,7 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
124
123
|
test_id = '33333'
|
125
124
|
stub_request(:get, /customerPayments\(#{test_id}\)/)
|
126
125
|
.to_return(
|
127
|
-
status: 200,
|
126
|
+
status: 200,
|
128
127
|
body: {
|
129
128
|
etag: '5555',
|
130
129
|
id: test_id,
|
@@ -139,4 +138,4 @@ class BusinessCentral::Object::CustomerPaymentTest < Minitest::Test
|
|
139
138
|
|
140
139
|
assert @customer_payment.destroy(test_id)
|
141
140
|
end
|
142
|
-
end
|
141
|
+
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/customer_sale_test.rb
|
3
5
|
|
4
6
|
class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
@@ -13,7 +15,7 @@ class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
|
13
15
|
def test_find_all
|
14
16
|
stub_request(:get, /customerSales/)
|
15
17
|
.to_return(
|
16
|
-
status: 200,
|
18
|
+
status: 200,
|
17
19
|
body: {
|
18
20
|
'value': [
|
19
21
|
{
|
@@ -23,7 +25,7 @@ class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
|
23
25
|
totalSalesAmount: 0
|
24
26
|
}
|
25
27
|
]
|
26
|
-
}.to_json
|
28
|
+
}.to_json
|
27
29
|
)
|
28
30
|
|
29
31
|
response = @customer_sale.find_all
|
@@ -34,7 +36,7 @@ class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
|
34
36
|
test_id = 2
|
35
37
|
stub_request(:get, /customerSales\(#{test_id}\)/)
|
36
38
|
.to_return(
|
37
|
-
status: 200,
|
39
|
+
status: 200,
|
38
40
|
body: {
|
39
41
|
customerId: 2,
|
40
42
|
customerNumber: 'C2',
|
@@ -51,7 +53,7 @@ class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
|
51
53
|
test_filter = "customerNumber eq 'C3'"
|
52
54
|
stub_request(:get, /customerSales\?\$filter=#{test_filter}/)
|
53
55
|
.to_return(
|
54
|
-
status: 200,
|
56
|
+
status: 200,
|
55
57
|
body: {
|
56
58
|
'value': [
|
57
59
|
{
|
@@ -67,4 +69,4 @@ class BusinessCentral::Object::CustomerSaleTest < Minitest::Test
|
|
67
69
|
response = @customer_sale.where(test_filter)
|
68
70
|
assert_equal response.first[:customer_number], 'C3'
|
69
71
|
end
|
70
|
-
end
|
72
|
+
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/customer_test.rb
|
3
5
|
|
4
6
|
class BusinessCentral::Object::CustomerTest < Minitest::Test
|
@@ -11,7 +13,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
11
13
|
def test_find_all
|
12
14
|
stub_request(:get, /customers/)
|
13
15
|
.to_return(
|
14
|
-
status: 200,
|
16
|
+
status: 200,
|
15
17
|
body: {
|
16
18
|
'value': [
|
17
19
|
{
|
@@ -19,7 +21,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
19
21
|
displayName: 'customer1'
|
20
22
|
}
|
21
23
|
]
|
22
|
-
}.to_json
|
24
|
+
}.to_json
|
23
25
|
)
|
24
26
|
|
25
27
|
response = @customer.find_all
|
@@ -30,7 +32,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
30
32
|
test_id = '2'
|
31
33
|
stub_request(:get, /customers\(#{test_id}\)/)
|
32
34
|
.to_return(
|
33
|
-
status: 200,
|
35
|
+
status: 200,
|
34
36
|
body: {
|
35
37
|
id: test_id,
|
36
38
|
displayName: 'customer2'
|
@@ -45,7 +47,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
45
47
|
test_filter = "displayName eq 'customer3'"
|
46
48
|
stub_request(:get, /customers\?\$filter=#{test_filter}/)
|
47
49
|
.to_return(
|
48
|
-
status: 200,
|
50
|
+
status: 200,
|
49
51
|
body: {
|
50
52
|
'value': [
|
51
53
|
{
|
@@ -63,24 +65,23 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
63
65
|
def test_create
|
64
66
|
stub_request(:post, /customers/)
|
65
67
|
.to_return(
|
66
|
-
status: 200,
|
68
|
+
status: 200,
|
67
69
|
body: {
|
68
70
|
displayName: 'customer4'
|
69
71
|
}.to_json
|
70
72
|
)
|
71
73
|
|
72
|
-
response = @customer.create(
|
74
|
+
response = @customer.create(
|
73
75
|
display_name: 'customer4'
|
74
|
-
|
76
|
+
)
|
75
77
|
assert_equal response[:display_name], 'customer4'
|
76
78
|
end
|
77
79
|
|
78
|
-
|
79
80
|
def test_update
|
80
81
|
test_id = '2'
|
81
82
|
stub_request(:get, /customers\(#{test_id}\)/)
|
82
83
|
.to_return(
|
83
|
-
status: 200,
|
84
|
+
status: 200,
|
84
85
|
body: {
|
85
86
|
etag: '3333',
|
86
87
|
id: test_id,
|
@@ -90,7 +91,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
90
91
|
|
91
92
|
stub_request(:patch, /customers\(#{test_id}\)/)
|
92
93
|
.to_return(
|
93
|
-
status: 200,
|
94
|
+
status: 200,
|
94
95
|
body: {
|
95
96
|
etag: '4444',
|
96
97
|
displayName: 'customer6'
|
@@ -99,9 +100,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
99
100
|
|
100
101
|
response = @customer.update(
|
101
102
|
test_id,
|
102
|
-
|
103
|
-
display_name: 'customer6'
|
104
|
-
}
|
103
|
+
display_name: 'customer6'
|
105
104
|
)
|
106
105
|
assert_equal response[:display_name], 'customer6'
|
107
106
|
end
|
@@ -110,7 +109,7 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
110
109
|
test_id = '33333'
|
111
110
|
stub_request(:get, /customers\(#{test_id}\)/)
|
112
111
|
.to_return(
|
113
|
-
status: 200,
|
112
|
+
status: 200,
|
114
113
|
body: {
|
115
114
|
etag: '5555',
|
116
115
|
displayName: 'customer7'
|
@@ -122,4 +121,4 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
|
|
122
121
|
|
123
122
|
assert @customer.destroy(test_id)
|
124
123
|
end
|
125
|
-
end
|
124
|
+
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/default_dimension_test.rb
|
3
5
|
|
4
6
|
class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
@@ -25,7 +27,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
25
27
|
def test_find_all
|
26
28
|
stub_request(:get, /defaultDimensions/)
|
27
29
|
.to_return(
|
28
|
-
status: 200,
|
30
|
+
status: 200,
|
29
31
|
body: {
|
30
32
|
'value': [
|
31
33
|
{
|
@@ -37,7 +39,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
37
39
|
dimensionValueCode: 'DEF'
|
38
40
|
}
|
39
41
|
]
|
40
|
-
}.to_json
|
42
|
+
}.to_json
|
41
43
|
)
|
42
44
|
|
43
45
|
response = @default_dimension.find_all
|
@@ -48,7 +50,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
48
50
|
test_id = '2'
|
49
51
|
stub_request(:get, /defaultDimensions\(#{test_id}\)/)
|
50
52
|
.to_return(
|
51
|
-
status: 200,
|
53
|
+
status: 200,
|
52
54
|
body: {
|
53
55
|
id: test_id,
|
54
56
|
parentId: '123',
|
@@ -67,7 +69,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
67
69
|
test_filter = "dimensionCode eq 'ABC'"
|
68
70
|
stub_request(:get, /defaultDimensions\?\$filter=#{test_filter}/)
|
69
71
|
.to_return(
|
70
|
-
status: 200,
|
72
|
+
status: 200,
|
71
73
|
body: {
|
72
74
|
'value': [
|
73
75
|
{
|
@@ -89,7 +91,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
89
91
|
def test_create
|
90
92
|
stub_request(:post, /defaultDimensions/)
|
91
93
|
.to_return(
|
92
|
-
status: 200,
|
94
|
+
status: 200,
|
93
95
|
body: {
|
94
96
|
id: 4,
|
95
97
|
parentId: '123',
|
@@ -100,19 +102,18 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
100
102
|
}.to_json
|
101
103
|
)
|
102
104
|
|
103
|
-
response = @default_dimension.create(
|
105
|
+
response = @default_dimension.create(
|
104
106
|
dimension_code: 'DEF',
|
105
107
|
dimension_value_code: 'GHI'
|
106
|
-
|
108
|
+
)
|
107
109
|
assert_equal response[:id], 4
|
108
110
|
end
|
109
111
|
|
110
|
-
|
111
112
|
def test_update
|
112
113
|
test_id = '2'
|
113
114
|
stub_request(:get, /defaultDimensions\(#{test_id}\)/)
|
114
115
|
.to_return(
|
115
|
-
status: 200,
|
116
|
+
status: 200,
|
116
117
|
body: {
|
117
118
|
etag: '3333',
|
118
119
|
id: test_id,
|
@@ -126,7 +127,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
126
127
|
|
127
128
|
stub_request(:patch, /defaultDimensions\(#{test_id}\)/)
|
128
129
|
.to_return(
|
129
|
-
status: 200,
|
130
|
+
status: 200,
|
130
131
|
body: {
|
131
132
|
etag: '4444',
|
132
133
|
id: test_id,
|
@@ -140,9 +141,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
140
141
|
|
141
142
|
response = @default_dimension.update(
|
142
143
|
test_id,
|
143
|
-
|
144
|
-
dimension_code: 'ZYX'
|
145
|
-
}
|
144
|
+
dimension_code: 'ZYX'
|
146
145
|
)
|
147
146
|
assert_equal response[:dimension_code], 'ZYX'
|
148
147
|
end
|
@@ -151,7 +150,7 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
151
150
|
test_id = '33333'
|
152
151
|
stub_request(:get, /defaultDimensions\(#{test_id}\)/)
|
153
152
|
.to_return(
|
154
|
-
status: 200,
|
153
|
+
status: 200,
|
155
154
|
body: {
|
156
155
|
etag: '5555',
|
157
156
|
id: test_id,
|
@@ -168,4 +167,4 @@ class BusinessCentral::Object::DefaultDimensionTest < Minitest::Test
|
|
168
167
|
|
169
168
|
assert @default_dimension.destroy(test_id)
|
170
169
|
end
|
171
|
-
end
|
170
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
# rake test TEST=test/business_central/object/dimension_line_test.rb
|
5
|
+
|
6
|
+
class BusinessCentral::Object::DimensionLineTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@company_id = '123456'
|
9
|
+
@client = BusinessCentral::Client.new
|
10
|
+
@dimension_line = @client.dimension_line(
|
11
|
+
company_id: @company_id
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_find_all
|
16
|
+
stub_request(:get, /dimensionLines/)
|
17
|
+
.to_return(
|
18
|
+
status: 200,
|
19
|
+
body: {
|
20
|
+
'value': [
|
21
|
+
{
|
22
|
+
parent_id: 1,
|
23
|
+
id: '123',
|
24
|
+
code: '456',
|
25
|
+
displayName: 'dimension line 1',
|
26
|
+
valueId: 1,
|
27
|
+
valueCode: 'ABC',
|
28
|
+
valueDisplayName: 'DEF'
|
29
|
+
}
|
30
|
+
]
|
31
|
+
}.to_json
|
32
|
+
)
|
33
|
+
|
34
|
+
response = @dimension_line.find_all
|
35
|
+
assert_equal response.first[:display_name], 'dimension line 1'
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_find_by_id
|
39
|
+
test_id = '2'
|
40
|
+
stub_request(:get, /dimensionLines\(#{test_id}\)/)
|
41
|
+
.to_return(
|
42
|
+
status: 200,
|
43
|
+
body: {
|
44
|
+
parent_id: 2,
|
45
|
+
id: test_id,
|
46
|
+
code: '789',
|
47
|
+
displayName: 'dimension line 2',
|
48
|
+
valueId: 2,
|
49
|
+
valueCode: 'DEF',
|
50
|
+
valueDisplayName: 'GHI'
|
51
|
+
}.to_json
|
52
|
+
)
|
53
|
+
|
54
|
+
response = @dimension_line.find_by_id(test_id)
|
55
|
+
assert_equal response[:display_name], 'dimension line 2'
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_where
|
59
|
+
test_filter = "displayName eq 'dimension line 3'"
|
60
|
+
stub_request(:get, /dimensionLines\?\$filter=#{test_filter}/)
|
61
|
+
.to_return(
|
62
|
+
status: 200,
|
63
|
+
body: {
|
64
|
+
'value': [
|
65
|
+
{
|
66
|
+
parent_id: 3,
|
67
|
+
id: '456',
|
68
|
+
code: '789',
|
69
|
+
displayName: 'dimension line 3',
|
70
|
+
valueId: 3,
|
71
|
+
valueCode: 'GHI',
|
72
|
+
valueDisplayName: 'JKL'
|
73
|
+
}
|
74
|
+
]
|
75
|
+
}.to_json
|
76
|
+
)
|
77
|
+
|
78
|
+
response = @dimension_line.where(test_filter)
|
79
|
+
assert_equal response.first[:display_name], 'dimension line 3'
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_create
|
83
|
+
stub_request(:post, /dimensionLines/)
|
84
|
+
.to_return(
|
85
|
+
status: 200,
|
86
|
+
body: {
|
87
|
+
parent_id: 4,
|
88
|
+
code: '1011',
|
89
|
+
displayName: 'dimension line 4',
|
90
|
+
valueId: 4,
|
91
|
+
valueCode: 'MNO',
|
92
|
+
valueDisplayName: 'PQR'
|
93
|
+
}.to_json
|
94
|
+
)
|
95
|
+
|
96
|
+
response = @dimension_line.create(
|
97
|
+
parent_id: 4,
|
98
|
+
value_id: 4
|
99
|
+
)
|
100
|
+
assert_equal response[:parent_id], 4
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_update
|
104
|
+
test_id = '2'
|
105
|
+
stub_request(:get, /dimensionLines\(#{test_id}\)/)
|
106
|
+
.to_return(
|
107
|
+
status: 200,
|
108
|
+
body: {
|
109
|
+
etag: '1111',
|
110
|
+
parent_id: 5,
|
111
|
+
id: 5,
|
112
|
+
code: '1011',
|
113
|
+
displayName: 'dimension line 4',
|
114
|
+
valueId: 4,
|
115
|
+
valueCode: 'MNO',
|
116
|
+
valueDisplayName: 'PQR'
|
117
|
+
}.to_json
|
118
|
+
)
|
119
|
+
|
120
|
+
stub_request(:patch, /dimensionLines\(#{test_id}\)/)
|
121
|
+
.to_return(
|
122
|
+
status: 200,
|
123
|
+
body: {
|
124
|
+
etag: '2222',
|
125
|
+
parent_id: 5,
|
126
|
+
id: 5,
|
127
|
+
code: '1011',
|
128
|
+
displayName: 'dimension line 5',
|
129
|
+
valueId: 5,
|
130
|
+
valueCode: 'MNO',
|
131
|
+
valueDisplayName: 'PQR'
|
132
|
+
}.to_json
|
133
|
+
)
|
134
|
+
|
135
|
+
response = @dimension_line.update(
|
136
|
+
test_id,
|
137
|
+
display_name: 'dimension line 5',
|
138
|
+
value_id: 5
|
139
|
+
)
|
140
|
+
assert_equal response[:display_name], 'dimension line 5'
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_delete
|
144
|
+
test_id = '33333'
|
145
|
+
stub_request(:get, /dimensionLines\(#{test_id}\)/)
|
146
|
+
.to_return(
|
147
|
+
status: 200,
|
148
|
+
body: {
|
149
|
+
etag: '5555',
|
150
|
+
parent_id: 6,
|
151
|
+
id: '33333',
|
152
|
+
code: '1011',
|
153
|
+
displayName: 'dimension line 6',
|
154
|
+
valueId: 6,
|
155
|
+
valueCode: 'MNO',
|
156
|
+
valueDisplayName: 'PQR'
|
157
|
+
}.to_json
|
158
|
+
)
|
159
|
+
|
160
|
+
stub_request(:delete, /dimensionLines\(#{test_id}\)/)
|
161
|
+
.to_return(status: 204)
|
162
|
+
|
163
|
+
assert @dimension_line.destroy(test_id)
|
164
|
+
end
|
165
|
+
end
|