rconomic 0.5.2 → 0.6.0

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/.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::Invoice do
4
4
  let(:session) { make_session }
@@ -9,9 +9,9 @@ describe Economic::Invoice do
9
9
  end
10
10
 
11
11
  describe '#remainder' do
12
- it 'should get the remainder' do
13
- mock_request('Invoice_GetRemainder', {"invoiceHandle" => { "Number" => 512 }}, :success)
14
- expect(subject.remainder).to eq("512.32")
12
+ it "should get the remainder" do
13
+ mock_request("Invoice_GetRemainder", {"invoiceHandle" => {"Number" => 512}}, :success)
14
+ expect(subject.remainder).to eq(512.32)
15
15
  end
16
16
  end
17
17
 
@@ -33,13 +33,13 @@ describe Economic::Invoice do
33
33
 
34
34
  describe "#pdf" do
35
35
  it "gets PDF data from API" do
36
- mock_request('Invoice_GetPdf', {'invoiceHandle' => {'Number' => 512}}, :success)
36
+ mock_request("Invoice_GetPdf", {"invoiceHandle" => {"Number" => 512}}, :success)
37
37
  subject.pdf
38
38
  end
39
39
 
40
40
  it "decodes the base64Binary encoded data" do
41
- stub_request('Invoice_GetPdf', nil, :success)
42
- expect(subject.pdf).to eq('This is not really PDF data')
41
+ stub_request("Invoice_GetPdf", nil, :success)
42
+ expect(subject.pdf).to eq("This is not really PDF data")
43
43
  end
44
44
  end
45
45
 
@@ -84,4 +84,46 @@ describe Economic::Invoice do
84
84
  expect(subject.debtor_handle).to eq(handle)
85
85
  end
86
86
  end
87
+
88
+ describe "#days_past_due" do
89
+ it "after date has passed" do
90
+ subject.due_date = (Date.today - 3).to_datetime
91
+ expect(subject.days_past_due).to eq(3)
92
+ end
93
+
94
+ it "before date has passed" do
95
+ subject.due_date = (Date.today + 3).to_datetime
96
+ expect(subject.days_past_due).to eq(0)
97
+ end
98
+ end
99
+
100
+ describe "#past_due?" do
101
+ it "when due date has passed and the invoiced hasn't been paid" do
102
+ subject.due_date = (Date.today - 3).to_datetime
103
+ subject.instance_variable_set "@remainder", 1
104
+
105
+ expect(subject.past_due?).to eq(true)
106
+ end
107
+
108
+ it "when due date has passed and the invoice has been paid" do
109
+ subject.due_date = (Date.today - 3).to_datetime
110
+ subject.instance_variable_set "@remainder", 0
111
+
112
+ expect(subject.past_due?).to eq(false)
113
+ end
114
+
115
+ it "before due date has passed and the invoiced hasn't been paid" do
116
+ subject.due_date = (Date.today + 3).to_datetime
117
+ subject.instance_variable_set "@remainder", 1
118
+
119
+ expect(subject.past_due?).to eq(false)
120
+ end
121
+
122
+ it "before due date has passed and the invoice has been paid" do
123
+ subject.due_date = (Date.today + 3).to_datetime
124
+ subject.instance_variable_set "@remainder", 0
125
+
126
+ expect(subject.past_due?).to eq(false)
127
+ end
128
+ end
87
129
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::Order do
4
4
  let(:session) { make_session }
@@ -26,13 +26,13 @@ describe Economic::Order do
26
26
 
27
27
  describe "#pdf" do
28
28
  it "gets PDF data from API" do
29
- mock_request('Order_GetPdf', {'orderHandle' => {'Number' => 512}}, :success)
29
+ mock_request("Order_GetPdf", {"orderHandle" => {"Number" => 512}}, :success)
30
30
  subject.pdf
31
31
  end
32
32
 
33
33
  it "decodes the base64Binary encoded data" do
34
- stub_request('Order_GetPdf', nil, :success)
35
- expect(subject.pdf).to eq('This is not really PDF data')
34
+ stub_request("Order_GetPdf", nil, :success)
35
+ expect(subject.pdf).to eq("This is not really PDF data")
36
36
  end
37
37
  end
38
38
 
@@ -0,0 +1,72 @@
1
+ require "./spec/spec_helper"
2
+
3
+ describe Economic::Product do
4
+ let(:session) { make_session }
5
+ subject { Economic::Product.new(:session => session) }
6
+
7
+ it "inherits from Economic::Entity" do
8
+ expect(Economic::Product.ancestors).to include(Economic::Entity)
9
+ end
10
+
11
+ describe "class methods" do
12
+ subject { Economic::Product }
13
+
14
+ describe ".proxy" do
15
+ it "should return ProductProxy" do
16
+ expect(subject.proxy).to eq(Economic::ProductProxy)
17
+ end
18
+ end
19
+
20
+ describe ".key" do
21
+ it "should == :product" do
22
+ expect(Economic::Product.key).to eq(:product)
23
+ end
24
+ end
25
+ end
26
+
27
+ describe ".proxy" do
28
+ it "should return a CreditorProxy" do
29
+ expect(subject.proxy).to be_instance_of(Economic::ProductProxy)
30
+ end
31
+
32
+ it "should return a proxy owned by session" do
33
+ expect(subject.proxy.session).to eq(session)
34
+ end
35
+ end
36
+
37
+ describe "#save" do
38
+ it "should save it" do
39
+ stub_request("Product_CreateFromData", nil, :success)
40
+ subject.save
41
+ end
42
+
43
+ it "builds and sends data to API" do
44
+ mock_request(
45
+ :product_create_from_data, {
46
+ "data" => {
47
+ "Handle" => {},
48
+ "Number" => nil,
49
+ "ProductGroupHandle" => {"Number" => 1},
50
+ "Name" => nil,
51
+ "SalesPrice" => nil,
52
+ "CostPrice" => nil,
53
+ "RecommendedPrice" => nil,
54
+ "UnitHandle" => {"Number" => 2},
55
+ "IsAccessible" => nil,
56
+ "Volume" => nil,
57
+ "DepartmentHandle" => {"Number" => 1},
58
+ "DistributionKeyHandle" => {"Number" => 314}
59
+ }
60
+ },
61
+ :success
62
+ )
63
+
64
+ subject.product_group_handle = Economic::Entity::Handle.new(:number => 1)
65
+ subject.unit_handle = Economic::Entity::Handle.new(:number => 2)
66
+ subject.department_handle = Economic::Entity::Handle.new(:number => 1)
67
+ subject.distribution_key_handle = Economic::Entity::Handle.new(:number => 314)
68
+
69
+ subject.save
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,74 @@
1
+ require "./spec/spec_helper"
2
+
3
+ describe Economic::AccountProxy do
4
+ let(:session) { make_session }
5
+ subject { Economic::AccountProxy.new(session) }
6
+
7
+ describe ".new" do
8
+ it "stores session" do
9
+ expect(subject.session).to equal(session)
10
+ end
11
+ end
12
+
13
+ describe ".build" do
14
+ it "instantiates a new Account" do
15
+ expect(subject.build).to be_instance_of(Economic::Account)
16
+ end
17
+
18
+ it "assigns the session to the Account" do
19
+ expect(subject.build.session).to equal(session)
20
+ end
21
+
22
+ it "should not build a partial Account" do
23
+ expect(subject.build).to_not be_partial
24
+ end
25
+ end
26
+
27
+ describe ".find" do
28
+ it "gets account data from API" do
29
+ mock_request(
30
+ "Account_GetData",
31
+ {"entityHandle" => {"Id" => 42}},
32
+ :success
33
+ )
34
+ subject.find(42)
35
+ end
36
+
37
+ it "returns Account object" do
38
+ stub_request("Account_GetData", nil, :success)
39
+ expect(subject.find(42)).to be_instance_of(Economic::Account)
40
+ end
41
+ end
42
+
43
+ describe ".all" do
44
+ it "returns an empty array when there are no accounts" do
45
+ stub_request("Account_GetAll", nil, :none)
46
+ expect(subject.all.size).to eq(0)
47
+ end
48
+
49
+ it "finds and adds a single account" do
50
+ stub_request("Account_GetAll", nil, :single)
51
+ mock_request(
52
+ "Account_GetData",
53
+ {"entityHandle" => {"Number" => "1"}},
54
+ :success
55
+ )
56
+
57
+ accounts = subject.all
58
+ expect(accounts).to be_instance_of(Economic::AccountProxy)
59
+
60
+ expect(accounts.size).to eq(1)
61
+ expect(accounts.first).to be_instance_of(Economic::Account)
62
+ end
63
+
64
+ it "adds multiple accounts" do
65
+ stub_request("Account_GetAll", nil, :multiple)
66
+ stub_request("Account_GetDataArray", nil, :multiple)
67
+
68
+ accounts = subject.all
69
+ expect(accounts.size).to eq(2)
70
+ expect(accounts.first).to be_instance_of(Economic::Account)
71
+ expect(accounts.last).to be_instance_of(Economic::Account)
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,26 @@
1
+ require "./spec/spec_helper"
2
+
3
+ describe Economic::Proxies::Actions::DebtorContact::All do
4
+ let(:session) { make_session }
5
+ let(:proxy) { Economic::DebtorContactProxy.new(session) }
6
+
7
+ subject {
8
+ Economic::Proxies::Actions::DebtorContact::All.new(proxy)
9
+ }
10
+
11
+ before :each do
12
+ allow(session).to receive(:number) { 123 }
13
+ end
14
+
15
+ describe "#call" do
16
+ it "returns debtor contacts" do
17
+ stub_request("Debtor_GetDebtorContacts", nil, :multiple)
18
+ expect(subject.call.first).to be_instance_of(Economic::DebtorContact)
19
+ end
20
+
21
+ it "returns empty array when nothing is found" do
22
+ stub_request("Debtor_GetDebtorContacts", nil, :none)
23
+ expect(subject.call).to be_empty
24
+ end
25
+ end
26
+ end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::Proxies::Actions::FindByName do
4
4
  let(:session) { make_session }
@@ -10,23 +10,23 @@ describe Economic::Proxies::Actions::FindByName do
10
10
 
11
11
  describe "#call" do
12
12
  it "gets contact data from the API" do
13
- mock_request('CreditorContact_FindByName', {'name' => 'Bob'}, :multiple)
13
+ mock_request("CreditorContact_FindByName", {"name" => "Bob"}, :multiple)
14
14
  subject.call
15
15
  end
16
16
 
17
17
  it "returns creditor contacts" do
18
- stub_request('CreditorContact_FindByName', nil, :multiple)
18
+ stub_request("CreditorContact_FindByName", nil, :multiple)
19
19
  expect(subject.call.first).to be_instance_of(Economic::CreditorContact)
20
20
  end
21
21
 
22
22
  it "returns empty when nothing is found" do
23
- stub_request('CreditorContact_FindByName', nil, :none)
23
+ stub_request("CreditorContact_FindByName", nil, :none)
24
24
  expect(subject.call).to be_empty
25
25
  end
26
26
 
27
27
  context "when calling proxy is owned by session" do
28
28
  it "returns all creditor contacts" do
29
- stub_request('CreditorContact_FindByName', nil, :multiple)
29
+ stub_request("CreditorContact_FindByName", nil, :multiple)
30
30
  expect(subject.call.size).to eq(2)
31
31
  end
32
32
  end
@@ -35,7 +35,7 @@ describe Economic::Proxies::Actions::FindByName do
35
35
  it "returns only contacts for creditor" do
36
36
  # Note the order of these stubs actually matters. They need to match
37
37
  # the order they are called in in the implementation
38
- stub_request('CreditorContact_FindByName', nil, :multiple)
38
+ stub_request("CreditorContact_FindByName", nil, :multiple)
39
39
  stub_request("CreditorContact_GetData", nil, :success)
40
40
  stub_request("Creditor_GetData", nil, :success)
41
41
  stub_request("CreditorContact_GetData", nil, :success)
@@ -47,5 +47,4 @@ describe Economic::Proxies::Actions::FindByName do
47
47
  end
48
48
  end
49
49
  end
50
-
51
50
  end
@@ -1,7 +1,6 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CashBookEntryProxy do
4
-
5
4
  let(:session) { make_session }
6
5
  let(:cash_book) { Economic::CashBook.new(:session => session) }
7
6
  subject { Economic::CashBookEntryProxy.new(cash_book) }
@@ -28,63 +27,62 @@ describe Economic::CashBookEntryProxy do
28
27
  end
29
28
 
30
29
  describe "#create_finance_voucher" do
31
- it 'should create a finance voucher and return the created cash book entry' do
32
- stub_request('CashBookEntry_CreateFinanceVoucher', nil, :success)
33
- stub_request('CashBookEntry_GetData', {"entityHandle" => {"Id1" => 15, "Id2" => 16}}, :success)
34
- cash_book_entry = subject.create_finance_voucher(:account_handle => { :number => 2 }, :contra_account_handle => { :number => 3 })
30
+ it "should create a finance voucher and return the created cash book entry" do
31
+ stub_request("CashBookEntry_CreateFinanceVoucher", nil, :success)
32
+ stub_request("CashBookEntry_GetData", {"entityHandle" => {"Id1" => 15, "Id2" => 16}}, :success)
33
+ cash_book_entry = subject.create_finance_voucher(:account_handle => {:number => 2}, :contra_account_handle => {:number => 3})
35
34
  expect(cash_book_entry).to be_instance_of(Economic::CashBookEntry)
36
35
  end
37
36
  end
38
37
 
39
38
  describe "#create_debtor_payment" do
40
- it 'should create a debtor payment and then return the created cash book entry' do
41
- stub_request('CashBookEntry_CreateDebtorPayment', nil, :success)
42
- stub_request('CashBookEntry_GetData', {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
43
- cash_book_entry = subject.create_debtor_payment(:debtor_handle => { :number => 2 }, :contra_account_handle => { :number => 3 })
39
+ it "should create a debtor payment and then return the created cash book entry" do
40
+ stub_request("CashBookEntry_CreateDebtorPayment", nil, :success)
41
+ stub_request("CashBookEntry_GetData", {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
42
+ cash_book_entry = subject.create_debtor_payment(:debtor_handle => {:number => 2}, :contra_account_handle => {:number => 3})
44
43
  expect(cash_book_entry).to be_instance_of(Economic::CashBookEntry)
45
44
  end
46
45
  end
47
46
 
48
47
  describe "#create_creditor_invoice" do
49
- it 'should create a creditor invoice and then return the created cash book entry' do
50
- stub_request('CashBookEntry_CreateCreditorInvoice', nil, :success)
51
- stub_request('CashBookEntry_GetData', {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
52
- cash_book_entry = subject.create_creditor_invoice(:creditor_handle => { :number => 2 }, :contra_account_handle => { :number => 3 })
48
+ it "should create a creditor invoice and then return the created cash book entry" do
49
+ stub_request("CashBookEntry_CreateCreditorInvoice", nil, :success)
50
+ stub_request("CashBookEntry_GetData", {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
51
+ cash_book_entry = subject.create_creditor_invoice(:creditor_handle => {:number => 2}, :contra_account_handle => {:number => 3})
53
52
  expect(cash_book_entry).to be_instance_of(Economic::CashBookEntry)
54
53
  end
55
54
 
56
- it 'should not send handles that were not given' do
57
- stub_request('CashBookEntry_CreateCreditorInvoice', {"cashBookHandle" => { 'Number' => 42 }}, :success)
58
- stub_request('CashBookEntry_GetData', {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
55
+ it "should not send handles that were not given" do
56
+ stub_request("CashBookEntry_CreateCreditorInvoice", {"cashBookHandle" => {"Number" => 42}}, :success)
57
+ stub_request("CashBookEntry_GetData", {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
59
58
  cash_book.number = 42
60
- cash_book_entry = subject.create_creditor_invoice({:number => 13})
59
+ cash_book_entry = subject.create_creditor_invoice(:number => 13)
61
60
  expect(cash_book_entry).to be_instance_of(Economic::CashBookEntry)
62
61
  end
63
62
  end
64
63
 
65
64
  describe "#create_creditor_payment" do
66
- it 'should create a creditor payment and then return the created cash book entry' do
67
- stub_request('CashBookEntry_CreateCreditorPayment', nil, :success)
68
- stub_request('CashBookEntry_GetData', {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
69
- cash_book_entry = subject.create_creditor_payment(:creditor_handle => { :number => 2 }, :contra_account_handle => { :number => 3 })
65
+ it "should create a creditor payment and then return the created cash book entry" do
66
+ stub_request("CashBookEntry_CreateCreditorPayment", nil, :success)
67
+ stub_request("CashBookEntry_GetData", {"entityHandle" => {"Id1" => 13, "Id2" => 14}}, :success)
68
+ cash_book_entry = subject.create_creditor_payment(:creditor_handle => {:number => 2}, :contra_account_handle => {:number => 3})
70
69
  expect(cash_book_entry).to be_instance_of(Economic::CashBookEntry)
71
70
  end
72
71
  end
73
72
 
74
73
  describe "#set_due_date" do
75
- it 'should set due date' do
76
- mock_request('CashBookEntry_SetDueDate', {"cashBookEntryHandle" => { "Id1" => subject.owner.id, "Id2" => 234 }, :value => Date.new(2012, 12, 21)}, :success)
74
+ it "should set due date" do
75
+ mock_request("CashBookEntry_SetDueDate", {"cashBookEntryHandle" => {"Id1" => subject.owner.id, "Id2" => 234}, :value => Date.new(2012, 12, 21)}, :success)
77
76
  subject.set_due_date(234, Date.new(2012, 12, 21))
78
77
  end
79
78
  end
80
79
 
81
80
  describe "#all" do
82
- it 'should get the cash book entries' do
83
- stub_request('CashBook_GetEntries', nil, :success)
84
- expect(subject).to receive(:find).with({:id1 => '1', :id2 => '2'})
85
- expect(subject).to receive(:find).with({:id1 => '11', :id2 => '12'})
81
+ it "should get the cash book entries" do
82
+ stub_request("CashBook_GetEntries", nil, :success)
83
+ expect(subject).to receive(:find).with(:id1 => "1", :id2 => "2")
84
+ expect(subject).to receive(:find).with(:id1 => "11", :id2 => "12")
86
85
  subject.all
87
86
  end
88
87
  end
89
-
90
88
  end
@@ -1,20 +1,16 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CashBookProxy do
4
-
5
4
  let(:session) { make_session }
6
5
  subject { Economic::CashBookProxy.new(session) }
7
6
 
8
7
  describe ".new" do
9
-
10
8
  it "stores session" do
11
9
  expect(subject.session).to equal(session)
12
10
  end
13
-
14
11
  end
15
12
 
16
13
  describe ".build" do
17
-
18
14
  it "instantiates a new CashBook" do
19
15
  expect(subject.build).to be_instance_of(Economic::CashBook)
20
16
  end
@@ -22,14 +18,12 @@ describe Economic::CashBookProxy do
22
18
  it "assigns the session to the CashBook" do
23
19
  expect(subject.build.session).to equal(session)
24
20
  end
25
-
26
21
  end
27
22
 
28
23
  describe ".all" do
29
-
30
24
  it "returns multiple cashbooks" do
31
- stub_request('CashBook_GetAll', nil, :multiple)
32
- stub_request('CashBook_GetDataArray', nil, :multiple)
25
+ stub_request("CashBook_GetAll", nil, :multiple)
26
+ stub_request("CashBook_GetDataArray", nil, :multiple)
33
27
 
34
28
  all = subject.all
35
29
  expect(all.size).to eq(2)
@@ -38,11 +32,11 @@ describe Economic::CashBookProxy do
38
32
 
39
33
  it "properly fills out handles of cash books" do
40
34
  # Issue #12
41
- stub_request('CashBook_GetAll', nil, :multiple)
42
- stub_request('CashBook_GetDataArray', nil, :multiple)
43
- stub_request('CashBook_GetData', nil, :success)
44
- stub_request('CashBook_GetAll', nil, :multiple)
45
- stub_request('CashBook_GetDataArray', nil, :multiple)
35
+ stub_request("CashBook_GetAll", nil, :multiple)
36
+ stub_request("CashBook_GetDataArray", nil, :multiple)
37
+ stub_request("CashBook_GetData", nil, :success)
38
+ stub_request("CashBook_GetAll", nil, :multiple)
39
+ stub_request("CashBook_GetDataArray", nil, :multiple)
46
40
 
47
41
  cash_book = subject.find(subject.all.first.handle)
48
42
  expect(subject.all.first.handle).to eq(cash_book.handle)
@@ -50,21 +44,19 @@ describe Economic::CashBookProxy do
50
44
  end
51
45
 
52
46
  describe ".get_name" do
53
-
54
- it 'returns a cash book with a name' do
55
- mock_request('CashBook_GetName', {"cashBookHandle" => { "Number" => "52" }}, :success)
47
+ it "returns a cash book with a name" do
48
+ mock_request("CashBook_GetName", {"cashBookHandle" => {"Number" => "52"}}, :success)
56
49
  result = subject.get_name("52")
57
50
  expect(result).to be_instance_of(Economic::CashBook)
58
51
  expect(result.number).to eq("52")
59
52
  expect(result.name).to be_a(String)
60
53
  end
61
-
62
54
  end
63
55
 
64
56
  describe "#last" do
65
57
  it "returns the last cash book" do
66
- stub_request('CashBook_GetAll', nil, :multiple)
67
- stub_request('CashBook_GetDataArray', nil, :multiple)
58
+ stub_request("CashBook_GetAll", nil, :multiple)
59
+ stub_request("CashBook_GetDataArray", nil, :multiple)
68
60
 
69
61
  expect(subject.all.last.name).to eq("Another cash book")
70
62
  end
@@ -72,8 +64,8 @@ describe Economic::CashBookProxy do
72
64
 
73
65
  describe "#[]" do
74
66
  it "returns the specific cash book" do
75
- stub_request('CashBook_GetAll', nil, :multiple)
76
- stub_request('CashBook_GetDataArray', nil, :multiple)
67
+ stub_request("CashBook_GetAll", nil, :multiple)
68
+ stub_request("CashBook_GetDataArray", nil, :multiple)
77
69
 
78
70
  expect(subject.all[1].name).to eq("Another cash book")
79
71
  end
@@ -0,0 +1,47 @@
1
+ require "./spec/spec_helper"
2
+
3
+ describe Economic::CompanyProxy do
4
+ let(:session) { make_session }
5
+ subject { Economic::CompanyProxy.new(session) }
6
+
7
+ describe ".get" do
8
+ let!(:company) { Economic::Company.new.tap { |e| e.session = session } }
9
+
10
+ it "Calls CompanyGet endpoint" do
11
+ mock_request("Company_Get", nil, :success)
12
+ stub_request("Company_GetData", {"entityHandle" => {"Number" => "string"}}, :success)
13
+ company.get
14
+ end
15
+
16
+ it "Calls CopmanyGetData endpoint with valid data" do
17
+ stub_request("Company_Get", nil, :success)
18
+ mock_request("Company_GetData", {"entityHandle" => {"Number" => "string"}}, :success)
19
+ company.get
20
+ end
21
+
22
+ it "Returns a valid company" do
23
+ stub_request("Company_Get", nil, :success)
24
+ stub_request("Company_GetData", {"entityHandle" => {"Number" => "string"}}, :success)
25
+ expectation = {:handle => {:number => "string"},
26
+ :number => "string",
27
+ :base_currency_handle => {:code => "string"},
28
+ :name => "string",
29
+ :address1 => "string",
30
+ :address2 => "string",
31
+ :postal_code => "string",
32
+ :city => "string",
33
+ :county => "string",
34
+ :country => "string",
35
+ :telephone_number => "string",
36
+ :fax_number => "string",
37
+ :mobile_number => "string",
38
+ :contact => "string",
39
+ :web_site => "string",
40
+ :email => "string",
41
+ :ci_number => "string",
42
+ :vat_number => "string",
43
+ :sign_up_date => "dateTime"}
44
+ expect(company.get).to eq expectation
45
+ end
46
+ end
47
+ end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CreditorContactProxy do
4
4
  let(:session) { make_session }
@@ -40,13 +40,19 @@ describe Economic::CreditorContactProxy do
40
40
 
41
41
  describe ".find" do
42
42
  it "gets contact data from API" do
43
- mock_request('CreditorContact_GetData', {'entityHandle' => {'Id' => 42}}, :success)
43
+ mock_request(
44
+ "CreditorContact_GetData",
45
+ {"entityHandle" => {"Id" => 42}},
46
+ :success
47
+ )
44
48
  subject.find(42)
45
49
  end
46
50
 
47
51
  it "returns CreditorContact object" do
48
- stub_request('CreditorContact_GetData', nil, :success)
49
- expect(subject.find(42)).to be_instance_of(Economic::CreditorContact)
52
+ stub_request("CreditorContact_GetData", nil, :success)
53
+ expect(
54
+ subject.find(42)
55
+ ).to be_instance_of(Economic::CreditorContact)
50
56
  end
51
57
  end
52
58
 
@@ -54,7 +60,7 @@ describe Economic::CreditorContactProxy do
54
60
  it "uses the FindByName command" do
55
61
  expect(Economic::Proxies::Actions::FindByName).to receive(:new).
56
62
  with(subject, "Bob").
57
- and_return(lambda { "Result" })
63
+ and_return(-> { "Result" })
58
64
  expect(subject.find_by_name("Bob")).to eq("Result")
59
65
  end
60
66
  end
@@ -1,4 +1,4 @@
1
- require './spec/spec_helper'
1
+ require "./spec/spec_helper"
2
2
 
3
3
  describe Economic::CreditorEntryProxy do
4
4
  let(:session) { make_session }
@@ -11,32 +11,32 @@ describe Economic::CreditorEntryProxy do
11
11
  end
12
12
 
13
13
  describe "#find_by_invoice_number" do
14
- it 'should be able to find multiple creditor entries' do
15
- mock_request("CreditorEntry_FindByInvoiceNumber", {'invoiceNumber' => '123'}, :many)
16
- expect(subject.find_by_invoice_number('123')).to eq([1, 2])
14
+ it "should be able to find multiple creditor entries" do
15
+ mock_request("CreditorEntry_FindByInvoiceNumber", {"invoiceNumber" => "123"}, :many)
16
+ expect(subject.find_by_invoice_number("123")).to eq([1, 2])
17
17
  end
18
18
 
19
- it 'should handle a single serial number in the response' do
19
+ it "should handle a single serial number in the response" do
20
20
  stub_request("CreditorEntry_FindByInvoiceNumber", nil, :single)
21
- expect(subject.find_by_invoice_number('123')).to eq([1])
21
+ expect(subject.find_by_invoice_number("123")).to eq([1])
22
22
  end
23
23
  end
24
24
 
25
25
  describe "#find" do
26
- it 'should get a creditor entry by serial number' do
27
- mock_request("CreditorEntry_GetData", {'entityHandle' => { 'SerialNumber' => '123' }}, :success)
28
- expect(subject.find('123')).to be_instance_of(Economic::CreditorEntry)
26
+ it "should get a creditor entry by serial number" do
27
+ mock_request("CreditorEntry_GetData", {"entityHandle" => {"SerialNumber" => "123"}}, :success)
28
+ expect(subject.find("123")).to be_instance_of(Economic::CreditorEntry)
29
29
  end
30
30
  end
31
31
 
32
32
  describe "#match" do
33
- it 'should match two creditor entries by serial numbers' do
33
+ it "should match two creditor entries by serial numbers" do
34
34
  stub_request(
35
35
  "CreditorEntry_MatchEntries",
36
36
  {:entries => {
37
37
  "CreditorEntryHandle" => [
38
- {"SerialNumber"=>1},
39
- {"SerialNumber"=>2}
38
+ {"SerialNumber" => 1},
39
+ {"SerialNumber" => 2}
40
40
  ]
41
41
  }},
42
42
  :success