business-central 1.0.1 → 1.0.6

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.rb +47 -2
  4. data/lib/business_central/client.rb +82 -39
  5. data/lib/business_central/exceptions.rb +30 -10
  6. data/lib/business_central/object/account.rb +4 -12
  7. data/lib/business_central/object/aged_account_payable.rb +4 -12
  8. data/lib/business_central/object/aged_account_receivable.rb +4 -12
  9. data/lib/business_central/object/argument_helper.rb +22 -0
  10. data/lib/business_central/object/attachment.rb +30 -0
  11. data/lib/business_central/object/balance_sheet.rb +4 -12
  12. data/lib/business_central/object/base.rb +100 -49
  13. data/lib/business_central/object/cash_flow_statement.rb +4 -12
  14. data/lib/business_central/object/company.rb +9 -2
  15. data/lib/business_central/object/company_information.rb +7 -15
  16. data/lib/business_central/object/country_region.rb +26 -0
  17. data/lib/business_central/object/currency.rb +29 -0
  18. data/lib/business_central/object/customer.rb +34 -0
  19. data/lib/business_central/object/customer_financial_detail.rb +13 -0
  20. data/lib/business_central/object/customer_payment.rb +43 -0
  21. data/lib/business_central/object/customer_payment_journal.rb +25 -0
  22. data/lib/business_central/object/customer_sale.rb +13 -0
  23. data/lib/business_central/object/default_dimension.rb +51 -0
  24. data/lib/business_central/object/dimension.rb +20 -0
  25. data/lib/business_central/object/dimension_line.rb +37 -0
  26. data/lib/business_central/object/dimension_value.rb +28 -0
  27. data/lib/business_central/object/employee.rb +21 -0
  28. data/lib/business_central/object/filter_query.rb +18 -0
  29. data/lib/business_central/object/general_ledger_entry.rb +13 -0
  30. data/lib/business_central/object/income_statement.rb +13 -0
  31. data/lib/business_central/object/irs1099_code.rb +16 -0
  32. data/lib/business_central/object/item.rb +16 -19
  33. data/lib/business_central/object/item_category.rb +16 -0
  34. data/lib/business_central/object/journal.rb +29 -0
  35. data/lib/business_central/object/journal_line.rb +48 -0
  36. data/lib/business_central/object/object_helper.rb +49 -0
  37. data/lib/business_central/object/payment_method.rb +16 -0
  38. data/lib/business_central/object/payment_term.rb +16 -0
  39. data/lib/business_central/object/picture.rb +53 -0
  40. data/lib/business_central/object/purchase_invoice.rb +8 -16
  41. data/lib/business_central/object/purchase_invoice_line.rb +14 -18
  42. data/lib/business_central/object/request.rb +61 -50
  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 +12 -15
  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/core_ext/string.rb +18 -12
  68. data/test/business_central/client_test.rb +49 -7
  69. data/test/business_central/object/account_test.rb +6 -5
  70. data/test/business_central/object/aged_account_payable_test.rb +6 -5
  71. data/test/business_central/object/aged_account_receivable_test.rb +6 -5
  72. data/test/business_central/object/attachment_test.rb +117 -0
  73. data/test/business_central/object/balance_sheet_test.rb +6 -5
  74. data/test/business_central/object/base_test.rb +41 -0
  75. data/test/business_central/object/cash_flow_statement_test.rb +6 -5
  76. data/test/business_central/object/company_information_test.rb +9 -10
  77. data/test/business_central/object/company_test.rb +6 -5
  78. data/test/business_central/object/country_region_test.rb +129 -0
  79. data/test/business_central/object/currency_test.rb +150 -0
  80. data/test/business_central/object/customer_financial_detail_test.rb +68 -0
  81. data/test/business_central/object/customer_payment_journal_test.rb +134 -0
  82. data/test/business_central/object/customer_payment_test.rb +141 -0
  83. data/test/business_central/object/customer_sale_test.rb +72 -0
  84. data/test/business_central/object/customer_test.rb +168 -0
  85. data/test/business_central/object/default_dimension_test.rb +170 -0
  86. data/test/business_central/object/dimension_line_test.rb +165 -0
  87. data/test/business_central/object/dimension_test.rb +65 -0
  88. data/test/business_central/object/dimension_value_test.rb +68 -0
  89. data/test/business_central/object/employee_test.rb +141 -0
  90. data/test/business_central/object/filter_query_test.rb +36 -0
  91. data/test/business_central/object/general_ledger_entry_test.rb +82 -0
  92. data/test/business_central/object/income_statement_test.rb +82 -0
  93. data/test/business_central/object/irs1099_code_test.rb +124 -0
  94. data/test/business_central/object/item_category_test.rb +122 -0
  95. data/test/business_central/object/item_test.rb +16 -17
  96. data/test/business_central/object/journal_line_test.rb +152 -0
  97. data/test/business_central/object/journal_test.rb +144 -0
  98. data/test/business_central/object/payment_method_test.rb +134 -0
  99. data/test/business_central/object/payment_term_test.rb +134 -0
  100. data/test/business_central/object/picture_test.rb +74 -0
  101. data/test/business_central/object/purchase_invoice_line_test.rb +15 -15
  102. data/test/business_central/object/purchase_invoice_test.rb +15 -15
  103. data/test/business_central/object/request_test.rb +75 -12
  104. data/test/business_central/object/response_test.rb +34 -9
  105. data/test/business_central/object/retained_earning_statement_test.rb +52 -0
  106. data/test/business_central/object/sales_credit_memo_line_test.rb +134 -0
  107. data/test/business_central/object/sales_credit_memo_test.rb +146 -0
  108. data/test/business_central/object/sales_invoice_line_test.rb +164 -0
  109. data/test/business_central/object/sales_invoice_test.rb +156 -0
  110. data/test/business_central/object/sales_order_line_test.rb +134 -0
  111. data/test/business_central/object/sales_order_test.rb +146 -0
  112. data/test/business_central/object/sales_quote_line_test.rb +134 -0
  113. data/test/business_central/object/sales_quote_test.rb +146 -0
  114. data/test/business_central/object/shipment_method_test.rb +133 -0
  115. data/test/business_central/object/subscription_test.rb +126 -0
  116. data/test/business_central/object/tax_area_test.rb +126 -0
  117. data/test/business_central/object/tax_group_test.rb +126 -0
  118. data/test/business_central/object/time_registration_entry_test.rb +126 -0
  119. data/test/business_central/object/trial_balance_test.rb +82 -0
  120. data/test/business_central/object/units_of_measure_test.rb +126 -0
  121. data/test/business_central/object/validation_test.rb +5 -4
  122. data/test/business_central/object/vendor_purchase_test.rb +82 -0
  123. data/test/business_central/object/vendor_test.rb +16 -16
  124. data/test/business_central/web_service_test.rb +100 -0
  125. data/test/business_central_test.rb +3 -1
  126. data/test/test_helper.rb +16 -6
  127. metadata +188 -37
  128. data/lib/business_central/object/helper.rb +0 -15
@@ -0,0 +1,156 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/sales_invoice_test.rb
5
+
6
+ class BusinessCentral::Object::SalesInvoiceTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @sales_invoice = @client.sales_invoice(company_id: @company_id)
11
+ end
12
+
13
+ def test_find_all
14
+ stub_request(:get, /salesInvoices/)
15
+ .to_return(
16
+ status: 200,
17
+ body: {
18
+ 'value': [
19
+ {
20
+ id: '1234',
21
+ number: 1,
22
+ customerPurchaseOrderReference: 'C1'
23
+ }
24
+ ]
25
+ }.to_json
26
+ )
27
+
28
+ response = @sales_invoice.find_all
29
+ assert_equal response.first[:customer_purchase_order_reference], 'C1'
30
+ end
31
+
32
+ def test_find_by_id
33
+ test_id = '09876'
34
+ stub_request(:get, /salesInvoices\(#{test_id}\)/)
35
+ .to_return(
36
+ status: 200,
37
+ body: {
38
+ id: test_id,
39
+ number: 2,
40
+ customerPurchaseOrderReference: 'C2'
41
+ }.to_json
42
+ )
43
+
44
+ response = @sales_invoice.find_by_id(test_id)
45
+ assert_equal response[:customer_purchase_order_reference], 'C2'
46
+ end
47
+
48
+ def test_where
49
+ test_filter = "customerPurchaseOrderReference eq 'C3'"
50
+ stub_request(:get, /salesInvoices\?\$filter=#{test_filter}/)
51
+ .to_return(
52
+ status: 200,
53
+ body: {
54
+ 'value': [
55
+ {
56
+ id: '345',
57
+ number: 3,
58
+ customerPurchaseOrderReference: 'C3'
59
+ }
60
+ ]
61
+ }.to_json
62
+ )
63
+
64
+ response = @sales_invoice.where(test_filter)
65
+ assert_equal response.first[:customer_purchase_order_reference], 'C3'
66
+ end
67
+
68
+ def test_create
69
+ stub_request(:post, /salesInvoices/)
70
+ .to_return(
71
+ status: 200,
72
+ body: {
73
+ id: '678',
74
+ number: 4,
75
+ customerPurchaseOrderReference: 'C4'
76
+ }.to_json
77
+ )
78
+
79
+ response = @sales_invoice.create(
80
+ number: 4,
81
+ customer_purchase_order_reference: 'C4'
82
+ )
83
+ assert_equal response[:customer_purchase_order_reference], 'C4'
84
+ end
85
+
86
+ def test_update
87
+ test_id = '011123'
88
+ stub_request(:get, /salesInvoices\(#{test_id}\)/)
89
+ .to_return(
90
+ status: 200,
91
+ body: {
92
+ etag: '112',
93
+ id: test_id,
94
+ number: 5,
95
+ customerPurchaseOrderReference: 'C5'
96
+ }.to_json
97
+ )
98
+
99
+ stub_request(:patch, /salesInvoices\(#{test_id}\)/)
100
+ .to_return(
101
+ status: 200,
102
+ body: {
103
+ id: test_id,
104
+ number: 5,
105
+ customerPurchaseOrderReference: 'C6'
106
+ }.to_json
107
+ )
108
+
109
+ response = @sales_invoice.update(
110
+ test_id,
111
+ customer_purchase_order_reference: 'C6'
112
+ )
113
+ assert_equal response[:customer_purchase_order_reference], 'C6'
114
+ end
115
+
116
+ def test_delete
117
+ test_id = '0111245'
118
+ stub_request(:get, /salesInvoices\(#{test_id}\)/)
119
+ .to_return(
120
+ status: 200,
121
+ body: {
122
+ etag: '113',
123
+ id: 7,
124
+ number: 7,
125
+ customerPurchaseOrderReference: 'C7'
126
+ }.to_json
127
+ )
128
+
129
+ stub_request(:delete, /salesInvoices\(#{test_id}\)/)
130
+ .to_return(status: 204)
131
+
132
+ assert @sales_invoice.destroy(test_id)
133
+ end
134
+
135
+ def test_line_navigation
136
+ stub_request(:get, %r{salesInvoices\(\d+\)\/salesInvoiceLines})
137
+ .to_return(
138
+ status: 200,
139
+ body: {
140
+ 'value': [
141
+ {
142
+ id: '123',
143
+ documentId: 5,
144
+ sequence: 10_000,
145
+ itemId: 5,
146
+ description: 'salesInvoiceLine1'
147
+ }
148
+ ]
149
+ }.to_json
150
+ )
151
+
152
+ response = @client.sales_invoice(company_id: @company_id, id: '123')
153
+ .sales_invoice_line.find_all
154
+ assert_equal response.first[:description], 'salesInvoiceLine1'
155
+ end
156
+ end
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/sales_order_line_test.rb
5
+
6
+ class BusinessCentral::Object::SalesOrderLineTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @sales_order_line = @client.sales_order_line(
11
+ company_id: @company_id,
12
+ parent: 'salesOrders',
13
+ parent_id: '123'
14
+ )
15
+ end
16
+
17
+ def test_find_all
18
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines})
19
+ .to_return(
20
+ status: 200,
21
+ body: {
22
+ 'value': [
23
+ {
24
+ id: 1,
25
+ sequence: '1009',
26
+ lineType: 'Comment'
27
+ }
28
+ ]
29
+ }.to_json
30
+ )
31
+
32
+ response = @sales_order_line.find_all
33
+ assert_equal response.first[:sequence], '1009'
34
+ end
35
+
36
+ def test_find_by_id
37
+ test_id = '09876'
38
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines\(#{test_id}\)})
39
+ .to_return(
40
+ status: 200,
41
+ body: {
42
+ id: test_id,
43
+ sequence: '1010',
44
+ lineType: 'Comment'
45
+ }.to_json
46
+ )
47
+
48
+ response = @sales_order_line.find_by_id(test_id)
49
+ assert_equal response[:sequence], '1010'
50
+ end
51
+
52
+ def test_where
53
+ test_filter = "sequence eq '1020'"
54
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines\?\$filter=#{test_filter}})
55
+ .to_return(
56
+ status: 200,
57
+ body: {
58
+ 'value': [
59
+ {
60
+ id: '345',
61
+ sequence: '1011'
62
+ }
63
+ ]
64
+ }.to_json
65
+ )
66
+
67
+ response = @sales_order_line.where(test_filter)
68
+ assert_equal response.first[:sequence], '1011'
69
+ end
70
+
71
+ def test_create
72
+ stub_request(:post, %r{salesOrders\(\d+\)\/salesOrderLines})
73
+ .to_return(
74
+ status: 200,
75
+ body: {
76
+ id: '678',
77
+ sequence: '1012'
78
+ }.to_json
79
+ )
80
+
81
+ response = @sales_order_line.create(
82
+ sequence: '1012'
83
+ )
84
+ assert_equal response[:sequence], '1012'
85
+ end
86
+
87
+ def test_update
88
+ test_id = '011123'
89
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines\(#{test_id}\)})
90
+ .to_return(
91
+ status: 200,
92
+ body: {
93
+ etag: '112',
94
+ id: test_id,
95
+ sequence: '1012',
96
+ lineType: 'Comment'
97
+ }.to_json
98
+ )
99
+
100
+ stub_request(:patch, %r{salesOrders\(\d+\)\/salesOrderLines\(#{test_id}\)})
101
+ .to_return(
102
+ status: 200,
103
+ body: {
104
+ id: test_id,
105
+ sequence: '1012',
106
+ lineType: 'Account'
107
+ }.to_json
108
+ )
109
+
110
+ response = @sales_order_line.update(
111
+ test_id,
112
+ line_type: 'Account'
113
+ )
114
+ assert_equal response[:line_type], 'Account'
115
+ end
116
+
117
+ def test_delete
118
+ test_id = '0111245'
119
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines\(#{test_id}\)})
120
+ .to_return(
121
+ status: 200,
122
+ body: {
123
+ etag: '113',
124
+ id: 7,
125
+ sequence: '1013'
126
+ }.to_json
127
+ )
128
+
129
+ stub_request(:delete, %r{salesOrders\(\d+\)\/salesOrderLines\(#{test_id}\)})
130
+ .to_return(status: 204)
131
+
132
+ assert @sales_order_line.destroy(test_id)
133
+ end
134
+ end
@@ -0,0 +1,146 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/sales_order_test.rb
5
+
6
+ class BusinessCentral::Object::SalesOrderTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @sales_order = @client.sales_order(company_id: @company_id)
11
+ end
12
+
13
+ def test_find_all
14
+ stub_request(:get, /salesOrders/)
15
+ .to_return(
16
+ status: 200,
17
+ body: {
18
+ 'value': [
19
+ {
20
+ id: 1,
21
+ number: '1009'
22
+ }
23
+ ]
24
+ }.to_json
25
+ )
26
+
27
+ response = @sales_order.find_all
28
+ assert_equal response.first[:number], '1009'
29
+ end
30
+
31
+ def test_find_by_id
32
+ test_id = '09876'
33
+ stub_request(:get, /salesOrders\(#{test_id}\)/)
34
+ .to_return(
35
+ status: 200,
36
+ body: {
37
+ id: test_id,
38
+ number: '1010'
39
+ }.to_json
40
+ )
41
+
42
+ response = @sales_order.find_by_id(test_id)
43
+ assert_equal response[:number], '1010'
44
+ end
45
+
46
+ def test_where
47
+ test_filter = "number eq '1020'"
48
+ stub_request(:get, /salesOrders\?\$filter=#{test_filter}/)
49
+ .to_return(
50
+ status: 200,
51
+ body: {
52
+ 'value': [
53
+ {
54
+ id: '345',
55
+ number: '1011'
56
+ }
57
+ ]
58
+ }.to_json
59
+ )
60
+
61
+ response = @sales_order.where(test_filter)
62
+ assert_equal response.first[:number], '1011'
63
+ end
64
+
65
+ def test_create
66
+ stub_request(:post, /salesOrders/)
67
+ .to_return(
68
+ status: 200,
69
+ body: {
70
+ id: '678',
71
+ number: '1012'
72
+ }.to_json
73
+ )
74
+
75
+ response = @sales_order.create(
76
+ number: '1012'
77
+ )
78
+ assert_equal response[:number], '1012'
79
+ end
80
+
81
+ def test_update
82
+ test_id = '011123'
83
+ stub_request(:get, /salesOrders\(#{test_id}\)/)
84
+ .to_return(
85
+ status: 200,
86
+ body: {
87
+ etag: '112',
88
+ id: test_id,
89
+ number: '1012'
90
+ }.to_json
91
+ )
92
+
93
+ stub_request(:patch, /salesOrders\(#{test_id}\)/)
94
+ .to_return(
95
+ status: 200,
96
+ body: {
97
+ id: test_id,
98
+ number: '1013'
99
+ }.to_json
100
+ )
101
+
102
+ response = @sales_order.update(
103
+ test_id,
104
+ number: '1013'
105
+ )
106
+ assert_equal response[:number], '1013'
107
+ end
108
+
109
+ def test_delete
110
+ test_id = '0111245'
111
+ stub_request(:get, /salesOrders\(#{test_id}\)/)
112
+ .to_return(
113
+ status: 200,
114
+ body: {
115
+ etag: '113',
116
+ id: 7,
117
+ number: '1013'
118
+ }.to_json
119
+ )
120
+
121
+ stub_request(:delete, /salesOrders\(#{test_id}\)/)
122
+ .to_return(status: 204)
123
+
124
+ assert @sales_order.destroy(test_id)
125
+ end
126
+
127
+ def test_line_navigation
128
+ stub_request(:get, %r{salesOrders\(\d+\)\/salesOrderLines})
129
+ .to_return(
130
+ status: 200,
131
+ body: {
132
+ 'value': [
133
+ {
134
+ id: 1,
135
+ sequence: '1009',
136
+ lineType: 'Comment'
137
+ }
138
+ ]
139
+ }.to_json
140
+ )
141
+
142
+ response = @client.sales_order(company_id: @company_id, id: '123')
143
+ .sales_order_line.find_all
144
+ assert_equal response.first[:sequence], '1009'
145
+ end
146
+ end
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ # rake test TEST=test/business_central/object/sales_quote_line_test.rb
5
+
6
+ class BusinessCentral::Object::SalesQuoteLineTest < Minitest::Test
7
+ def setup
8
+ @company_id = '123456'
9
+ @client = BusinessCentral::Client.new
10
+ @sales_quote_line = @client.sales_quote_line(
11
+ company_id: @company_id,
12
+ parent: 'salesQuotes',
13
+ parent_id: '123'
14
+ )
15
+ end
16
+
17
+ def test_find_all
18
+ stub_request(:get, %r{salesQuotes\(\d+\)\/salesQuoteLines})
19
+ .to_return(
20
+ status: 200,
21
+ body: {
22
+ 'value': [
23
+ {
24
+ id: 1,
25
+ sequence: '1009',
26
+ lineType: 'Comment'
27
+ }
28
+ ]
29
+ }.to_json
30
+ )
31
+
32
+ response = @sales_quote_line.find_all
33
+ assert_equal response.first[:sequence], '1009'
34
+ end
35
+
36
+ def test_find_by_id
37
+ test_id = '09876'
38
+ stub_request(:get, %r{salesQuotes\(\d+\)\/salesQuoteLines\(#{test_id}\)})
39
+ .to_return(
40
+ status: 200,
41
+ body: {
42
+ id: test_id,
43
+ sequence: '1010',
44
+ lineType: 'Comment'
45
+ }.to_json
46
+ )
47
+
48
+ response = @sales_quote_line.find_by_id(test_id)
49
+ assert_equal response[:sequence], '1010'
50
+ end
51
+
52
+ def test_where
53
+ test_filter = "sequence eq '1020'"
54
+ stub_request(:get, %r{salesQuotes\(\d+\)\/salesQuoteLines\?\$filter=#{test_filter}})
55
+ .to_return(
56
+ status: 200,
57
+ body: {
58
+ 'value': [
59
+ {
60
+ id: '345',
61
+ sequence: '1011'
62
+ }
63
+ ]
64
+ }.to_json
65
+ )
66
+
67
+ response = @sales_quote_line.where(test_filter)
68
+ assert_equal response.first[:sequence], '1011'
69
+ end
70
+
71
+ def test_create
72
+ stub_request(:post, %r{salesQuotes\(\d+\)\/salesQuoteLines})
73
+ .to_return(
74
+ status: 200,
75
+ body: {
76
+ id: '678',
77
+ sequence: '1012'
78
+ }.to_json
79
+ )
80
+
81
+ response = @sales_quote_line.create(
82
+ sequence: '1012'
83
+ )
84
+ assert_equal response[:sequence], '1012'
85
+ end
86
+
87
+ def test_update
88
+ test_id = '011123'
89
+ stub_request(:get, %r{salesQuotes\(\d+\)\/salesQuoteLines\(#{test_id}\)})
90
+ .to_return(
91
+ status: 200,
92
+ body: {
93
+ etag: '112',
94
+ id: test_id,
95
+ sequence: '1012',
96
+ lineType: 'Comment'
97
+ }.to_json
98
+ )
99
+
100
+ stub_request(:patch, %r{salesQuotes\(\d+\)\/salesQuoteLines\(#{test_id}\)})
101
+ .to_return(
102
+ status: 200,
103
+ body: {
104
+ id: test_id,
105
+ sequence: '1012',
106
+ lineType: 'Account'
107
+ }.to_json
108
+ )
109
+
110
+ response = @sales_quote_line.update(
111
+ test_id,
112
+ line_type: 'Account'
113
+ )
114
+ assert_equal response[:line_type], 'Account'
115
+ end
116
+
117
+ def test_delete
118
+ test_id = '0111245'
119
+ stub_request(:get, %r{salesQuotes\(\d+\)\/salesQuoteLines\(#{test_id}\)})
120
+ .to_return(
121
+ status: 200,
122
+ body: {
123
+ etag: '113',
124
+ id: 7,
125
+ sequence: '1013'
126
+ }.to_json
127
+ )
128
+
129
+ stub_request(:delete, %r{salesQuotes\(\d+\)\/salesQuoteLines\(#{test_id}\)})
130
+ .to_return(status: 204)
131
+
132
+ assert @sales_quote_line.destroy(test_id)
133
+ end
134
+ end