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
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/payment_method_test.rb
5
+
6
+ class BusinessCentral::Object::PaymentMethodTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @payment_method = @client.payment_method(company_id: @company_id)
11
+ end
12
+
13
+ def test_find_all
14
+ stub_request(:get, /paymentMethods/)
15
+ .to_return(
16
+ status: 200,
17
+ body: {
18
+ 'value': [
19
+ {
20
+ id: 1,
21
+ code: 'PM1',
22
+ displayName: 'paymentMethod1'
23
+ }
24
+ ]
25
+ }.to_json
26
+ )
27
+
28
+ response = @payment_method.find_all
29
+ assert_equal response.first[:display_name], 'paymentMethod1'
30
+ end
31
+
32
+ def test_find_by_id
33
+ test_id = '09876'
34
+ stub_request(:get, /paymentMethods\(#{test_id}\)/)
35
+ .to_return(
36
+ status: 200,
37
+ body: {
38
+ id: test_id,
39
+ code: 'PM2',
40
+ displayName: 'paymentMethod2'
41
+ }.to_json
42
+ )
43
+
44
+ response = @payment_method.find_by_id(test_id)
45
+ assert_equal response[:display_name], 'paymentMethod2'
46
+ end
47
+
48
+ def test_where
49
+ test_filter = "displayName eq 'paymentMethod3'"
50
+ stub_request(:get, /paymentMethods\?\$filter=#{test_filter}/)
51
+ .to_return(
52
+ status: 200,
53
+ body: {
54
+ 'value': [
55
+ {
56
+ id: 3,
57
+ code: 'PM3',
58
+ displayName: 'paymentMethod3'
59
+ }
60
+ ]
61
+ }.to_json
62
+ )
63
+
64
+ response = @payment_method.where(test_filter)
65
+ assert_equal response.first[:display_name], 'paymentMethod3'
66
+ end
67
+
68
+ def test_create
69
+ stub_request(:post, /paymentMethods/)
70
+ .to_return(
71
+ status: 200,
72
+ body: {
73
+ id: 4,
74
+ code: 'PM4',
75
+ displayName: 'paymentMethod4'
76
+ }.to_json
77
+ )
78
+
79
+ response = @payment_method.create(
80
+ code: 'PM4',
81
+ display_name: 'paymentMethod4'
82
+ )
83
+ assert_equal response[:display_name], 'paymentMethod4'
84
+ end
85
+
86
+ def test_update
87
+ test_id = '011123'
88
+ stub_request(:get, /paymentMethods\(#{test_id}\)/)
89
+ .to_return(
90
+ status: 200,
91
+ body: {
92
+ etag: '112',
93
+ id: test_id,
94
+ code: 'PM5',
95
+ displayName: 'paymentMethod5'
96
+ }.to_json
97
+ )
98
+
99
+ stub_request(:patch, /paymentMethods\(#{test_id}\)/)
100
+ .to_return(
101
+ status: 200,
102
+ body: {
103
+ id: test_id,
104
+ code: 'PM6',
105
+ displayName: 'paymentMethod6'
106
+ }.to_json
107
+ )
108
+
109
+ response = @payment_method.update(
110
+ test_id,
111
+ code: 'PM6',
112
+ display_name: 'paymentMethod6'
113
+ )
114
+ assert_equal response[:display_name], 'paymentMethod6'
115
+ end
116
+
117
+ def test_delete
118
+ test_id = '0111245'
119
+ stub_request(:get, /paymentMethods\(#{test_id}\)/)
120
+ .to_return(
121
+ status: 200,
122
+ body: {
123
+ etag: '113',
124
+ code: 'PM7',
125
+ displayName: 'paymentMethod7'
126
+ }.to_json
127
+ )
128
+
129
+ stub_request(:delete, /paymentMethods\(#{test_id}\)/)
130
+ .to_return(status: 204)
131
+
132
+ assert @payment_method.destroy(test_id)
133
+ end
134
+ end
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/payment_term_test.rb
5
+
6
+ class BusinessCentral::Object::PaymentTermTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @payment_term = @client.payment_term(company_id: @company_id)
11
+ end
12
+
13
+ def test_find_all
14
+ stub_request(:get, /paymentTerms/)
15
+ .to_return(
16
+ status: 200,
17
+ body: {
18
+ 'value': [
19
+ {
20
+ id: 1,
21
+ code: 'PM1',
22
+ displayName: 'paymentTerm1'
23
+ }
24
+ ]
25
+ }.to_json
26
+ )
27
+
28
+ response = @payment_term.find_all
29
+ assert_equal response.first[:display_name], 'paymentTerm1'
30
+ end
31
+
32
+ def test_find_by_id
33
+ test_id = '09876'
34
+ stub_request(:get, /paymentTerms\(#{test_id}\)/)
35
+ .to_return(
36
+ status: 200,
37
+ body: {
38
+ id: test_id,
39
+ code: 'PM2',
40
+ displayName: 'paymentTerm2'
41
+ }.to_json
42
+ )
43
+
44
+ response = @payment_term.find_by_id(test_id)
45
+ assert_equal response[:display_name], 'paymentTerm2'
46
+ end
47
+
48
+ def test_where
49
+ test_filter = "displayName eq 'paymentTerm3'"
50
+ stub_request(:get, /paymentTerms\?\$filter=#{test_filter}/)
51
+ .to_return(
52
+ status: 200,
53
+ body: {
54
+ 'value': [
55
+ {
56
+ id: 3,
57
+ code: 'PM3',
58
+ displayName: 'paymentTerm3'
59
+ }
60
+ ]
61
+ }.to_json
62
+ )
63
+
64
+ response = @payment_term.where(test_filter)
65
+ assert_equal response.first[:display_name], 'paymentTerm3'
66
+ end
67
+
68
+ def test_create
69
+ stub_request(:post, /paymentTerms/)
70
+ .to_return(
71
+ status: 200,
72
+ body: {
73
+ id: 4,
74
+ code: 'PM4',
75
+ displayName: 'paymentTerm4'
76
+ }.to_json
77
+ )
78
+
79
+ response = @payment_term.create(
80
+ code: 'PM4',
81
+ display_name: 'paymentTerm4'
82
+ )
83
+ assert_equal response[:display_name], 'paymentTerm4'
84
+ end
85
+
86
+ def test_update
87
+ test_id = '011123'
88
+ stub_request(:get, /paymentTerms\(#{test_id}\)/)
89
+ .to_return(
90
+ status: 200,
91
+ body: {
92
+ etag: '112',
93
+ id: test_id,
94
+ code: 'PM5',
95
+ displayName: 'paymentTerm5'
96
+ }.to_json
97
+ )
98
+
99
+ stub_request(:patch, /paymentTerms\(#{test_id}\)/)
100
+ .to_return(
101
+ status: 200,
102
+ body: {
103
+ id: test_id,
104
+ code: 'PM6',
105
+ displayName: 'paymentTerm6'
106
+ }.to_json
107
+ )
108
+
109
+ response = @payment_term.update(
110
+ test_id,
111
+ code: 'PM6',
112
+ display_name: 'paymentTerm6'
113
+ )
114
+ assert_equal response[:display_name], 'paymentTerm6'
115
+ end
116
+
117
+ def test_delete
118
+ test_id = '0111245'
119
+ stub_request(:get, /paymentTerms\(#{test_id}\)/)
120
+ .to_return(
121
+ status: 200,
122
+ body: {
123
+ etag: '113',
124
+ code: 'PM7',
125
+ displayName: 'paymentTerm6'
126
+ }.to_json
127
+ )
128
+
129
+ stub_request(:delete, /paymentTerms\(#{test_id}\)/)
130
+ .to_return(status: 204)
131
+
132
+ assert @payment_term.destroy(test_id)
133
+ end
134
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/picture_test.rb
5
+
6
+ class BusinessCentral::Object::PictureTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @picture = @client.picture(parent: 'vendors', parent_id: '123', company_id: @company_id)
11
+ end
12
+
13
+ def test_find_all
14
+ stub_request(:get, /picture/)
15
+ .to_return(
16
+ status: 200,
17
+ body: {
18
+ 'value': [
19
+ {
20
+ id: 112,
21
+ width: 500,
22
+ height: 496,
23
+ contentType: 'image\jpeg'
24
+ }
25
+ ]
26
+ }.to_json
27
+ )
28
+
29
+ response = @picture.find_all
30
+ assert_equal response.first[:content_type], 'image\jpeg'
31
+ end
32
+
33
+ def test_create
34
+ stub_request(:patch, /picture/)
35
+ .to_return(status: 204)
36
+
37
+ response = @picture.create('ImageData')
38
+ assert response
39
+ end
40
+
41
+ def test_update
42
+ stub_request(:get, /picture/)
43
+ .to_return(
44
+ status: 200,
45
+ body: {
46
+ etag: '112',
47
+ contentType: 'image\jpeg'
48
+ }.to_json
49
+ )
50
+
51
+ stub_request(:patch, /picture/)
52
+ .to_return(status: 204)
53
+
54
+ response = @picture.update('ImageData')
55
+ assert response
56
+ end
57
+
58
+ def test_delete
59
+ test_id = 2
60
+ stub_request(:get, /picture/)
61
+ .to_return(
62
+ status: 200,
63
+ body: {
64
+ etag: '113',
65
+ contentType: 'image\jpeg'
66
+ }.to_json
67
+ )
68
+
69
+ stub_request(:delete, /picture/)
70
+ .to_return(status: 204)
71
+
72
+ assert @picture.destroy(test_id)
73
+ end
74
+ 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/purchase_invoice_line_test.rb
3
5
 
4
6
  class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
@@ -15,14 +17,14 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
15
17
  def test_find_all
16
18
  stub_request(:get, /purchaseInvoiceLines/)
17
19
  .to_return(
18
- status: 200,
20
+ status: 200,
19
21
  body: {
20
22
  'value': [
21
23
  {
22
24
  description: 'po line 1'
23
25
  }
24
26
  ]
25
- }.to_json,
27
+ }.to_json
26
28
  )
27
29
 
28
30
  response = @purchase_invoice_line.find_all
@@ -33,7 +35,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
33
35
  test_purchase_invoice_line_id = '09876'
34
36
  stub_request(:get, /purchaseInvoiceLines\(#{test_purchase_invoice_line_id}\)/)
35
37
  .to_return(
36
- status: 200,
38
+ status: 200,
37
39
  body: {
38
40
  description: 'po line 2'
39
41
  }.to_json
@@ -47,7 +49,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
47
49
  test_filter = "description eq 'po line 3'"
48
50
  stub_request(:get, /purchaseInvoiceLines\?\$filter=#{test_filter}/)
49
51
  .to_return(
50
- status: 200,
52
+ status: 200,
51
53
  body: {
52
54
  'value': [
53
55
  {
@@ -64,15 +66,15 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
64
66
  def test_create
65
67
  stub_request(:post, /purchaseInvoiceLines/)
66
68
  .to_return(
67
- status: 200,
69
+ status: 200,
68
70
  body: {
69
71
  description: 'po line 4'
70
72
  }.to_json
71
73
  )
72
74
 
73
- response = @purchase_invoice_line.create({
75
+ response = @purchase_invoice_line.create(
74
76
  description: 'po line 4'
75
- })
77
+ )
76
78
  assert_equal response[:description], 'po line 4'
77
79
  end
78
80
 
@@ -80,7 +82,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
80
82
  test_purchase_invoice_line_id = '011123'
81
83
  stub_request(:get, /purchaseInvoiceLines\(#{test_purchase_invoice_line_id}\)/)
82
84
  .to_return(
83
- status: 200,
85
+ status: 200,
84
86
  body: {
85
87
  etag: '112',
86
88
  description: 'po line 5'
@@ -89,7 +91,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
89
91
 
90
92
  stub_request(:patch, /purchaseInvoiceLines\(#{test_purchase_invoice_line_id}\)/)
91
93
  .to_return(
92
- status: 200,
94
+ status: 200,
93
95
  body: {
94
96
  description: 'po line 6'
95
97
  }.to_json
@@ -97,9 +99,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
97
99
 
98
100
  response = @purchase_invoice_line.update(
99
101
  test_purchase_invoice_line_id,
100
- {
101
- description: 'po line 6'
102
- }
102
+ description: 'po line 6'
103
103
  )
104
104
  assert_equal response[:description], 'po line 6'
105
105
  end
@@ -108,7 +108,7 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
108
108
  test_purchase_invoice_line_id = '0111245'
109
109
  stub_request(:get, /purchaseInvoiceLines\(#{test_purchase_invoice_line_id}\)/)
110
110
  .to_return(
111
- status: 200,
111
+ status: 200,
112
112
  body: {
113
113
  etag: '113',
114
114
  description: 'po line 6'
@@ -120,4 +120,4 @@ class BusinessCentral::Object::PurchaseInvoiceLineTest < Minitest::Test
120
120
 
121
121
  assert @purchase_invoice_line.destroy(test_purchase_invoice_line_id)
122
122
  end
123
- end
123
+ 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/purchase_invoice_test.rb
3
5
 
4
6
  class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
@@ -11,14 +13,14 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
11
13
  def test_find_all
12
14
  stub_request(:get, /purchaseInvoices/)
13
15
  .to_return(
14
- status: 200,
16
+ status: 200,
15
17
  body: {
16
18
  'value': [
17
19
  {
18
20
  displayName: 'po1'
19
21
  }
20
22
  ]
21
- }.to_json,
23
+ }.to_json
22
24
  )
23
25
 
24
26
  response = @purchase_invoice.find_all
@@ -29,7 +31,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
29
31
  test_purchase_invoice_id = '09876'
30
32
  stub_request(:get, /purchaseInvoices\(#{test_purchase_invoice_id}\)/)
31
33
  .to_return(
32
- status: 200,
34
+ status: 200,
33
35
  body: {
34
36
  displayName: 'po2'
35
37
  }.to_json
@@ -43,7 +45,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
43
45
  test_filter = "displayName eq 'po3'"
44
46
  stub_request(:get, /purchaseInvoices\?\$filter=#{test_filter}/)
45
47
  .to_return(
46
- status: 200,
48
+ status: 200,
47
49
  body: {
48
50
  'value': [
49
51
  {
@@ -60,15 +62,15 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
60
62
  def test_create
61
63
  stub_request(:post, /purchaseInvoices/)
62
64
  .to_return(
63
- status: 200,
65
+ status: 200,
64
66
  body: {
65
67
  displayName: 'po4'
66
68
  }.to_json
67
69
  )
68
70
 
69
- response = @purchase_invoice.create({
71
+ response = @purchase_invoice.create(
70
72
  display_name: 'po4'
71
- })
73
+ )
72
74
  assert_equal response[:display_name], 'po4'
73
75
  end
74
76
 
@@ -76,7 +78,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
76
78
  test_purchase_invoice_id = '011123'
77
79
  stub_request(:get, /purchaseInvoices\(#{test_purchase_invoice_id}\)/)
78
80
  .to_return(
79
- status: 200,
81
+ status: 200,
80
82
  body: {
81
83
  etag: '112',
82
84
  displayName: 'po5'
@@ -85,7 +87,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
85
87
 
86
88
  stub_request(:patch, /purchaseInvoices\(#{test_purchase_invoice_id}\)/)
87
89
  .to_return(
88
- status: 200,
90
+ status: 200,
89
91
  body: {
90
92
  displayName: 'po6'
91
93
  }.to_json
@@ -93,9 +95,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
93
95
 
94
96
  response = @purchase_invoice.update(
95
97
  test_purchase_invoice_id,
96
- {
97
- display_name: 'po6'
98
- }
98
+ display_name: 'po6'
99
99
  )
100
100
  assert_equal response[:display_name], 'po6'
101
101
  end
@@ -104,7 +104,7 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
104
104
  test_purchase_invoice_id = '0111245'
105
105
  stub_request(:get, /purchaseInvoices\(#{test_purchase_invoice_id}\)/)
106
106
  .to_return(
107
- status: 200,
107
+ status: 200,
108
108
  body: {
109
109
  etag: '113',
110
110
  displayName: 'po7'
@@ -116,4 +116,4 @@ class BusinessCentral::Object::PurchaseInvoiceTest < Minitest::Test
116
116
 
117
117
  assert @purchase_invoice.destroy(test_purchase_invoice_id)
118
118
  end
119
- end
119
+ 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/request_test.rb
3
5
 
4
6
  class BusinessCentral::Object::RequestTest < Minitest::Test
@@ -10,7 +12,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
10
12
  def test_get_request
11
13
  stub_request(:get, @url)
12
14
  .to_return(
13
- status: 200,
15
+ status: 200,
14
16
  body: {
15
17
  'value': [
16
18
  {
@@ -28,7 +30,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
28
30
  def test_post_request
29
31
  stub_request(:post, @url)
30
32
  .to_return(
31
- status: 200,
33
+ status: 200,
32
34
  body: {
33
35
  'value': [
34
36
  {
@@ -38,7 +40,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
38
40
  }.to_json
39
41
  )
40
42
 
41
- response = BusinessCentral::Object::Request.post(@client, @url, { display_name: 'value2' })
43
+ response = BusinessCentral::Object::Request.post(@client, @url, display_name: 'value2')
42
44
 
43
45
  assert_equal 'value2', response.first[:display_name]
44
46
  end
@@ -46,7 +48,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
46
48
  def test_patch_request
47
49
  stub_request(:patch, @url)
48
50
  .to_return(
49
- status: 200,
51
+ status: 200,
50
52
  body: {
51
53
  'value': [
52
54
  {
@@ -56,7 +58,7 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
56
58
  }.to_json
57
59
  )
58
60
 
59
- response = BusinessCentral::Object::Request.patch(@client, @url, '1', { display_name: 'value3' })
61
+ response = BusinessCentral::Object::Request.patch(@client, @url, '1', display_name: 'value3')
60
62
 
61
63
  assert_equal 'value3', response.first[:display_name]
62
64
  end
@@ -68,10 +70,16 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
68
70
  assert BusinessCentral::Object::Request.delete(@client, @url, '1')
69
71
  end
70
72
 
71
- def test_request_convert_parameters
73
+ def test_request_convert_symbol_parameters
72
74
  param = { new_key: 'value' }
73
75
  request = JSON.parse(BusinessCentral::Object::Request.convert(param))
74
- assert request.has_key?("newKey")
76
+ assert request.key?('newKey')
77
+ end
78
+
79
+ def test_skip_request_converting_string_parameters
80
+ param = { 'New_Key' => 'value' }
81
+ request = JSON.parse(BusinessCentral::Object::Request.convert(param))
82
+ assert request.key?('New_Key')
75
83
  end
76
84
 
77
85
  def test_get_request_returns_unathorized_error
@@ -128,4 +136,4 @@ class BusinessCentral::Object::RequestTest < Minitest::Test
128
136
  BusinessCentral::Object::Request.get(@client, @url)
129
137
  end
130
138
  end
131
- end
139
+ 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/response_test.rb
3
5
 
4
6
  class BusinessCentral::Object::ResponseTest < Minitest::Test
@@ -15,30 +17,35 @@ class BusinessCentral::Object::ResponseTest < Minitest::Test
15
17
  end
16
18
 
17
19
  def test_no_response
18
- BusinessCentral::Object::Response.new("").results
20
+ BusinessCentral::Object::Response.new('').results
19
21
  end
20
22
 
21
23
  def test_process_response
22
24
  params = '{"newKey": "value"}'
23
25
  request = BusinessCentral::Object::Response.new(params).results
24
- assert request.has_key?(:new_key)
26
+ assert request.key?(:new_key)
25
27
  end
26
28
 
27
29
  def test_process_etag
28
30
  params = '{"@odata.etag": "123"}'
29
31
  request = BusinessCentral::Object::Response.new(params).results
30
- assert request.has_key?(:etag)
32
+ assert request.key?(:etag)
31
33
  end
32
34
 
33
35
  def test_process_context
34
36
  params = '{"@odata.context": "123"}'
35
37
  request = BusinessCentral::Object::Response.new(params).results
36
- assert request.has_key?(:context)
38
+ assert request.key?(:context)
37
39
  end
38
40
 
39
41
  def test_process_inner_hash
40
42
  params = '{"item": { "id": "123" }}'
41
43
  request = BusinessCentral::Object::Response.new(params).results
42
- assert request.has_key?(:item)
44
+ assert request.key?(:item)
45
+ end
46
+
47
+ def test_string_response
48
+ response = BusinessCentral::Object::Response.new('{ "value": "OK - Action was successful" }')
49
+ assert_equal 'OK - Action was successful', response.results
43
50
  end
44
- end
51
+ end