rconomic 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +40 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +14 -3
  5. data/CHANGELOG.md +28 -0
  6. data/Gemfile +5 -4
  7. data/Guardfile +9 -4
  8. data/README.md +23 -4
  9. data/Rakefile +5 -5
  10. data/gemfiles/Gemfile.ruby-2.0 +14 -0
  11. data/lib/economic/account.rb +3 -3
  12. data/lib/economic/cash_book.rb +4 -7
  13. data/lib/economic/cash_book_entry.rb +4 -24
  14. data/lib/economic/company.rb +61 -0
  15. data/lib/economic/creditor.rb +4 -5
  16. data/lib/economic/creditor_contact.rb +5 -6
  17. data/lib/economic/creditor_entry.rb +1 -3
  18. data/lib/economic/current_invoice.rb +14 -21
  19. data/lib/economic/current_invoice_line.rb +4 -13
  20. data/lib/economic/debtor.rb +10 -11
  21. data/lib/economic/debtor_contact.rb +7 -8
  22. data/lib/economic/debtor_entry.rb +1 -3
  23. data/lib/economic/endpoint.rb +36 -6
  24. data/lib/economic/entity/handle.rb +54 -29
  25. data/lib/economic/entity/mapper.rb +1 -1
  26. data/lib/economic/entity.rb +26 -29
  27. data/lib/economic/entry.rb +1 -2
  28. data/lib/economic/invoice.rb +15 -8
  29. data/lib/economic/order.rb +2 -4
  30. data/lib/economic/product.rb +73 -0
  31. data/lib/economic/proxies/account_proxy.rb +2 -4
  32. data/lib/economic/proxies/actions/debtor_contact/all.rb +63 -0
  33. data/lib/economic/proxies/actions/find_by_ci_number.rb +1 -3
  34. data/lib/economic/proxies/actions/find_by_date_interval.rb +3 -6
  35. data/lib/economic/proxies/actions/find_by_handle_with_number.rb +1 -1
  36. data/lib/economic/proxies/actions/find_by_name.rb +1 -1
  37. data/lib/economic/proxies/actions/find_by_number.rb +2 -4
  38. data/lib/economic/proxies/actions/find_by_telephone_and_fax_number.rb +1 -3
  39. data/lib/economic/proxies/cash_book_entry_proxy.rb +19 -22
  40. data/lib/economic/proxies/cash_book_proxy.rb +5 -10
  41. data/lib/economic/proxies/company_proxy.rb +9 -0
  42. data/lib/economic/proxies/creditor_contact_proxy.rb +2 -2
  43. data/lib/economic/proxies/creditor_entry_proxy.rb +8 -14
  44. data/lib/economic/proxies/creditor_proxy.rb +8 -11
  45. data/lib/economic/proxies/current_invoice_line_proxy.rb +2 -2
  46. data/lib/economic/proxies/current_invoice_proxy.rb +3 -3
  47. data/lib/economic/proxies/debtor_contact_proxy.rb +6 -2
  48. data/lib/economic/proxies/debtor_entry_proxy.rb +6 -10
  49. data/lib/economic/proxies/debtor_proxy.rb +40 -55
  50. data/lib/economic/proxies/entity_proxy.rb +15 -15
  51. data/lib/economic/proxies/entry_proxy.rb +10 -16
  52. data/lib/economic/proxies/invoice_proxy.rb +3 -3
  53. data/lib/economic/proxies/order_proxy.rb +3 -3
  54. data/lib/economic/proxies/product_proxy.rb +11 -0
  55. data/lib/economic/session.rb +48 -21
  56. data/lib/economic/support/string.rb +5 -5
  57. data/lib/rconomic/version.rb +1 -1
  58. data/lib/rconomic.rb +39 -34
  59. data/lib/savon_ext/request.rb +17 -0
  60. data/rconomic.gemspec +8 -7
  61. data/spec/economic/account_spec.rb +3 -3
  62. data/spec/economic/cash_book_entry_spec.rb +26 -3
  63. data/spec/economic/cash_book_spec.rb +7 -7
  64. data/spec/economic/company_spec.rb +20 -0
  65. data/spec/economic/creditor_contact_spec.rb +4 -5
  66. data/spec/economic/creditor_entry_spec.rb +20 -0
  67. data/spec/economic/creditor_spec.rb +3 -3
  68. data/spec/economic/current_invoice_line_spec.rb +3 -3
  69. data/spec/economic/current_invoice_spec.rb +19 -19
  70. data/spec/economic/debtor_contact_spec.rb +4 -5
  71. data/spec/economic/debtor_entry_spec.rb +1 -1
  72. data/spec/economic/debtor_spec.rb +13 -13
  73. data/spec/economic/endpoint_spec.rb +27 -11
  74. data/spec/economic/entity/handle_spec.rb +10 -23
  75. data/spec/economic/entity/mapper_spec.rb +26 -30
  76. data/spec/economic/entity_spec.rb +36 -31
  77. data/spec/economic/entry_spec.rb +1 -1
  78. data/spec/economic/invoice_spec.rb +49 -7
  79. data/spec/economic/order_spec.rb +4 -4
  80. data/spec/economic/product_spec.rb +72 -0
  81. data/spec/economic/proxies/account_proxy_spec.rb +74 -0
  82. data/spec/economic/proxies/actions/debtor_contact/all_spec.rb +26 -0
  83. data/spec/economic/proxies/actions/find_by_name_spec.rb +6 -7
  84. data/spec/economic/proxies/cash_book_entry_proxy_spec.rb +27 -29
  85. data/spec/economic/proxies/cash_book_proxy_spec.rb +14 -22
  86. data/spec/economic/proxies/company_proxy_spec.rb +47 -0
  87. data/spec/economic/proxies/creditor_contact_proxy_spec.rb +11 -5
  88. data/spec/economic/proxies/creditor_entry_proxy_spec.rb +12 -12
  89. data/spec/economic/proxies/creditor_proxy_spec.rb +15 -15
  90. data/spec/economic/proxies/current_invoice_line_proxy_spec.rb +10 -4
  91. data/spec/economic/proxies/current_invoice_proxy_spec.rb +37 -19
  92. data/spec/economic/proxies/debtor_contact_proxy_spec.rb +8 -4
  93. data/spec/economic/proxies/debtor_entry_proxy_spec.rb +21 -11
  94. data/spec/economic/proxies/debtor_proxy_spec.rb +81 -40
  95. data/spec/economic/proxies/entry_proxy_spec.rb +17 -14
  96. data/spec/economic/proxies/invoice_proxy_spec.rb +24 -10
  97. data/spec/economic/proxies/order_proxy_spec.rb +20 -10
  98. data/spec/economic/proxies/product_proxy_spec.rb +86 -0
  99. data/spec/economic/session_spec.rb +74 -35
  100. data/spec/fixtures/account_get_all/multiple.xml +15 -0
  101. data/spec/fixtures/account_get_all/none.xml +8 -0
  102. data/spec/fixtures/account_get_all/single.xml +12 -0
  103. data/spec/fixtures/account_get_data_array/multiple.xml +69 -0
  104. data/spec/fixtures/company_get/success.xml +10 -0
  105. data/spec/fixtures/company_get_data/success.xml +32 -0
  106. data/spec/fixtures/current_invoice_line_create_from_data/success.xml +6 -37
  107. data/spec/fixtures/debtor_create_from_data/success.xml +5 -52
  108. data/spec/fixtures/debtor_get_orders/none.xml +9 -0
  109. data/spec/fixtures/product_create_from_data/success.xml +37 -0
  110. data/spec/fixtures/product_find_by_number/found.xml +10 -0
  111. data/spec/fixtures/product_find_by_number/not_found.xml +6 -0
  112. data/spec/fixtures/product_get_all/multiple.xml +15 -0
  113. data/spec/fixtures/product_get_all/single.xml +12 -0
  114. data/spec/fixtures/product_get_data/success.xml +37 -0
  115. data/spec/fixtures/product_get_data_array/multiple.xml +69 -0
  116. data/spec/spec_helper.rb +6 -9
  117. data/spec/support/factories.rb +14 -14
  118. metadata +54 -9
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CreditorProxy do
4
4
  let(:session) { make_session }
@@ -12,30 +12,30 @@ describe Economic::CreditorProxy do
12
12
 
13
13
  describe "find" do
14
14
  it "gets creditor data from API" do
15
- mock_request('Creditor_GetData', {'entityHandle' => {'Number' => 42}}, :success)
15
+ mock_request("Creditor_GetData", {"entityHandle" => {"Number" => 42}}, :success)
16
16
  subject.find(42)
17
17
  end
18
18
 
19
19
  it "returns Creditor object" do
20
- stub_request('Creditor_GetData', nil, :success)
20
+ stub_request("Creditor_GetData", nil, :success)
21
21
  expect(subject.find(42)).to be_instance_of(Economic::Creditor)
22
22
  end
23
23
  end
24
24
 
25
25
  describe "find_by_number" do
26
26
  it "can find a creditor" do
27
- mock_request('Creditor_FindByNumber', {'number' => '1'}, :found)
28
- result = subject.find_by_number('1')
27
+ mock_request("Creditor_FindByNumber", {"number" => "1"}, :found)
28
+ result = subject.find_by_number("1")
29
29
  expect(result).to be_instance_of(Economic::Creditor)
30
- expect(result.number).to eq(1)
31
- expect(result.partial).to be_true
32
- expect(result.persisted).to be_true
33
- expect(result.handle).to eq(Economic::Entity::Handle.new({ :number => 1 }))
30
+ expect(result.partial).to be_truthy
31
+ expect(result.persisted).to be_truthy
32
+ expect(result.number).to eq("1")
33
+ expect(result.handle).to eq(Economic::Entity::Handle.new(:number => "1"))
34
34
  end
35
35
 
36
36
  it "returns nil when there is no creditor" do
37
- mock_request('Creditor_FindByNumber', {'number' => '1'}, :not_found)
38
- result = subject.find_by_number('1')
37
+ mock_request("Creditor_FindByNumber", {"number" => "1"}, :not_found)
38
+ result = subject.find_by_number("1")
39
39
  expect(result).to be_nil
40
40
  end
41
41
  end
@@ -60,16 +60,16 @@ describe Economic::CreditorProxy do
60
60
 
61
61
  describe ".all" do
62
62
  it "returns a single creditor" do
63
- stub_request('Creditor_GetAll', nil, :single)
64
- mock_request('Creditor_GetData', {'entityHandle' => {'Number' => 1}}, :success)
63
+ stub_request("Creditor_GetAll", nil, :single)
64
+ mock_request("Creditor_GetData", {"entityHandle" => {"Number" => "1"}}, :success)
65
65
  all = subject.all
66
66
  expect(all.size).to eq(1)
67
67
  expect(all.first).to be_instance_of(Economic::Creditor)
68
68
  end
69
69
 
70
70
  it "returns multiple creditors" do
71
- mock_request('Creditor_GetAll', nil, :multiple)
72
- stub_request('Creditor_GetDataArray', nil, :multiple)
71
+ mock_request("Creditor_GetAll", nil, :multiple)
72
+ stub_request("Creditor_GetDataArray", nil, :multiple)
73
73
  all = subject.all
74
74
  expect(all.size).to eq(2)
75
75
  expect(all.first).to be_instance_of(Economic::Creditor)
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CurrentInvoiceLineProxy do
4
4
  let(:session) { make_session }
@@ -58,12 +58,16 @@ describe Economic::CurrentInvoiceLineProxy do
58
58
 
59
59
  describe ".find" do
60
60
  it "gets invoice_line data from API" do
61
- mock_request('CurrentInvoiceLine_GetData', {'entityHandle' => {'Number' => 42}}, :success)
61
+ mock_request(
62
+ "CurrentInvoiceLine_GetData",
63
+ {"entityHandle" => {"Number" => 42}},
64
+ :success
65
+ )
62
66
  subject.find(42)
63
67
  end
64
68
 
65
69
  it "returns CurrentInvoiceLine object" do
66
- stub_request('CurrentInvoiceLine_GetData', nil, :success)
70
+ stub_request("CurrentInvoiceLine_GetData", nil, :success)
67
71
  expect(subject.find(42)).to be_instance_of(Economic::CurrentInvoiceLine)
68
72
  end
69
73
  end
@@ -82,7 +86,9 @@ describe Economic::CurrentInvoiceLineProxy do
82
86
  it "can be iterated over" do
83
87
  line = Economic::CurrentInvoiceLine.new
84
88
  subject << line
85
- expect(subject.all? { |l| l.is_a?(Economic::CurrentInvoiceLine) }).to be_true
89
+ expect(subject.all? { |l|
90
+ l.is_a?(Economic::CurrentInvoiceLine)
91
+ }).to be_truthy
86
92
  end
87
93
  end
88
94
  end
@@ -1,7 +1,6 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CurrentInvoiceProxy do
4
-
5
4
  let(:session) { make_session }
6
5
  subject { Economic::CurrentInvoiceProxy.new(session) }
7
6
 
@@ -41,7 +40,9 @@ describe Economic::CurrentInvoiceProxy do
41
40
  expect(invoice.debtor_city).to eq(debtor.city)
42
41
 
43
42
  expect(invoice.debtor_handle).to eq(debtor.handle)
44
- expect(invoice.term_of_payment_handle).to eq(debtor.term_of_payment_handle)
43
+ expect(invoice.term_of_payment_handle).to eq(
44
+ debtor.term_of_payment_handle
45
+ )
45
46
  expect(invoice.layout_handle).to eq(debtor.layout_handle)
46
47
  expect(invoice.currency_handle).to eq(debtor.currency_handle)
47
48
  end
@@ -50,12 +51,16 @@ describe Economic::CurrentInvoiceProxy do
50
51
 
51
52
  describe ".find" do
52
53
  it "gets invoice data from API" do
53
- mock_request('CurrentInvoice_GetData', {'entityHandle' => {'Id' => 42}}, :success)
54
+ mock_request(
55
+ "CurrentInvoice_GetData",
56
+ {"entityHandle" => {"Id" => 42}},
57
+ :success
58
+ )
54
59
  subject.find(42)
55
60
  end
56
61
 
57
62
  it "returns CurrentInvoice object" do
58
- stub_request('CurrentInvoice_GetData', nil, :success)
63
+ stub_request("CurrentInvoice_GetData", nil, :success)
59
64
  expect(subject.find(42)).to be_instance_of(Economic::CurrentInvoice)
60
65
  end
61
66
  end
@@ -65,39 +70,53 @@ describe Economic::CurrentInvoiceProxy do
65
70
  let(:unto) { Time.now }
66
71
 
67
72
  it "should be able to return a single current invoice" do
68
- mock_request('CurrentInvoice_FindByDateInterval', {'first' => from.iso8601, 'last' => unto.iso8601}, :single)
69
- stub_request('CurrentInvoice_GetDataArray', nil, :single)
73
+ mock_request(
74
+ "CurrentInvoice_FindByDateInterval",
75
+ {"first" => from.iso8601, "last" => unto.iso8601},
76
+ :single
77
+ )
78
+ stub_request("CurrentInvoice_GetDataArray", nil, :single)
70
79
  results = subject.find_by_date_interval(from, unto)
71
80
  expect(results.size).to eq(1)
72
81
  expect(results.first).to be_instance_of(Economic::CurrentInvoice)
73
82
  end
74
83
 
75
84
  it "should be able to return multiple invoices" do
76
- mock_request('CurrentInvoice_FindByDateInterval', {'first' => from.iso8601, 'last' => unto.iso8601}, :many)
77
- stub_request('CurrentInvoice_GetDataArray', nil, :multiple)
85
+ mock_request(
86
+ "CurrentInvoice_FindByDateInterval",
87
+ {"first" => from.iso8601, "last" => unto.iso8601},
88
+ :many
89
+ )
90
+ stub_request("CurrentInvoice_GetDataArray", nil, :multiple)
78
91
  results = subject.find_by_date_interval(from, unto)
79
92
  expect(results.size).to eq(2)
80
93
  expect(results.first).to be_instance_of(Economic::CurrentInvoice)
81
94
  end
82
95
 
83
96
  it "should be able to return nothing" do
84
- mock_request('CurrentInvoice_FindByDateInterval', {'first' => from.iso8601, 'last' => unto.iso8601}, :none)
97
+ mock_request(
98
+ "CurrentInvoice_FindByDateInterval",
99
+ {"first" => from.iso8601, "last" => unto.iso8601},
100
+ :none
101
+ )
85
102
  results = subject.find_by_date_interval(from, unto)
86
103
  expect(results.size).to eq(0)
87
104
  end
88
-
89
105
  end
90
-
91
- describe ".all" do
92
106
 
107
+ describe ".all" do
93
108
  it "returns an empty array when there are no current invoices" do
94
- stub_request('CurrentInvoice_GetAll', nil, :none)
109
+ stub_request("CurrentInvoice_GetAll", nil, :none)
95
110
  expect(subject.all.size).to eq(0)
96
111
  end
97
112
 
98
113
  it "finds and adds a single current invoice" do
99
- stub_request('CurrentInvoice_GetAll', nil, :single)
100
- mock_request('CurrentInvoice_GetData', {'entityHandle' => {'Id' => 1}}, :success)
114
+ stub_request("CurrentInvoice_GetAll", nil, :single)
115
+ mock_request(
116
+ "CurrentInvoice_GetData",
117
+ {"entityHandle" => {"Id" => 1}},
118
+ :success
119
+ )
101
120
 
102
121
  current_invoices = subject.all
103
122
  expect(current_invoices).to be_instance_of(Economic::CurrentInvoiceProxy)
@@ -107,14 +126,13 @@ describe Economic::CurrentInvoiceProxy do
107
126
  end
108
127
 
109
128
  it "adds multiple current invoices" do
110
- stub_request('CurrentInvoice_GetAll', nil, :multiple)
111
- stub_request('CurrentInvoice_GetDataArray', nil, :multiple)
129
+ stub_request("CurrentInvoice_GetAll", nil, :multiple)
130
+ stub_request("CurrentInvoice_GetDataArray", nil, :multiple)
112
131
 
113
132
  current_invoices = subject.all
114
133
  expect(current_invoices.size).to eq(2)
115
134
  expect(current_invoices.first).to be_instance_of(Economic::CurrentInvoice)
116
135
  expect(current_invoices.last).to be_instance_of(Economic::CurrentInvoice)
117
136
  end
118
-
119
137
  end
120
138
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::DebtorContactProxy do
4
4
  let(:session) { make_session }
@@ -40,12 +40,16 @@ describe Economic::DebtorContactProxy do
40
40
 
41
41
  describe ".find" do
42
42
  it "gets contact data from API" do
43
- mock_request('DebtorContact_GetData', {'entityHandle' => {'Id' => 42}}, :success)
43
+ mock_request(
44
+ "DebtorContact_GetData",
45
+ {"entityHandle" => {"Id" => 42}},
46
+ :success
47
+ )
44
48
  subject.find(42)
45
49
  end
46
50
 
47
51
  it "returns DebtorContact object" do
48
- stub_request('DebtorContact_GetData', nil, :success)
52
+ stub_request("DebtorContact_GetData", nil, :success)
49
53
  expect(subject.find(42)).to be_instance_of(Economic::DebtorContact)
50
54
  end
51
55
  end
@@ -54,7 +58,7 @@ describe Economic::DebtorContactProxy do
54
58
  it "uses the FindByName command" do
55
59
  expect(Economic::Proxies::Actions::FindByName).to receive(:new).
56
60
  with(subject, "Bob").
57
- and_return(lambda { "Result" })
61
+ and_return(-> { "Result" })
58
62
  expect(subject.find_by_name("Bob")).to eq("Result")
59
63
  end
60
64
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::DebtorEntryProxy do
4
4
  let(:session) { make_session }
@@ -11,24 +11,32 @@ describe Economic::DebtorEntryProxy do
11
11
  end
12
12
 
13
13
  describe "#find_by_invoice_number" do
14
- it 'should be able to find multiple debtor entries' do
15
- mock_request("DebtorEntry_FindByInvoiceNumber", {'from' => '123', 'to' => '456'}, :many)
16
- expect(subject.find_by_invoice_number('123', '456')).to eq([1, 2])
14
+ it "should be able to find multiple debtor entries" do
15
+ mock_request(
16
+ "DebtorEntry_FindByInvoiceNumber",
17
+ {"from" => "123", "to" => "456"},
18
+ :many
19
+ )
20
+ expect(subject.find_by_invoice_number("123", "456")).to eq([1, 2])
17
21
  end
18
22
 
19
- it 'should be able to find debtor entries with one invoice id' do
20
- mock_request("DebtorEntry_FindByInvoiceNumber", {'from' => '123', 'to' => '123'}, :many)
21
- expect(subject.find_by_invoice_number('123')).to eq([1, 2])
23
+ it "should be able to find debtor entries with one invoice id" do
24
+ mock_request(
25
+ "DebtorEntry_FindByInvoiceNumber",
26
+ {"from" => "123", "to" => "123"},
27
+ :many
28
+ )
29
+ expect(subject.find_by_invoice_number("123")).to eq([1, 2])
22
30
  end
23
31
 
24
- it 'should handle a single serial number in the response' do
32
+ it "should handle a single serial number in the response" do
25
33
  stub_request("DebtorEntry_FindByInvoiceNumber", nil, :single)
26
- expect(subject.find_by_invoice_number('123')).to eq([1])
34
+ expect(subject.find_by_invoice_number("123")).to eq([1])
27
35
  end
28
36
  end
29
37
 
30
38
  describe "#match" do
31
- it 'should match two debtor entries by serial numbers' do
39
+ it "should match two debtor entries by serial numbers" do
32
40
  stub_request(
33
41
  "DebtorEntry_MatchEntries",
34
42
  {:entries => {
@@ -45,7 +53,9 @@ describe Economic::DebtorEntryProxy do
45
53
 
46
54
  describe "#entity_class" do
47
55
  it "should return Economic::DebtorEntry" do
48
- expect(Economic::DebtorEntryProxy.entity_class).to eq(Economic::DebtorEntry)
56
+ expect(
57
+ Economic::DebtorEntryProxy.entity_class
58
+ ).to eq(Economic::DebtorEntry)
49
59
  end
50
60
  end
51
61
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::DebtorProxy do
4
4
  let(:session) { make_session }
@@ -12,32 +12,42 @@ describe Economic::DebtorProxy do
12
12
 
13
13
  describe "find" do
14
14
  it "gets debtor data from API" do
15
- mock_request('Debtor_GetData', {'entityHandle' => {'Number' => 42}}, :success)
15
+ mock_request(
16
+ "Debtor_GetData",
17
+ {"entityHandle" => {"Number" => 42}},
18
+ :success
19
+ )
16
20
  subject.find(42)
17
21
  end
18
22
 
19
23
  it "returns Debtor object" do
20
- stub_request('Debtor_GetData', nil, :success)
24
+ stub_request("Debtor_GetData", nil, :success)
21
25
  expect(subject.find(42)).to be_instance_of(Economic::Debtor)
22
26
  end
23
27
  end
24
28
 
25
29
  describe "find_by_ci_number" do
26
30
  it "uses FindByCINumber on API" do
27
- mock_request('Debtor_FindByCINumber', {'ciNumber' => '12345678'}, :many)
28
- subject.find_by_ci_number('12345678')
31
+ mock_request(
32
+ "Debtor_FindByCINumber",
33
+ {"ciNumber" => "12345678"},
34
+ :many
35
+ )
36
+ subject.find_by_ci_number("12345678")
29
37
  end
30
38
 
31
39
  context "when many debtors exist" do
32
40
  before :each do
33
- stub_request('Debtor_FindByCINumber', nil, :many)
41
+ stub_request("Debtor_FindByCINumber", nil, :many)
34
42
  end
35
43
 
36
- let(:results) { subject.find_by_ci_number('12345678') }
44
+ let(:results) { subject.find_by_ci_number("12345678") }
37
45
 
38
46
  it "returns a Debtor object for each result" do
39
47
  expect(results.size).to eq(2)
40
- results.all? { |result| expect(result).to be_instance_of(Economic::Debtor) }
48
+ results.all? { |result|
49
+ expect(result).to be_instance_of(Economic::Debtor)
50
+ }
41
51
  end
42
52
 
43
53
  it "returns partial Debtor objects" do
@@ -52,43 +62,51 @@ describe Economic::DebtorProxy do
52
62
 
53
63
  describe "find_by_number" do
54
64
  it "can find a debtor" do
55
- mock_request('Debtor_FindByNumber', {'number' => '1'}, :found)
56
- result = subject.find_by_number('1')
65
+ mock_request("Debtor_FindByNumber", {"number" => "1"}, :found)
66
+ result = subject.find_by_number("1")
57
67
  expect(result).to be_instance_of(Economic::Debtor)
58
- expect(result.number).to eq(1)
59
- expect(result.partial).to be_true
60
- expect(result.persisted).to be_true
61
- expect(result.handle).to eq(Economic::Entity::Handle.new({:number => 1}))
68
+ expect(result.partial).to be_truthy
69
+ expect(result.persisted).to be_truthy
70
+ expect(result.number).to eq("1")
71
+ expect(result.handle).to eq(Economic::Entity::Handle.new(:number => "1"))
62
72
  end
63
73
 
64
74
  it "returns nil when there is no debtor" do
65
- mock_request('Debtor_FindByNumber', {'number' => '1'}, :not_found)
66
- result = subject.find_by_number('1')
75
+ mock_request("Debtor_FindByNumber", {"number" => "1"}, :not_found)
76
+ result = subject.find_by_number("1")
67
77
  expect(result).to be_nil
68
78
  end
69
79
  end
70
80
 
71
81
  describe "find_by_telephone_and_fax_number" do
72
82
  it "can find a debtor" do
73
- mock_request('Debtor_FindByTelephoneAndFaxNumber', {'telephoneAndFaxNumber' => '22334455'}, :found)
74
- result = subject.find_by_telephone_and_fax_number('22334455')
83
+ mock_request(
84
+ "Debtor_FindByTelephoneAndFaxNumber",
85
+ {"telephoneAndFaxNumber" => "22334455"},
86
+ :found
87
+ )
88
+ result = subject.find_by_telephone_and_fax_number("22334455")
75
89
  expect(result).to be_instance_of(Economic::Debtor)
76
90
  expect(result.number).to eq(1)
77
- expect(result.partial).to be_true
78
- expect(result.persisted).to be_true
91
+ expect(result.partial).to be_truthy
92
+ expect(result.persisted).to be_truthy
79
93
  end
80
94
 
81
95
  it "returns nil when there is no debtor" do
82
- mock_request('Debtor_FindByTelephoneAndFaxNumber', {'telephoneAndFaxNumber' => '22334455'}, :not_found)
83
- result = subject.find_by_telephone_and_fax_number('22334455')
96
+ mock_request(
97
+ "Debtor_FindByTelephoneAndFaxNumber",
98
+ {"telephoneAndFaxNumber" => "22334455"},
99
+ :not_found
100
+ )
101
+ result = subject.find_by_telephone_and_fax_number("22334455")
84
102
  expect(result).to be_nil
85
103
  end
86
104
  end
87
105
 
88
106
  describe "next_available_number" do
89
107
  it "gets the next available debtor number from API" do
90
- mock_request('Debtor_GetNextAvailableNumber', nil, :success)
91
- expect(subject.next_available_number).to eq('105')
108
+ mock_request("Debtor_GetNextAvailableNumber", nil, :success)
109
+ expect(subject.next_available_number).to eq("105")
92
110
  end
93
111
  end
94
112
 
@@ -110,20 +128,24 @@ describe Economic::DebtorProxy do
110
128
  end
111
129
  end
112
130
 
113
- # Complete specs in current_invoice, no point in duplicating them here, just ensuring that
114
- # it handles debtors "Number" id.
131
+ # Complete specs in current_invoice, no point in duplicating them here, just
132
+ # ensuring that it handles debtors "Number" id.
115
133
  describe ".all" do
116
134
  it "returns a single debtor" do
117
- mock_request('Debtor_GetAll', nil, :single)
118
- mock_request('Debtor_GetData', {'entityHandle' => {'Number' => 1}}, :success)
135
+ mock_request("Debtor_GetAll", nil, :single)
136
+ mock_request(
137
+ "Debtor_GetData",
138
+ {"entityHandle" => {"Number" => "1"}},
139
+ :success
140
+ )
119
141
  all = subject.all
120
142
  expect(all.size).to eq(1)
121
143
  expect(all.first).to be_instance_of(Economic::Debtor)
122
144
  end
123
145
 
124
146
  it "returns multiple debtors" do
125
- mock_request('Debtor_GetAll', nil, :multiple)
126
- mock_request('Debtor_GetDataArray', :any, :multiple)
147
+ mock_request("Debtor_GetAll", nil, :multiple)
148
+ mock_request("Debtor_GetDataArray", :any, :multiple)
127
149
  all = subject.all
128
150
  expect(all.size).to eq(2)
129
151
  expect(all.first).to be_instance_of(Economic::Debtor)
@@ -131,14 +153,18 @@ describe Economic::DebtorProxy do
131
153
  end
132
154
 
133
155
  describe ".get_debtor_contacts" do
134
- let(:handle) { Economic::Entity::Handle.new({:number => 1}) }
156
+ let(:handle) { Economic::Entity::Handle.new(:number => 1) }
135
157
  it "gets debtor contact data from API" do
136
- mock_request('Debtor_GetDebtorContacts', {"debtorHandle"=>{"Number"=>1}}, :multiple)
158
+ mock_request(
159
+ "Debtor_GetDebtorContacts",
160
+ {"debtorHandle" => {"Number" => 1}},
161
+ :multiple
162
+ )
137
163
  subject.get_debtor_contacts(handle)
138
164
  end
139
165
 
140
166
  it "returns DebtorContact objects" do
141
- stub_request('Debtor_GetDebtorContacts', nil, :multiple)
167
+ stub_request("Debtor_GetDebtorContacts", nil, :multiple)
142
168
  subject.get_debtor_contacts(handle).each do |d|
143
169
  expect(d).to be_instance_of(Economic::DebtorContact)
144
170
  end
@@ -146,14 +172,18 @@ describe Economic::DebtorProxy do
146
172
  end
147
173
 
148
174
  describe ".get_invoices" do
149
- let(:handle) { Economic::Entity::Handle.new({:number => 1}) }
175
+ let(:handle) { Economic::Entity::Handle.new(:number => 1) }
150
176
  it "gets invoice data from API" do
151
- mock_request('Debtor_GetInvoices', {"debtorHandle"=>{"Number"=>1}}, :success)
177
+ mock_request(
178
+ "Debtor_GetInvoices",
179
+ {"debtorHandle" => {"Number" => 1}},
180
+ :success
181
+ )
152
182
  subject.get_invoices(handle)
153
183
  end
154
184
 
155
185
  it "returns Invoice object" do
156
- stub_request('Debtor_GetInvoices', nil, :success)
186
+ stub_request("Debtor_GetInvoices", nil, :success)
157
187
  subject.get_invoices(handle).each do |i|
158
188
  expect(i).to be_instance_of(Economic::Invoice)
159
189
  end
@@ -161,24 +191,35 @@ describe Economic::DebtorProxy do
161
191
  end
162
192
 
163
193
  describe ".get_order" do
164
- let(:handle) { Economic::Entity::Handle.new({:number => 1}) }
194
+ let(:handle) { Economic::Entity::Handle.new(:number => 1) }
165
195
  it "gets invoice data from API" do
166
- mock_request('Debtor_GetOrders', {"debtorHandle"=>{"Number"=>1}}, :success)
196
+ mock_request(
197
+ "Debtor_GetOrders",
198
+ {"debtorHandle" => {"Number" => 1}},
199
+ :success
200
+ )
167
201
  subject.get_orders(handle)
168
202
  end
169
203
 
170
204
  it "returns Order object" do
171
- stub_request('Debtor_GetOrders', nil, :success)
205
+ stub_request("Debtor_GetOrders", nil, :success)
172
206
  subject.get_orders(handle).each do |i|
173
207
  expect(i).to be_instance_of(Economic::Order)
174
208
  end
175
209
  end
176
210
 
177
211
  it "sets the number" do
178
- stub_request('Debtor_GetOrders', nil, :success)
212
+ stub_request("Debtor_GetOrders", nil, :success)
179
213
  subject.get_orders(handle).each do |i|
180
214
  expect(i.number).to eq(1)
181
215
  end
182
216
  end
217
+
218
+ it "returns nil if no orders are found" do
219
+ stub_request("Debtor_GetOrders", nil, :none)
220
+ expect(
221
+ subject.get_orders(handle)
222
+ ).to be_nil
223
+ end
183
224
  end
184
225
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::EntryProxy do
4
4
  let(:session) { make_session }
@@ -11,60 +11,64 @@ describe Economic::EntryProxy do
11
11
  end
12
12
 
13
13
  describe "#find_by_date_interval" do
14
- it 'should be able to find multiple entries' do
14
+ it "should be able to find multiple entries" do
15
15
  from_date = Date.new
16
16
  to_date = Date.new
17
17
  mock_request(
18
18
  "Entry_FindByDateInterval",
19
- {'fromDate' => from_date, 'toDate' => to_date},
19
+ {"fromDate" => from_date, "toDate" => to_date},
20
20
  :many
21
21
  )
22
22
  expect(subject.find_by_date_interval(from_date, to_date)).to eq([1, 2])
23
23
  end
24
24
 
25
- it 'should handle a single serial number in the response' do
25
+ it "should handle a single serial number in the response" do
26
26
  stub_request("Entry_FindByDateInterval", nil, :single)
27
27
  expect(subject.find_by_date_interval(Date.new, Date.new)).to eq([1])
28
28
  end
29
29
 
30
- it 'should handle an empty response' do
30
+ it "should handle an empty response" do
31
31
  stub_request("Entry_FindByDateInterval", nil, :none)
32
32
  expect(subject.find_by_date_interval(Date.new, Date.new)).to eq([])
33
33
  end
34
34
  end
35
35
 
36
36
  describe "#find_by_serial_number_interval" do
37
- it 'should be able to find multiple entries' do
37
+ it "should be able to find multiple entries" do
38
38
  mock_request(
39
39
  "Entry_FindBySerialNumberInterval",
40
- {'minNumber' => 123, 'maxNumber' => 456},
40
+ {"minNumber" => 123, "maxNumber" => 456},
41
41
  :many
42
42
  )
43
43
  expect(subject.find_by_serial_number_interval(123, 456)).to eq([1, 2])
44
44
  end
45
45
 
46
- it 'should handle a single serial number in the response' do
46
+ it "should handle a single serial number in the response" do
47
47
  stub_request("Entry_FindBySerialNumberInterval", nil, :single)
48
48
  expect(subject.find_by_serial_number_interval(123, 456)).to eq([1])
49
49
  end
50
50
 
51
- it 'should handle an empty response' do
51
+ it "should handle an empty response" do
52
52
  stub_request("Entry_FindBySerialNumberInterval", nil, :none)
53
53
  expect(subject.find_by_serial_number_interval(123, 456)).to eq([])
54
54
  end
55
55
  end
56
56
 
57
57
  describe "#get_last_used_serial_number" do
58
- it 'returns the number' do
58
+ it "returns the number" do
59
59
  mock_request("Entry_GetLastUsedSerialNumber", nil, :success)
60
60
  expect(subject.get_last_used_serial_number).to eq(123)
61
61
  end
62
62
  end
63
63
 
64
64
  describe "#find" do
65
- it 'should get a entry by serial number' do
66
- mock_request("Entry_GetData", {'entityHandle' => { 'SerialNumber' => '123' }}, :success)
67
- expect(subject.find('123')).to be_instance_of(Economic::Entry)
65
+ it "should get a entry by serial number" do
66
+ mock_request(
67
+ "Entry_GetData",
68
+ {"entityHandle" => {"SerialNumber" => "123"}},
69
+ :success
70
+ )
71
+ expect(subject.find("123")).to be_instance_of(Economic::Entry)
68
72
  end
69
73
  end
70
74
 
@@ -74,4 +78,3 @@ describe Economic::EntryProxy do
74
78
  end
75
79
  end
76
80
  end
77
-