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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/lib/business_central.rb +35 -2
  3. data/lib/business_central/client.rb +65 -38
  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/balance_sheet.rb +4 -2
  10. data/lib/business_central/object/base.rb +90 -56
  11. data/lib/business_central/object/cash_flow_statement.rb +4 -2
  12. data/lib/business_central/object/company.rb +5 -3
  13. data/lib/business_central/object/company_information.rb +7 -5
  14. data/lib/business_central/object/country_region.rb +8 -6
  15. data/lib/business_central/object/currency.rb +8 -6
  16. data/lib/business_central/object/customer.rb +15 -9
  17. data/lib/business_central/object/customer_financial_detail.rb +3 -1
  18. data/lib/business_central/object/customer_payment.rb +8 -6
  19. data/lib/business_central/object/customer_payment_journal.rb +8 -6
  20. data/lib/business_central/object/customer_sale.rb +3 -1
  21. data/lib/business_central/object/default_dimension.rb +17 -20
  22. data/lib/business_central/object/dimension.rb +20 -0
  23. data/lib/business_central/object/dimension_line.rb +37 -0
  24. data/lib/business_central/object/dimension_value.rb +28 -0
  25. data/lib/business_central/object/employee.rb +21 -0
  26. data/lib/business_central/object/filter_query.rb +18 -0
  27. data/lib/business_central/object/item.rb +17 -10
  28. data/lib/business_central/object/item_category.rb +16 -0
  29. data/lib/business_central/object/journal.rb +29 -0
  30. data/lib/business_central/object/journal_line.rb +48 -0
  31. data/lib/business_central/object/{helper.rb → object_helper.rb} +18 -10
  32. data/lib/business_central/object/payment_method.rb +16 -0
  33. data/lib/business_central/object/payment_term.rb +16 -0
  34. data/lib/business_central/object/picture.rb +53 -0
  35. data/lib/business_central/object/purchase_invoice.rb +8 -6
  36. data/lib/business_central/object/purchase_invoice_line.rb +10 -8
  37. data/lib/business_central/object/request.rb +60 -49
  38. data/lib/business_central/object/response.rb +28 -22
  39. data/lib/business_central/object/retained_earning_statement.rb +13 -0
  40. data/lib/business_central/object/sales_credit_memo.rb +20 -0
  41. data/lib/business_central/object/sales_credit_memo_line.rb +30 -0
  42. data/lib/business_central/object/sales_invoice.rb +62 -0
  43. data/lib/business_central/object/sales_invoice_line.rb +30 -0
  44. data/lib/business_central/object/sales_order.rb +20 -0
  45. data/lib/business_central/object/sales_order_line.rb +30 -0
  46. data/lib/business_central/object/sales_quote.rb +20 -0
  47. data/lib/business_central/object/sales_quote_line.rb +30 -0
  48. data/lib/business_central/object/shipment_method.rb +16 -0
  49. data/lib/business_central/object/subscription.rb +16 -0
  50. data/lib/business_central/object/tax_area.rb +16 -0
  51. data/lib/business_central/object/tax_group.rb +16 -0
  52. data/lib/business_central/object/time_registration_entry.rb +16 -0
  53. data/lib/business_central/object/trial_balance.rb +13 -0
  54. data/lib/business_central/object/units_of_measure.rb +16 -0
  55. data/lib/business_central/object/url_builder.rb +59 -0
  56. data/lib/business_central/object/url_helper.rb +32 -0
  57. data/lib/business_central/object/validation.rb +10 -7
  58. data/lib/business_central/object/vendor.rb +10 -7
  59. data/lib/business_central/object/vendor_purchase.rb +13 -0
  60. data/lib/business_central/version.rb +4 -2
  61. data/lib/business_central/web_service.rb +78 -0
  62. data/lib/core_ext/string.rb +18 -12
  63. data/test/business_central/client_test.rb +18 -11
  64. data/test/business_central/object/account_test.rb +6 -5
  65. data/test/business_central/object/aged_account_payable_test.rb +6 -5
  66. data/test/business_central/object/aged_account_receivable_test.rb +6 -5
  67. data/test/business_central/object/balance_sheet_test.rb +6 -5
  68. data/test/business_central/object/base_test.rb +4 -2
  69. data/test/business_central/object/cash_flow_statement_test.rb +6 -5
  70. data/test/business_central/object/company_information_test.rb +9 -10
  71. data/test/business_central/object/company_test.rb +6 -5
  72. data/test/business_central/object/country_region_test.rb +16 -17
  73. data/test/business_central/object/currency_test.rb +17 -18
  74. data/test/business_central/object/customer_financial_detail_test.rb +8 -6
  75. data/test/business_central/object/customer_payment_journal_test.rb +14 -15
  76. data/test/business_central/object/customer_payment_test.rb +15 -16
  77. data/test/business_central/object/customer_sale_test.rb +8 -6
  78. data/test/business_central/object/customer_test.rb +15 -16
  79. data/test/business_central/object/default_dimension_test.rb +15 -16
  80. data/test/business_central/object/dimension_line_test.rb +165 -0
  81. data/test/business_central/object/dimension_test.rb +65 -0
  82. data/test/business_central/object/dimension_value_test.rb +68 -0
  83. data/test/business_central/object/employee_test.rb +141 -0
  84. data/test/business_central/object/filter_query_test.rb +36 -0
  85. data/test/business_central/object/item_category_test.rb +122 -0
  86. data/test/business_central/object/item_test.rb +16 -17
  87. data/test/business_central/object/journal_line_test.rb +152 -0
  88. data/test/business_central/object/journal_test.rb +124 -0
  89. data/test/business_central/object/payment_method_test.rb +134 -0
  90. data/test/business_central/object/payment_term_test.rb +134 -0
  91. data/test/business_central/object/picture_test.rb +74 -0
  92. data/test/business_central/object/purchase_invoice_line_test.rb +15 -15
  93. data/test/business_central/object/purchase_invoice_test.rb +15 -15
  94. data/test/business_central/object/request_test.rb +17 -9
  95. data/test/business_central/object/response_test.rb +9 -7
  96. data/test/business_central/object/retained_earning_statement_test.rb +52 -0
  97. data/test/business_central/object/sales_credit_memo_line_test.rb +134 -0
  98. data/test/business_central/object/sales_credit_memo_test.rb +146 -0
  99. data/test/business_central/object/sales_invoice_line_test.rb +164 -0
  100. data/test/business_central/object/sales_invoice_test.rb +134 -0
  101. data/test/business_central/object/sales_order_line_test.rb +134 -0
  102. data/test/business_central/object/sales_order_test.rb +146 -0
  103. data/test/business_central/object/sales_quote_line_test.rb +134 -0
  104. data/test/business_central/object/sales_quote_test.rb +146 -0
  105. data/test/business_central/object/shipment_method_test.rb +133 -0
  106. data/test/business_central/object/subscription_test.rb +126 -0
  107. data/test/business_central/object/tax_area_test.rb +126 -0
  108. data/test/business_central/object/tax_group_test.rb +126 -0
  109. data/test/business_central/object/time_registration_entry_test.rb +126 -0
  110. data/test/business_central/object/trial_balance_test.rb +82 -0
  111. data/test/business_central/object/units_of_measure_test.rb +126 -0
  112. data/test/business_central/object/validation_test.rb +5 -4
  113. data/test/business_central/object/vendor_purchase_test.rb +82 -0
  114. data/test/business_central/object/vendor_test.rb +16 -16
  115. data/test/business_central/web_service_test.rb +95 -0
  116. data/test/business_central_test.rb +3 -1
  117. data/test/test_helper.rb +12 -6
  118. metadata +132 -33
@@ -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,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
- 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
@@ -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