business-central 1.0.3 → 1.0.7

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +58 -15
  3. data/lib/business_central/client.rb +71 -41
  4. data/lib/business_central/exceptions.rb +19 -9
  5. data/lib/business_central/object/account.rb +4 -2
  6. data/lib/business_central/object/aged_account_payable.rb +4 -2
  7. data/lib/business_central/object/aged_account_receivable.rb +4 -2
  8. data/lib/business_central/object/argument_helper.rb +22 -0
  9. data/lib/business_central/object/attachment.rb +30 -0
  10. data/lib/business_central/object/balance_sheet.rb +4 -2
  11. data/lib/business_central/object/base.rb +90 -56
  12. data/lib/business_central/object/cash_flow_statement.rb +4 -2
  13. data/lib/business_central/object/company.rb +5 -3
  14. data/lib/business_central/object/company_information.rb +7 -5
  15. data/lib/business_central/object/country_region.rb +8 -6
  16. data/lib/business_central/object/currency.rb +8 -6
  17. data/lib/business_central/object/customer.rb +16 -9
  18. data/lib/business_central/object/customer_financial_detail.rb +3 -1
  19. data/lib/business_central/object/customer_payment.rb +8 -6
  20. data/lib/business_central/object/customer_payment_journal.rb +8 -6
  21. data/lib/business_central/object/customer_sale.rb +3 -1
  22. data/lib/business_central/object/default_dimension.rb +18 -21
  23. data/lib/business_central/object/dimension.rb +20 -0
  24. data/lib/business_central/object/dimension_line.rb +37 -0
  25. data/lib/business_central/object/dimension_value.rb +28 -0
  26. data/lib/business_central/object/employee.rb +21 -0
  27. data/lib/business_central/object/filter_query.rb +18 -0
  28. data/lib/business_central/object/general_ledger_entry.rb +13 -0
  29. data/lib/business_central/object/income_statement.rb +13 -0
  30. data/lib/business_central/object/irs1099_code.rb +16 -0
  31. data/lib/business_central/object/item.rb +17 -10
  32. data/lib/business_central/object/item_category.rb +16 -0
  33. data/lib/business_central/object/journal.rb +29 -0
  34. data/lib/business_central/object/journal_line.rb +48 -0
  35. data/lib/business_central/object/{helper.rb → object_helper.rb} +18 -10
  36. data/lib/business_central/object/payment_method.rb +16 -0
  37. data/lib/business_central/object/payment_term.rb +16 -0
  38. data/lib/business_central/object/picture.rb +53 -0
  39. data/lib/business_central/object/purchase_invoice.rb +8 -6
  40. data/lib/business_central/object/purchase_invoice_line.rb +10 -8
  41. data/lib/business_central/object/purchase_order.rb +16 -0
  42. data/lib/business_central/object/request.rb +60 -49
  43. data/lib/business_central/object/response.rb +31 -23
  44. data/lib/business_central/object/retained_earning_statement.rb +13 -0
  45. data/lib/business_central/object/sales_credit_memo.rb +20 -0
  46. data/lib/business_central/object/sales_credit_memo_line.rb +30 -0
  47. data/lib/business_central/object/sales_invoice.rb +62 -0
  48. data/lib/business_central/object/sales_invoice_line.rb +30 -0
  49. data/lib/business_central/object/sales_order.rb +20 -0
  50. data/lib/business_central/object/sales_order_line.rb +30 -0
  51. data/lib/business_central/object/sales_quote.rb +20 -0
  52. data/lib/business_central/object/sales_quote_line.rb +30 -0
  53. data/lib/business_central/object/shipment_method.rb +16 -0
  54. data/lib/business_central/object/subscription.rb +16 -0
  55. data/lib/business_central/object/tax_area.rb +16 -0
  56. data/lib/business_central/object/tax_group.rb +16 -0
  57. data/lib/business_central/object/time_registration_entry.rb +16 -0
  58. data/lib/business_central/object/trial_balance.rb +13 -0
  59. data/lib/business_central/object/units_of_measure.rb +16 -0
  60. data/lib/business_central/object/url_builder.rb +59 -0
  61. data/lib/business_central/object/url_helper.rb +44 -0
  62. data/lib/business_central/object/validation.rb +10 -7
  63. data/lib/business_central/object/vendor.rb +10 -7
  64. data/lib/business_central/object/vendor_purchase.rb +13 -0
  65. data/lib/business_central/version.rb +4 -2
  66. data/lib/business_central/web_service.rb +78 -0
  67. data/lib/business_central.rb +40 -2
  68. data/lib/core_ext/string.rb +18 -12
  69. data/test/business_central/client_test.rb +18 -11
  70. data/test/business_central/object/account_test.rb +6 -5
  71. data/test/business_central/object/aged_account_payable_test.rb +6 -5
  72. data/test/business_central/object/aged_account_receivable_test.rb +6 -5
  73. data/test/business_central/object/attachment_test.rb +117 -0
  74. data/test/business_central/object/balance_sheet_test.rb +6 -5
  75. data/test/business_central/object/base_test.rb +4 -2
  76. data/test/business_central/object/cash_flow_statement_test.rb +6 -5
  77. data/test/business_central/object/company_information_test.rb +9 -10
  78. data/test/business_central/object/company_test.rb +6 -5
  79. data/test/business_central/object/country_region_test.rb +16 -17
  80. data/test/business_central/object/currency_test.rb +17 -18
  81. data/test/business_central/object/customer_financial_detail_test.rb +8 -6
  82. data/test/business_central/object/customer_payment_journal_test.rb +14 -15
  83. data/test/business_central/object/customer_payment_test.rb +15 -16
  84. data/test/business_central/object/customer_sale_test.rb +8 -6
  85. data/test/business_central/object/customer_test.rb +59 -16
  86. data/test/business_central/object/default_dimension_test.rb +15 -16
  87. data/test/business_central/object/dimension_line_test.rb +165 -0
  88. data/test/business_central/object/dimension_test.rb +65 -0
  89. data/test/business_central/object/dimension_value_test.rb +68 -0
  90. data/test/business_central/object/employee_test.rb +141 -0
  91. data/test/business_central/object/filter_query_test.rb +36 -0
  92. data/test/business_central/object/general_ledger_entry_test.rb +82 -0
  93. data/test/business_central/object/income_statement_test.rb +82 -0
  94. data/test/business_central/object/irs1099_code_test.rb +124 -0
  95. data/test/business_central/object/item_category_test.rb +122 -0
  96. data/test/business_central/object/item_test.rb +16 -17
  97. data/test/business_central/object/journal_line_test.rb +152 -0
  98. data/test/business_central/object/journal_test.rb +144 -0
  99. data/test/business_central/object/payment_method_test.rb +134 -0
  100. data/test/business_central/object/payment_term_test.rb +134 -0
  101. data/test/business_central/object/picture_test.rb +74 -0
  102. data/test/business_central/object/purchase_invoice_line_test.rb +15 -15
  103. data/test/business_central/object/purchase_invoice_test.rb +15 -15
  104. data/test/business_central/object/request_test.rb +17 -9
  105. data/test/business_central/object/response_test.rb +14 -7
  106. data/test/business_central/object/retained_earning_statement_test.rb +52 -0
  107. data/test/business_central/object/sales_credit_memo_line_test.rb +134 -0
  108. data/test/business_central/object/sales_credit_memo_test.rb +146 -0
  109. data/test/business_central/object/sales_invoice_line_test.rb +164 -0
  110. data/test/business_central/object/sales_invoice_test.rb +156 -0
  111. data/test/business_central/object/sales_order_line_test.rb +134 -0
  112. data/test/business_central/object/sales_order_test.rb +146 -0
  113. data/test/business_central/object/sales_quote_line_test.rb +134 -0
  114. data/test/business_central/object/sales_quote_test.rb +146 -0
  115. data/test/business_central/object/shipment_method_test.rb +133 -0
  116. data/test/business_central/object/subscription_test.rb +126 -0
  117. data/test/business_central/object/tax_area_test.rb +126 -0
  118. data/test/business_central/object/tax_group_test.rb +126 -0
  119. data/test/business_central/object/time_registration_entry_test.rb +126 -0
  120. data/test/business_central/object/trial_balance_test.rb +82 -0
  121. data/test/business_central/object/units_of_measure_test.rb +126 -0
  122. data/test/business_central/object/validation_test.rb +5 -4
  123. data/test/business_central/object/vendor_purchase_test.rb +82 -0
  124. data/test/business_central/object/vendor_test.rb +16 -16
  125. data/test/business_central/web_service_test.rb +100 -0
  126. data/test/business_central_test.rb +3 -1
  127. data/test/test_helper.rb +12 -6
  128. metadata +153 -41
@@ -1,4 +1,6 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
  # rake test TEST=test/business_central/object/currency_test.rb
3
5
 
4
6
  class BusinessCentral::Object::CurrencyTest < Minitest::Test
@@ -11,7 +13,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
11
13
  def test_find_all
12
14
  stub_request(:get, /currencies/)
13
15
  .to_return(
14
- status: 200,
16
+ status: 200,
15
17
  body: {
16
18
  'value': [
17
19
  {
@@ -23,7 +25,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
23
25
  amountRoundingPrecision: 0.01
24
26
  }
25
27
  ]
26
- }.to_json,
28
+ }.to_json
27
29
  )
28
30
 
29
31
  response = @currency.find_all
@@ -34,7 +36,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
34
36
  test_id = '2'
35
37
  stub_request(:get, /currencies\(#{test_id}\)/)
36
38
  .to_return(
37
- status: 200,
39
+ status: 200,
38
40
  body: {
39
41
  id: test_id,
40
42
  code: 'C2',
@@ -53,7 +55,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
53
55
  test_filter = "displayName eq 'country3'"
54
56
  stub_request(:get, /currencies\?\$filter=#{test_filter}/)
55
57
  .to_return(
56
- status: 200,
58
+ status: 200,
57
59
  body: {
58
60
  'value': [
59
61
  {
@@ -75,7 +77,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
75
77
  def test_create
76
78
  stub_request(:post, /currencies/)
77
79
  .to_return(
78
- status: 200,
80
+ status: 200,
79
81
  body: {
80
82
  code: 'C4',
81
83
  displayName: 'currency4',
@@ -83,20 +85,19 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
83
85
  }.to_json
84
86
  )
85
87
 
86
- response = @currency.create({
88
+ response = @currency.create(
87
89
  code: 'C4',
88
90
  display_name: 'currency4',
89
91
  symbol: '$'
90
- })
92
+ )
91
93
  assert_equal response[:display_name], 'currency4'
92
94
  end
93
95
 
94
-
95
96
  def test_update
96
97
  test_id = '2'
97
98
  stub_request(:get, /currencies\(#{test_id}\)/)
98
99
  .to_return(
99
- status: 200,
100
+ status: 200,
100
101
  body: {
101
102
  etag: '3333',
102
103
  id: test_id,
@@ -110,7 +111,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
110
111
 
111
112
  stub_request(:patch, /currencies\(#{test_id}\)/)
112
113
  .to_return(
113
- status: 200,
114
+ status: 200,
114
115
  body: {
115
116
  etag: '4444',
116
117
  code: 'C6',
@@ -121,11 +122,9 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
121
122
 
122
123
  response = @currency.update(
123
124
  test_id,
124
- {
125
- code: 'C6',
126
- display_name: 'currency6',
127
- symbol: '$'
128
- }
125
+ code: 'C6',
126
+ display_name: 'currency6',
127
+ symbol: '$'
129
128
  )
130
129
  assert_equal response[:display_name], 'currency6'
131
130
  end
@@ -134,7 +133,7 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
134
133
  test_id = '33333'
135
134
  stub_request(:get, /currencies\(#{test_id}\)/)
136
135
  .to_return(
137
- status: 200,
136
+ status: 200,
138
137
  body: {
139
138
  etag: '5555',
140
139
  code: 'C7',
@@ -148,4 +147,4 @@ class BusinessCentral::Object::CurrencyTest < Minitest::Test
148
147
 
149
148
  assert @currency.destroy(test_id)
150
149
  end
151
- end
150
+ end
@@ -1,4 +1,6 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
  # rake test TEST=test/business_central/object/customer_financial_detail_test.rb
3
5
 
4
6
  class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
@@ -13,7 +15,7 @@ class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
13
15
  def test_find_all
14
16
  stub_request(:get, /customerFinancialDetails/)
15
17
  .to_return(
16
- status: 200,
18
+ status: 200,
17
19
  body: {
18
20
  'value': [
19
21
  {
@@ -22,7 +24,7 @@ class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
22
24
  balance: 0
23
25
  }
24
26
  ]
25
- }.to_json,
27
+ }.to_json
26
28
  )
27
29
 
28
30
  response = @customer_financial_detail.find_all
@@ -33,7 +35,7 @@ class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
33
35
  test_id = '2'
34
36
  stub_request(:get, /customerFinancialDetails\(#{test_id}\)/)
35
37
  .to_return(
36
- status: 200,
38
+ status: 200,
37
39
  body: {
38
40
  id: test_id,
39
41
  number: 'N2',
@@ -49,7 +51,7 @@ class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
49
51
  test_filter = "number eq 'N3'"
50
52
  stub_request(:get, /customerFinancialDetails\?\$filter=#{test_filter}/)
51
53
  .to_return(
52
- status: 200,
54
+ status: 200,
53
55
  body: {
54
56
  'value': [
55
57
  {
@@ -63,4 +65,4 @@ class BusinessCentral::Object::CustomerFinancialDetailTest < Minitest::Test
63
65
  response = @customer_financial_detail.where(test_filter)
64
66
  assert_equal response.first[:number], 'N3'
65
67
  end
66
- end
68
+ end
@@ -1,4 +1,6 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
  # rake test TEST=test/business_central/object/customer_payment_journal_test.rb
3
5
 
4
6
  class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
@@ -11,7 +13,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
11
13
  def test_find_all
12
14
  stub_request(:get, /customerPaymentJournals/)
13
15
  .to_return(
14
- status: 200,
16
+ status: 200,
15
17
  body: {
16
18
  'value': [
17
19
  {
@@ -20,7 +22,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
20
22
  displayName: 'GENERAL 1'
21
23
  }
22
24
  ]
23
- }.to_json,
25
+ }.to_json
24
26
  )
25
27
 
26
28
  response = @customer_payment_journal.find_all
@@ -31,7 +33,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
31
33
  test_id = 2
32
34
  stub_request(:get, /customerPaymentJournals\(#{test_id}\)/)
33
35
  .to_return(
34
- status: 200,
36
+ status: 200,
35
37
  body: {
36
38
  id: test_id,
37
39
  code: 'GENERAL',
@@ -66,7 +68,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
66
68
  def test_create
67
69
  stub_request(:post, /customerPaymentJournals/)
68
70
  .to_return(
69
- status: 200,
71
+ status: 200,
70
72
  body: {
71
73
  id: 1,
72
74
  code: 'GENERAL',
@@ -74,18 +76,17 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
74
76
  }.to_json
75
77
  )
76
78
 
77
- response = @customer_payment_journal.create({
79
+ response = @customer_payment_journal.create(
78
80
  display_name: 'GENERAL 4'
79
- })
81
+ )
80
82
  assert_equal response[:display_name], 'GENERAL 4'
81
83
  end
82
84
 
83
-
84
85
  def test_update
85
86
  test_id = 2
86
87
  stub_request(:get, /customerPaymentJournals\(#{test_id}\)/)
87
88
  .to_return(
88
- status: 200,
89
+ status: 200,
89
90
  body: {
90
91
  etag: '3333',
91
92
  id: test_id,
@@ -96,7 +97,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
96
97
 
97
98
  stub_request(:patch, /customerPaymentJournals\(#{test_id}\)/)
98
99
  .to_return(
99
- status: 200,
100
+ status: 200,
100
101
  body: {
101
102
  etag: '4444',
102
103
  id: test_id,
@@ -107,9 +108,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
107
108
 
108
109
  response = @customer_payment_journal.update(
109
110
  test_id,
110
- {
111
- display_name: 'GENERAL 5'
112
- }
111
+ display_name: 'GENERAL 5'
113
112
  )
114
113
  assert_equal response[:display_name], 'GENERAL 5'
115
114
  end
@@ -118,7 +117,7 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
118
117
  test_id = '33333'
119
118
  stub_request(:get, /customerPaymentJournals\(#{test_id}\)/)
120
119
  .to_return(
121
- status: 200,
120
+ status: 200,
122
121
  body: {
123
122
  etag: '5555',
124
123
  id: test_id,
@@ -132,4 +131,4 @@ class BusinessCentral::Object::CustomerPaymentJournalTest < Minitest::Test
132
131
 
133
132
  assert @customer_payment_journal.destroy(test_id)
134
133
  end
135
- end
134
+ end
@@ -1,4 +1,6 @@
1
- require "test_helper"
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
- require "test_helper"
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
- require "test_helper"
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,48 @@ class BusinessCentral::Object::CustomerTest < Minitest::Test
122
121
 
123
122
  assert @customer.destroy(test_id)
124
123
  end
125
- end
124
+
125
+ def test_default_dimension_navigation
126
+ stub_request(:get, %r{customers\(\d+\)\/defaultDimensions})
127
+ .to_return(
128
+ status: 200,
129
+ body: {
130
+ 'value': [
131
+ {
132
+ id: 1,
133
+ parentId: '123',
134
+ dimensionId: '123',
135
+ dimensionCode: 'ABC',
136
+ dimensionValueId: 1,
137
+ dimensionValueCode: 'DEF'
138
+ }
139
+ ]
140
+ }.to_json
141
+ )
142
+
143
+ response = @client.customer(company_id: @company_id, id: '123')
144
+ .default_dimension.find_all
145
+ assert_equal response.first[:parent_id], '123'
146
+ end
147
+
148
+ def test_picture_navigation
149
+ stub_request(:get, %r{customers\(\d+\)\/picture})
150
+ .to_return(
151
+ status: 200,
152
+ body: {
153
+ 'value': [
154
+ {
155
+ id: 1,
156
+ width: 500,
157
+ height: 496,
158
+ contentType: 'image\jpeg'
159
+ }
160
+ ]
161
+ }.to_json
162
+ )
163
+
164
+ response = @client.customer(company_id: @company_id, id: '123')
165
+ .picture.find_all
166
+ assert_equal response.first[:width], 500
167
+ end
168
+ end
@@ -1,4 +1,6 @@
1
- require "test_helper"
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