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.
- checksums.yaml +4 -4
- data/.rubocop.yml +40 -0
- data/.ruby-version +1 -0
- data/.travis.yml +14 -3
- data/CHANGELOG.md +28 -0
- data/Gemfile +5 -4
- data/Guardfile +9 -4
- data/README.md +23 -4
- data/Rakefile +5 -5
- data/gemfiles/Gemfile.ruby-2.0 +14 -0
- data/lib/economic/account.rb +3 -3
- data/lib/economic/cash_book.rb +4 -7
- data/lib/economic/cash_book_entry.rb +4 -24
- data/lib/economic/company.rb +61 -0
- data/lib/economic/creditor.rb +4 -5
- data/lib/economic/creditor_contact.rb +5 -6
- data/lib/economic/creditor_entry.rb +1 -3
- data/lib/economic/current_invoice.rb +14 -21
- data/lib/economic/current_invoice_line.rb +4 -13
- data/lib/economic/debtor.rb +10 -11
- data/lib/economic/debtor_contact.rb +7 -8
- data/lib/economic/debtor_entry.rb +1 -3
- data/lib/economic/endpoint.rb +36 -6
- data/lib/economic/entity/handle.rb +54 -29
- data/lib/economic/entity/mapper.rb +1 -1
- data/lib/economic/entity.rb +26 -29
- data/lib/economic/entry.rb +1 -2
- data/lib/economic/invoice.rb +15 -8
- data/lib/economic/order.rb +2 -4
- data/lib/economic/product.rb +73 -0
- data/lib/economic/proxies/account_proxy.rb +2 -4
- data/lib/economic/proxies/actions/debtor_contact/all.rb +63 -0
- data/lib/economic/proxies/actions/find_by_ci_number.rb +1 -3
- data/lib/economic/proxies/actions/find_by_date_interval.rb +3 -6
- data/lib/economic/proxies/actions/find_by_handle_with_number.rb +1 -1
- data/lib/economic/proxies/actions/find_by_name.rb +1 -1
- data/lib/economic/proxies/actions/find_by_number.rb +2 -4
- data/lib/economic/proxies/actions/find_by_telephone_and_fax_number.rb +1 -3
- data/lib/economic/proxies/cash_book_entry_proxy.rb +19 -22
- data/lib/economic/proxies/cash_book_proxy.rb +5 -10
- data/lib/economic/proxies/company_proxy.rb +9 -0
- data/lib/economic/proxies/creditor_contact_proxy.rb +2 -2
- data/lib/economic/proxies/creditor_entry_proxy.rb +8 -14
- data/lib/economic/proxies/creditor_proxy.rb +8 -11
- data/lib/economic/proxies/current_invoice_line_proxy.rb +2 -2
- data/lib/economic/proxies/current_invoice_proxy.rb +3 -3
- data/lib/economic/proxies/debtor_contact_proxy.rb +6 -2
- data/lib/economic/proxies/debtor_entry_proxy.rb +6 -10
- data/lib/economic/proxies/debtor_proxy.rb +40 -55
- data/lib/economic/proxies/entity_proxy.rb +15 -15
- data/lib/economic/proxies/entry_proxy.rb +10 -16
- data/lib/economic/proxies/invoice_proxy.rb +3 -3
- data/lib/economic/proxies/order_proxy.rb +3 -3
- data/lib/economic/proxies/product_proxy.rb +11 -0
- data/lib/economic/session.rb +48 -21
- data/lib/economic/support/string.rb +5 -5
- data/lib/rconomic/version.rb +1 -1
- data/lib/rconomic.rb +39 -34
- data/lib/savon_ext/request.rb +17 -0
- data/rconomic.gemspec +8 -7
- data/spec/economic/account_spec.rb +3 -3
- data/spec/economic/cash_book_entry_spec.rb +26 -3
- data/spec/economic/cash_book_spec.rb +7 -7
- data/spec/economic/company_spec.rb +20 -0
- data/spec/economic/creditor_contact_spec.rb +4 -5
- data/spec/economic/creditor_entry_spec.rb +20 -0
- data/spec/economic/creditor_spec.rb +3 -3
- data/spec/economic/current_invoice_line_spec.rb +3 -3
- data/spec/economic/current_invoice_spec.rb +19 -19
- data/spec/economic/debtor_contact_spec.rb +4 -5
- data/spec/economic/debtor_entry_spec.rb +1 -1
- data/spec/economic/debtor_spec.rb +13 -13
- data/spec/economic/endpoint_spec.rb +27 -11
- data/spec/economic/entity/handle_spec.rb +10 -23
- data/spec/economic/entity/mapper_spec.rb +26 -30
- data/spec/economic/entity_spec.rb +36 -31
- data/spec/economic/entry_spec.rb +1 -1
- data/spec/economic/invoice_spec.rb +49 -7
- data/spec/economic/order_spec.rb +4 -4
- data/spec/economic/product_spec.rb +72 -0
- data/spec/economic/proxies/account_proxy_spec.rb +74 -0
- data/spec/economic/proxies/actions/debtor_contact/all_spec.rb +26 -0
- data/spec/economic/proxies/actions/find_by_name_spec.rb +6 -7
- data/spec/economic/proxies/cash_book_entry_proxy_spec.rb +27 -29
- data/spec/economic/proxies/cash_book_proxy_spec.rb +14 -22
- data/spec/economic/proxies/company_proxy_spec.rb +47 -0
- data/spec/economic/proxies/creditor_contact_proxy_spec.rb +11 -5
- data/spec/economic/proxies/creditor_entry_proxy_spec.rb +12 -12
- data/spec/economic/proxies/creditor_proxy_spec.rb +15 -15
- data/spec/economic/proxies/current_invoice_line_proxy_spec.rb +10 -4
- data/spec/economic/proxies/current_invoice_proxy_spec.rb +37 -19
- data/spec/economic/proxies/debtor_contact_proxy_spec.rb +8 -4
- data/spec/economic/proxies/debtor_entry_proxy_spec.rb +21 -11
- data/spec/economic/proxies/debtor_proxy_spec.rb +81 -40
- data/spec/economic/proxies/entry_proxy_spec.rb +17 -14
- data/spec/economic/proxies/invoice_proxy_spec.rb +24 -10
- data/spec/economic/proxies/order_proxy_spec.rb +20 -10
- data/spec/economic/proxies/product_proxy_spec.rb +86 -0
- data/spec/economic/session_spec.rb +74 -35
- data/spec/fixtures/account_get_all/multiple.xml +15 -0
- data/spec/fixtures/account_get_all/none.xml +8 -0
- data/spec/fixtures/account_get_all/single.xml +12 -0
- data/spec/fixtures/account_get_data_array/multiple.xml +69 -0
- data/spec/fixtures/company_get/success.xml +10 -0
- data/spec/fixtures/company_get_data/success.xml +32 -0
- data/spec/fixtures/current_invoice_line_create_from_data/success.xml +6 -37
- data/spec/fixtures/debtor_create_from_data/success.xml +5 -52
- data/spec/fixtures/debtor_get_orders/none.xml +9 -0
- data/spec/fixtures/product_create_from_data/success.xml +37 -0
- data/spec/fixtures/product_find_by_number/found.xml +10 -0
- data/spec/fixtures/product_find_by_number/not_found.xml +6 -0
- data/spec/fixtures/product_get_all/multiple.xml +15 -0
- data/spec/fixtures/product_get_all/single.xml +12 -0
- data/spec/fixtures/product_get_data/success.xml +37 -0
- data/spec/fixtures/product_get_data_array/multiple.xml +69 -0
- data/spec/spec_helper.rb +6 -9
- data/spec/support/factories.rb +14 -14
- metadata +54 -9
@@ -1,7 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "./spec/spec_helper"
|
2
2
|
|
3
3
|
describe Economic::InvoiceProxy do
|
4
|
-
|
5
4
|
let(:session) { make_session }
|
6
5
|
subject { Economic::InvoiceProxy.new(session) }
|
7
6
|
|
@@ -27,12 +26,16 @@ describe Economic::InvoiceProxy do
|
|
27
26
|
|
28
27
|
describe ".find" do
|
29
28
|
it "gets invoice data from API" do
|
30
|
-
mock_request(
|
29
|
+
mock_request(
|
30
|
+
"Invoice_GetData",
|
31
|
+
{"entityHandle" => {"Number" => 42}},
|
32
|
+
:success
|
33
|
+
)
|
31
34
|
subject.find(42)
|
32
35
|
end
|
33
36
|
|
34
37
|
it "returns Invoice object" do
|
35
|
-
stub_request(
|
38
|
+
stub_request("Invoice_GetData", nil, :success)
|
36
39
|
expect(subject.find(42)).to be_instance_of(Economic::Invoice)
|
37
40
|
end
|
38
41
|
end
|
@@ -42,26 +45,37 @@ describe Economic::InvoiceProxy do
|
|
42
45
|
let(:unto) { Time.now }
|
43
46
|
|
44
47
|
it "should be able to return a single current invoice" do
|
45
|
-
mock_request(
|
46
|
-
|
48
|
+
mock_request(
|
49
|
+
"Invoice_FindByDateInterval",
|
50
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
51
|
+
:single
|
52
|
+
)
|
53
|
+
mock_request("Invoice_GetDataArray", :any, :single)
|
47
54
|
results = subject.find_by_date_interval(from, unto)
|
48
55
|
expect(results.size).to eq(1)
|
49
56
|
expect(results.first).to be_instance_of(Economic::Invoice)
|
50
57
|
end
|
51
58
|
|
52
59
|
it "should be able to return multiple invoices" do
|
53
|
-
mock_request(
|
54
|
-
|
60
|
+
mock_request(
|
61
|
+
"Invoice_FindByDateInterval",
|
62
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
63
|
+
:many
|
64
|
+
)
|
65
|
+
mock_request("Invoice_GetDataArray", :any, :multiple)
|
55
66
|
results = subject.find_by_date_interval(from, unto)
|
56
67
|
expect(results.size).to eq(2)
|
57
68
|
expect(results.first).to be_instance_of(Economic::Invoice)
|
58
69
|
end
|
59
70
|
|
60
71
|
it "should be able to return nothing" do
|
61
|
-
mock_request(
|
72
|
+
mock_request(
|
73
|
+
"Invoice_FindByDateInterval",
|
74
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
75
|
+
:none
|
76
|
+
)
|
62
77
|
results = subject.find_by_date_interval(from, unto)
|
63
78
|
expect(results.size).to eq(0)
|
64
79
|
end
|
65
|
-
|
66
80
|
end
|
67
81
|
end
|
@@ -1,7 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "./spec/spec_helper"
|
2
2
|
|
3
3
|
describe Economic::OrderProxy do
|
4
|
-
|
5
4
|
let(:session) { make_session }
|
6
5
|
subject { Economic::OrderProxy.new(session) }
|
7
6
|
|
@@ -27,12 +26,12 @@ describe Economic::OrderProxy do
|
|
27
26
|
|
28
27
|
describe ".find" do
|
29
28
|
it "gets order data from API" do
|
30
|
-
mock_request(
|
29
|
+
mock_request("Order_GetData", {"entityHandle" => {"Id" => 42}}, :success)
|
31
30
|
subject.find(42)
|
32
31
|
end
|
33
32
|
|
34
33
|
it "returns Order object" do
|
35
|
-
stub_request(
|
34
|
+
stub_request("Order_GetData", nil, :success)
|
36
35
|
expect(subject.find(42)).to be_instance_of(Economic::Order)
|
37
36
|
end
|
38
37
|
end
|
@@ -42,26 +41,37 @@ describe Economic::OrderProxy do
|
|
42
41
|
let(:unto) { Time.now }
|
43
42
|
|
44
43
|
it "should be able to return a single current order" do
|
45
|
-
mock_request(
|
46
|
-
|
44
|
+
mock_request(
|
45
|
+
"Order_FindByDateInterval",
|
46
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
47
|
+
:single
|
48
|
+
)
|
49
|
+
mock_request("Order_GetDataArray", :any, :single)
|
47
50
|
results = subject.find_by_date_interval(from, unto)
|
48
51
|
expect(results.size).to eq(1)
|
49
52
|
expect(results.first).to be_instance_of(Economic::Order)
|
50
53
|
end
|
51
54
|
|
52
55
|
it "should be able to return multiple orders" do
|
53
|
-
mock_request(
|
54
|
-
|
56
|
+
mock_request(
|
57
|
+
"Order_FindByDateInterval",
|
58
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
59
|
+
:many
|
60
|
+
)
|
61
|
+
mock_request("Order_GetDataArray", :any, :multiple)
|
55
62
|
results = subject.find_by_date_interval(from, unto)
|
56
63
|
expect(results.size).to eq(2)
|
57
64
|
expect(results.first).to be_instance_of(Economic::Order)
|
58
65
|
end
|
59
66
|
|
60
67
|
it "should be able to return nothing" do
|
61
|
-
mock_request(
|
68
|
+
mock_request(
|
69
|
+
"Order_FindByDateInterval",
|
70
|
+
{"first" => from.iso8601, "last" => unto.iso8601},
|
71
|
+
:none
|
72
|
+
)
|
62
73
|
results = subject.find_by_date_interval(from, unto)
|
63
74
|
expect(results.size).to eq(0)
|
64
75
|
end
|
65
|
-
|
66
76
|
end
|
67
77
|
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require "./spec/spec_helper"
|
2
|
+
|
3
|
+
describe Economic::ProductProxy do
|
4
|
+
let(:session) { make_session }
|
5
|
+
subject { Economic::ProductProxy.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 "find" do
|
14
|
+
it "gets product data from API" do
|
15
|
+
mock_request(
|
16
|
+
"Product_GetData",
|
17
|
+
{"entityHandle" => {"Number" => 42}},
|
18
|
+
:success
|
19
|
+
)
|
20
|
+
subject.find(42)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns Product object" do
|
24
|
+
stub_request("Product_GetData", nil, :success)
|
25
|
+
expect(subject.find(42)).to be_instance_of(Economic::Product)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "find_by_number" do
|
30
|
+
it "can find a product" do
|
31
|
+
mock_request("Product_FindByNumber", {"number" => "1"}, :found)
|
32
|
+
result = subject.find_by_number("1")
|
33
|
+
expect(result).to be_instance_of(Economic::Product)
|
34
|
+
expect(result.number).to eq("1")
|
35
|
+
expect(result.partial).to be_truthy
|
36
|
+
expect(result.persisted).to be_truthy
|
37
|
+
expect(result.handle).to eq(Economic::Entity::Handle.new(:number => "1"))
|
38
|
+
end
|
39
|
+
|
40
|
+
it "returns nil when there is no product" do
|
41
|
+
mock_request("Product_FindByNumber", {"number" => "1"}, :not_found)
|
42
|
+
result = subject.find_by_number("1")
|
43
|
+
expect(result).to be_nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "build" do
|
48
|
+
subject { session.products.build }
|
49
|
+
|
50
|
+
it "instantiates a new Product" do
|
51
|
+
expect(subject).to be_instance_of(Economic::Product)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "assigns the session to the Product" do
|
55
|
+
expect(subject.session).to equal(session)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "#entity_class" do
|
60
|
+
it "should return Economic::Product" do
|
61
|
+
expect(Economic::ProductProxy.entity_class).to eq(Economic::Product)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe ".all" do
|
66
|
+
it "returns a single product" do
|
67
|
+
stub_request("Product_GetAll", nil, :single)
|
68
|
+
mock_request(
|
69
|
+
"Product_GetData",
|
70
|
+
{"entityHandle" => {"Number" => "1"}},
|
71
|
+
:success
|
72
|
+
)
|
73
|
+
all = subject.all
|
74
|
+
expect(all.size).to eq(1)
|
75
|
+
expect(all.first).to be_instance_of(Economic::Product)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "returns multiple products" do
|
79
|
+
mock_request("Product_GetAll", nil, :multiple)
|
80
|
+
stub_request("Product_GetDataArray", nil, :multiple)
|
81
|
+
all = subject.all
|
82
|
+
expect(all.size).to eq(2)
|
83
|
+
expect(all.first).to be_instance_of(Economic::Product)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -1,32 +1,43 @@
|
|
1
|
-
require
|
1
|
+
require "./spec/spec_helper"
|
2
2
|
|
3
3
|
describe Economic::Session do
|
4
|
-
let(:credentials) { [
|
4
|
+
let(:credentials) { [123_456, "api", "passw0rd"] }
|
5
5
|
subject { Economic::Session.new }
|
6
6
|
|
7
7
|
let(:endpoint) { subject.endpoint }
|
8
8
|
|
9
9
|
describe "new" do
|
10
10
|
describe "legacy connect" do
|
11
|
-
subject { Economic::Session.new
|
11
|
+
subject { Economic::Session.new(*credentials) }
|
12
12
|
it "should store authentication details" do
|
13
|
-
expect(subject.agreement_number).to eq(
|
14
|
-
expect(subject.user_name).to eq(
|
15
|
-
expect(subject.password).to eq(
|
13
|
+
expect(subject.agreement_number).to eq(123_456)
|
14
|
+
expect(subject.user_name).to eq("api")
|
15
|
+
expect(subject.password).to eq("passw0rd")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "can also store an app_id" do
|
19
|
+
session = Economic::Session.new(*credentials, "app_id")
|
20
|
+
expect(session.app_identifier).to eq("app_id")
|
16
21
|
end
|
17
22
|
end
|
18
23
|
|
19
24
|
it "yields the endpoint if a block is given" do
|
20
25
|
endpoint_mock = double("Endpoint")
|
21
|
-
Economic::Endpoint.
|
22
|
-
expect{|b|
|
23
|
-
Economic::Session.new(
|
26
|
+
allow(Economic::Endpoint).to receive(:new).and_return(endpoint_mock)
|
27
|
+
expect {|b|
|
28
|
+
Economic::Session.new(123_456, "api", "passw0rd", &b)
|
24
29
|
}.to yield_with_args(endpoint_mock)
|
25
30
|
end
|
26
31
|
end
|
27
32
|
|
28
33
|
describe "connect" do
|
29
|
-
let(:authentication_details) {
|
34
|
+
let(:authentication_details) {
|
35
|
+
{
|
36
|
+
:agreementNumber => 123_456,
|
37
|
+
:userName => "api",
|
38
|
+
:password => "passw0rd"
|
39
|
+
}
|
40
|
+
}
|
30
41
|
|
31
42
|
it "can connect old-style" do
|
32
43
|
mock_request(:connect, authentication_details, :success)
|
@@ -41,30 +52,38 @@ describe Economic::Session do
|
|
41
52
|
|
42
53
|
it "stores the authentication token for later requests" do
|
43
54
|
response = {
|
44
|
-
:headers => {
|
55
|
+
:headers => {"Set-Cookie" => "cookie value from e-conomic"},
|
45
56
|
:body => fixture(:connect, :success)
|
46
57
|
}
|
47
|
-
stub_request(
|
58
|
+
stub_request("Connect", authentication_details, response)
|
48
59
|
|
49
60
|
subject.connect_with_credentials(*credentials)
|
50
61
|
|
51
|
-
expect(subject.
|
62
|
+
expect(subject.authentication_cookies.collect { |cookie|
|
52
63
|
cookie.name_and_value.split("=").last
|
53
64
|
}).to eq(["cookie value from e-conomic"])
|
54
65
|
end
|
55
66
|
|
56
67
|
it "updates the authentication token for new sessions" do
|
57
|
-
stub_request(
|
68
|
+
stub_request(
|
69
|
+
"Connect",
|
70
|
+
nil,
|
71
|
+
:headers => {"Set-Cookie" => "authentication token"}
|
72
|
+
)
|
58
73
|
subject.connect_with_credentials(*credentials)
|
59
74
|
|
60
|
-
stub_request(
|
75
|
+
stub_request(
|
76
|
+
"Connect",
|
77
|
+
nil,
|
78
|
+
:headers => {"Set-Cookie" => "another token"}
|
79
|
+
)
|
61
80
|
other_session = Economic::Session.new
|
62
|
-
other_session.connect_with_credentials(
|
81
|
+
other_session.connect_with_credentials(123_456, "api", "passw0rd")
|
63
82
|
|
64
|
-
expect(subject.
|
83
|
+
expect(subject.authentication_cookies.collect { |cookie|
|
65
84
|
cookie.name_and_value.split("=").last
|
66
85
|
}).to eq(["authentication token"])
|
67
|
-
expect(other_session.
|
86
|
+
expect(other_session.authentication_cookies.collect { |cookie|
|
68
87
|
cookie.name_and_value.split("=").last
|
69
88
|
}).to eq(["another token"])
|
70
89
|
end
|
@@ -77,7 +96,12 @@ describe Economic::Session do
|
|
77
96
|
|
78
97
|
describe "connecting with access ID" do
|
79
98
|
# As per http://www.e-conomic.com/developer/tutorials
|
80
|
-
let(:authentication_details) {
|
99
|
+
let(:authentication_details) {
|
100
|
+
{
|
101
|
+
:appToken => "the_private_app_id",
|
102
|
+
:token => "the_access_id_you_got_from_the_grant"
|
103
|
+
}
|
104
|
+
}
|
81
105
|
let(:private_app_id) { authentication_details[:appToken] }
|
82
106
|
let(:access_id) { authentication_details[:token] }
|
83
107
|
subject { Economic::Session.new }
|
@@ -88,36 +112,47 @@ describe Economic::Session do
|
|
88
112
|
|
89
113
|
it "stores the authentication token for later requests" do
|
90
114
|
response = {
|
91
|
-
:headers => {
|
115
|
+
:headers => {"Set-Cookie" => "cookie value from e-conomic"},
|
92
116
|
:body => fixture(:connect_with_token, :success)
|
93
117
|
}
|
94
|
-
stub_request(
|
118
|
+
stub_request("ConnectWithToken", authentication_details, response)
|
95
119
|
|
96
120
|
subject.connect_with_token private_app_id, access_id
|
97
121
|
|
98
|
-
expect(subject.
|
122
|
+
expect(subject.authentication_cookies.collect { |cookie|
|
99
123
|
cookie.name_and_value.split("=").last
|
100
124
|
}).to eq(["cookie value from e-conomic"])
|
101
125
|
end
|
102
126
|
|
103
127
|
it "updates the authentication token for new sessions" do
|
104
|
-
stub_request(
|
128
|
+
stub_request(
|
129
|
+
"ConnectWithToken",
|
130
|
+
nil,
|
131
|
+
:headers => {"Set-Cookie" => "authentication token"}
|
132
|
+
)
|
105
133
|
subject.connect_with_token private_app_id, access_id
|
106
134
|
|
107
|
-
stub_request(
|
135
|
+
stub_request(
|
136
|
+
"Connect",
|
137
|
+
nil,
|
138
|
+
:headers => {"Set-Cookie" => "another token"}
|
139
|
+
)
|
108
140
|
other_session = Economic::Session.new
|
109
|
-
other_session.connect_with_credentials(
|
141
|
+
other_session.connect_with_credentials(123_456, "api", "passw0rd")
|
110
142
|
|
111
|
-
expect(subject.
|
143
|
+
expect(subject.authentication_cookies.collect { |cookie|
|
112
144
|
cookie.name_and_value.split("=").last
|
113
145
|
}).to eq(["authentication token"])
|
114
|
-
expect(other_session.
|
146
|
+
expect(other_session.authentication_cookies.collect { |cookie|
|
115
147
|
cookie.name_and_value.split("=").last
|
116
148
|
}).to eq(["another token"])
|
117
149
|
end
|
118
150
|
|
119
151
|
it "doesn't use existing authentication details when connecting" do
|
120
|
-
expect(endpoint).to receive(:call).with(
|
152
|
+
expect(endpoint).to receive(:call).with(
|
153
|
+
:connect_with_token,
|
154
|
+
instance_of(Hash)
|
155
|
+
)
|
121
156
|
subject.connect_with_token private_app_id, access_id
|
122
157
|
end
|
123
158
|
end
|
@@ -146,7 +181,9 @@ describe Economic::Session do
|
|
146
181
|
|
147
182
|
describe "current_invoices" do
|
148
183
|
it "returns an CurrentInvoiceProxy" do
|
149
|
-
expect(subject.current_invoices).to be_instance_of(
|
184
|
+
expect(subject.current_invoices).to be_instance_of(
|
185
|
+
Economic::CurrentInvoiceProxy
|
186
|
+
)
|
150
187
|
end
|
151
188
|
|
152
189
|
it "memoizes the proxy" do
|
@@ -186,12 +223,14 @@ describe Economic::Session do
|
|
186
223
|
|
187
224
|
it "sends data if given" do
|
188
225
|
mock_request(:current_invoice_get_all, {:bar => :baz}, :none)
|
189
|
-
subject.request(:current_invoice_get_all,
|
226
|
+
subject.request(:current_invoice_get_all, :bar => :baz)
|
190
227
|
end
|
191
228
|
|
192
229
|
it "returns a hash with data" do
|
193
230
|
stub_request(:current_invoice_get_all, nil, :single)
|
194
|
-
expect(subject.request(:current_invoice_get_all)).to eq(
|
231
|
+
expect(subject.request(:current_invoice_get_all)).to eq(
|
232
|
+
:current_invoice_handle => {:id => "1"}
|
233
|
+
)
|
195
234
|
end
|
196
235
|
|
197
236
|
it "returns an empty hash if no data returned" do
|
@@ -204,22 +243,22 @@ describe Economic::Session do
|
|
204
243
|
let(:endpoint) { double("Endpoint") }
|
205
244
|
|
206
245
|
before :each do
|
207
|
-
Economic::Endpoint.
|
246
|
+
allow(Economic::Endpoint).to receive(:new).and_return(endpoint)
|
208
247
|
end
|
209
248
|
|
210
249
|
it "sets the log_level option of the endpoint" do
|
211
|
-
endpoint.
|
250
|
+
expect(endpoint).to receive(:log_level=).with(:info)
|
212
251
|
subject.log_level = :info
|
213
252
|
end
|
214
253
|
|
215
254
|
it "sets the log option of the endpoint" do
|
216
|
-
endpoint.
|
255
|
+
expect(endpoint).to receive(:log=).with(true)
|
217
256
|
subject.log = true
|
218
257
|
end
|
219
258
|
|
220
259
|
it "sets the logger option of the boolean" do
|
221
260
|
logger = double("MyLogger")
|
222
|
-
endpoint.
|
261
|
+
expect(endpoint).to receive(:logger=).with(logger)
|
223
262
|
subject.logger = logger
|
224
263
|
end
|
225
264
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<soap:Body>
|
4
|
+
<Account_GetAllResponse xmlns="http://e-conomic.com">
|
5
|
+
<Account_GetAllResult>
|
6
|
+
<AccountHandle>
|
7
|
+
<Number>37</Number>
|
8
|
+
</AccountHandle>
|
9
|
+
<AccountHandle>
|
10
|
+
<Number>42</Number>
|
11
|
+
</AccountHandle>
|
12
|
+
</Account_GetAllResult>
|
13
|
+
</Account_GetAllResponse>
|
14
|
+
</soap:Body>
|
15
|
+
</soap:Envelope>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<soap:Body>
|
4
|
+
<Account_GetAllResponse xmlns="http://e-conomic.com">
|
5
|
+
<Account_GetAllResult />
|
6
|
+
</Account_GetAllResponse>
|
7
|
+
</soap:Body>
|
8
|
+
</soap:Envelope>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<soap:Body>
|
4
|
+
<Account_GetAllResponse xmlns="http://e-conomic.com">
|
5
|
+
<Account_GetAllResult>
|
6
|
+
<AccountHandle>
|
7
|
+
<Number>1</Number>
|
8
|
+
</AccountHandle>
|
9
|
+
</Account_GetAllResult>
|
10
|
+
</Account_GetAllResponse>
|
11
|
+
</soap:Body>
|
12
|
+
</soap:Envelope>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<soap:Body>
|
4
|
+
<Account_GetDataArrayResponse xmlns="http://e-conomic.com">
|
5
|
+
<Account_GetDataArrayResult>
|
6
|
+
<AccountData>
|
7
|
+
<Handle>
|
8
|
+
<Number>37</Number>
|
9
|
+
</Handle>
|
10
|
+
<Number>37</Number>
|
11
|
+
<Name>Some account</Name>
|
12
|
+
<Type>ProfitAndLoss or Status or TotalFrom or Heading or HeadingStart or SumInterval or SumAlpha</Type>
|
13
|
+
<DebitCredit>Debit or Credit</DebitCredit>
|
14
|
+
<IsAccessible>boolean</IsAccessible>
|
15
|
+
<BlockDirectEntries>boolean</BlockDirectEntries>
|
16
|
+
<VatAccountHandle>
|
17
|
+
<VatCode>string</VatCode>
|
18
|
+
</VatAccountHandle>
|
19
|
+
<ContraAccountHandle>
|
20
|
+
<Number>int</Number>
|
21
|
+
</ContraAccountHandle>
|
22
|
+
<OpeningAccountHandle>
|
23
|
+
<Number>int</Number>
|
24
|
+
</OpeningAccountHandle>
|
25
|
+
<TotalFromHandle>
|
26
|
+
<Number>int</Number>
|
27
|
+
</TotalFromHandle>
|
28
|
+
<Balance>decimal</Balance>
|
29
|
+
<DepartmentHandle>
|
30
|
+
<Number>int</Number>
|
31
|
+
</DepartmentHandle>
|
32
|
+
<DistributionKeyHandle>
|
33
|
+
<Number>int</Number>
|
34
|
+
</DistributionKeyHandle>
|
35
|
+
</AccountData>
|
36
|
+
<AccountData>
|
37
|
+
<Handle>
|
38
|
+
<Number>42</Number>
|
39
|
+
</Handle>
|
40
|
+
<Number>42</Number>
|
41
|
+
<Name>Another account</Name>
|
42
|
+
<Type>ProfitAndLoss or Status or TotalFrom or Heading or HeadingStart or SumInterval or SumAlpha</Type>
|
43
|
+
<DebitCredit>Debit or Credit</DebitCredit>
|
44
|
+
<IsAccessible>boolean</IsAccessible>
|
45
|
+
<BlockDirectEntries>boolean</BlockDirectEntries>
|
46
|
+
<VatAccountHandle>
|
47
|
+
<VatCode>string</VatCode>
|
48
|
+
</VatAccountHandle>
|
49
|
+
<ContraAccountHandle>
|
50
|
+
<Number>int</Number>
|
51
|
+
</ContraAccountHandle>
|
52
|
+
<OpeningAccountHandle>
|
53
|
+
<Number>int</Number>
|
54
|
+
</OpeningAccountHandle>
|
55
|
+
<TotalFromHandle>
|
56
|
+
<Number>int</Number>
|
57
|
+
</TotalFromHandle>
|
58
|
+
<Balance>decimal</Balance>
|
59
|
+
<DepartmentHandle>
|
60
|
+
<Number>int</Number>
|
61
|
+
</DepartmentHandle>
|
62
|
+
<DistributionKeyHandle>
|
63
|
+
<Number>int</Number>
|
64
|
+
</DistributionKeyHandle>
|
65
|
+
</AccountData>
|
66
|
+
</Account_GetDataArrayResult>
|
67
|
+
</Account_GetDataArrayResponse>
|
68
|
+
</soap:Body>
|
69
|
+
</soap:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
|
3
|
+
<soap12:Body>
|
4
|
+
<Company_GetResponse xmlns="http://e-conomic.com">
|
5
|
+
<Company_GetResult>
|
6
|
+
<Number>string</Number>
|
7
|
+
</Company_GetResult>
|
8
|
+
</Company_GetResponse>
|
9
|
+
</soap12:Body>
|
10
|
+
</soap12:Envelope>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
|
3
|
+
<soap12:Body>
|
4
|
+
<Company_GetDataResponse xmlns="http://e-conomic.com">
|
5
|
+
<Company_GetDataResult>
|
6
|
+
<Handle>
|
7
|
+
<Number>string</Number>
|
8
|
+
</Handle>
|
9
|
+
<Number>string</Number>
|
10
|
+
<BaseCurrencyHandle>
|
11
|
+
<Code>string</Code>
|
12
|
+
</BaseCurrencyHandle>
|
13
|
+
<Name>string</Name>
|
14
|
+
<Address1>string</Address1>
|
15
|
+
<Address2>string</Address2>
|
16
|
+
<PostalCode>string</PostalCode>
|
17
|
+
<City>string</City>
|
18
|
+
<County>string</County>
|
19
|
+
<Country>string</Country>
|
20
|
+
<TelephoneNumber>string</TelephoneNumber>
|
21
|
+
<FaxNumber>string</FaxNumber>
|
22
|
+
<MobileNumber>string</MobileNumber>
|
23
|
+
<Contact>string</Contact>
|
24
|
+
<WebSite>string</WebSite>
|
25
|
+
<Email>string</Email>
|
26
|
+
<CINumber>string</CINumber>
|
27
|
+
<VatNumber>string</VatNumber>
|
28
|
+
<SignUpDate>dateTime</SignUpDate>
|
29
|
+
</Company_GetDataResult>
|
30
|
+
</Company_GetDataResponse>
|
31
|
+
</soap12:Body>
|
32
|
+
</soap12:Envelope>
|
@@ -1,42 +1,11 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
2
|
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
3
|
<soap:Body>
|
4
|
-
<
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<Id>int</Id>
|
11
|
-
<Number>int</Number>
|
12
|
-
<InvoiceHandle>
|
13
|
-
<Id>int</Id>
|
14
|
-
</InvoiceHandle>
|
15
|
-
<Description>string</Description>
|
16
|
-
<DeliveryDate>dateTime</DeliveryDate>
|
17
|
-
<UnitHandle>
|
18
|
-
<Number>int</Number>
|
19
|
-
</UnitHandle>
|
20
|
-
<ProductHandle>
|
21
|
-
<Number>string</Number>
|
22
|
-
</ProductHandle>
|
23
|
-
<Quantity>decimal</Quantity>
|
24
|
-
<UnitNetPrice>decimal</UnitNetPrice>
|
25
|
-
<DiscountAsPercent>decimal</DiscountAsPercent>
|
26
|
-
<UnitCostPrice>decimal</UnitCostPrice>
|
27
|
-
<TotalNetAmount>decimal</TotalNetAmount>
|
28
|
-
<TotalMargin>decimal</TotalMargin>
|
29
|
-
<MarginAsPercent>decimal</MarginAsPercent>
|
30
|
-
<DepartmentHandle>
|
31
|
-
<Number>int</Number>
|
32
|
-
</DepartmentHandle>
|
33
|
-
<DistributionKeyHandle>
|
34
|
-
<Number>int</Number>
|
35
|
-
</DistributionKeyHandle>
|
36
|
-
<InventoryLocationHandle>
|
37
|
-
<Number>int</Number>
|
38
|
-
</InventoryLocationHandle>
|
39
|
-
</data>
|
40
|
-
</CurrentInvoiceLine_CreateFromData>
|
4
|
+
<CurrentInvoiceLine_CreateFromDataResponse xmlns="http://e-conomic.com">
|
5
|
+
<CurrentInvoiceLine_CreateFromDataResult>
|
6
|
+
<Id>42</Id>
|
7
|
+
<Number>42</Number>
|
8
|
+
</CurrentInvoiceLine_CreateFromDataResult>
|
9
|
+
</CurrentInvoiceLine_CreateFromDataResponse>
|
41
10
|
</soap:Body>
|
42
11
|
</soap:Envelope>
|