fio_api 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -0
- data/.travis.yml +7 -2
- data/Gemfile +9 -12
- data/README.rdoc +8 -3
- data/Rakefile +11 -13
- data/VERSION +1 -1
- data/fio_api.gemspec +57 -33
- data/lib/base/account.rb +2 -2
- data/lib/base/deserializers/import_response_deserializer.rb +51 -0
- data/lib/base/deserializers/list_response_deserializer.rb +47 -36
- data/lib/base/list.rb +9 -14
- data/lib/base/payment.rb +40 -0
- data/lib/base/payments/domestic.rb +13 -0
- data/lib/base/payments/status.rb +8 -0
- data/lib/base/payments/xml/item.rb +41 -0
- data/lib/base/payments/xml/root.rb +30 -0
- data/lib/base/request.rb +4 -54
- data/lib/base/transaction.rb +2 -2
- data/lib/base.rb +2 -6
- data/lib/fio_api.rb +16 -10
- data/lib/utils/hash.rb +2 -2
- data/spec/base/account_spec.rb +4 -8
- data/spec/base/deserializers/import_response_deserializer_spec.rb +41 -0
- data/spec/base/deserializers/list_response_deserializer_spec.rb +48 -59
- data/spec/base/list_spec.rb +36 -23
- data/spec/base/payment_spec.rb +38 -0
- data/spec/base/payments/domestic_spec.rb +14 -0
- data/spec/base/payments/status_spec.rb +13 -0
- data/spec/base/payments/xml/root_spec.rb +63 -0
- data/spec/base/request_spec.rb +2 -49
- data/spec/base/transaction_spec.rb +5 -9
- data/spec/fio_api_spec.rb +4 -7
- data/spec/fixtures/vcr_cassettes/by_date_range.yml +47 -0
- data/spec/fixtures/vcr_cassettes/by_listing_id_and_year.yml +49 -0
- data/spec/fixtures/vcr_cassettes/from_last_fetch.yml +44 -0
- data/spec/fixtures/vcr_cassettes/import.yml +53 -0
- data/spec/fixtures/vcr_cassettes/invalid_import.yml +51 -0
- data/spec/fixtures/vcr_cassettes/set_last_fetch_date.yml +44 -0
- data/spec/fixtures/vcr_cassettes/set_last_fetch_id.yml +47 -0
- data/spec/spec_helper.rb +7 -2
- data/spec/utils/hash_spec.rb +10 -15
- metadata +70 -24
- data/lib/base/deserializer.rb +0 -19
- data/spec/base/deserializer_spec.rb +0 -12
data/spec/base/request_spec.rb
CHANGED
@@ -1,54 +1,7 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe FioAPI::Request do
|
4
|
-
|
5
|
-
it "should have defined token" do
|
4
|
+
it 'should have defined token' do
|
6
5
|
expect(FioAPI::Request).to respond_to :token
|
7
6
|
end
|
8
|
-
|
9
|
-
it "should have defined uri" do
|
10
|
-
expect(FioAPI::Request.new).to respond_to :uri
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should have defined response" do
|
14
|
-
expect(FioAPI::Request.new).to respond_to :response
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "fetch" do
|
18
|
-
before(:each) do
|
19
|
-
@response = {response: "response"}
|
20
|
-
allow(HTTParty).to receive(:get) { @response }
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should fill the response" do
|
24
|
-
request = FioAPI::Request.new
|
25
|
-
request.fetch
|
26
|
-
expect(request.response).to eq @response
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should deserialize the response" do
|
30
|
-
deserializer = FioAPI::ListResponseDeserializer.new
|
31
|
-
request = FioAPI::Request.new(deserializer: deserializer)
|
32
|
-
request.fetch
|
33
|
-
expect(request.response).to eq deserializer.deserialize(@response)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "uri manipulation" do
|
38
|
-
before(:each) do
|
39
|
-
FioAPI.token = "somelongtoken"
|
40
|
-
@url = "https://www.fio.cz/ib_api/rest/#{FioAPI.token}/transactions.json"
|
41
|
-
@request = FioAPI::Request.new
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should construct uri from arguments" do
|
45
|
-
expect(@request.send(:construct_uri, FioAPI.token, 'transactions.json').to_s).to eq @url
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should set uri from arguments" do
|
49
|
-
@request.set_uri FioAPI.token, 'transactions.json'
|
50
|
-
expect(@request.uri).to eq @url
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
7
|
end
|
@@ -1,18 +1,14 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe FioAPI::Transaction do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
:bank_name, :ks, :vs, :ss, :user_identification, :message_for_recipient, :transaction_type,
|
9
|
-
:sender, :detail_info, :comment, :bic, :action_id].each do |attr|
|
4
|
+
describe 'instance attributes' do
|
5
|
+
%i[transaction_id date amount currency account account_name bank_code
|
6
|
+
bank_name ks vs ss user_identification message_for_recipient transaction_type
|
7
|
+
sender detail_info comment bic action_id].each do |attr|
|
10
8
|
|
11
9
|
it "should respond to #{attr}" do
|
12
10
|
expect(FioAPI::Transaction.new).to respond_to(attr)
|
13
11
|
end
|
14
|
-
|
15
12
|
end
|
16
13
|
end
|
17
|
-
|
18
14
|
end
|
data/spec/fio_api_spec.rb
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
describe FioAPI do
|
4
|
-
it
|
5
|
-
token =
|
4
|
+
it 'should setup token' do
|
5
|
+
token = 'some token'
|
6
6
|
FioAPI.token = token
|
7
7
|
expect(FioAPI::Request.token).to eq token
|
8
8
|
end
|
9
9
|
|
10
|
-
it
|
11
|
-
token =
|
10
|
+
it 'should return token' do
|
11
|
+
token = 'some token'
|
12
12
|
FioAPI::Request.token = token
|
13
13
|
expect(FioAPI.token).to eq token
|
14
14
|
end
|
15
15
|
end
|
16
|
-
|
17
|
-
|
18
|
-
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/periods/<%= FioAPI.token %>/2011-01-01/2012-11-25/transactions.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sat, 02 Jun 2018 21:19:18 GMT
|
23
|
+
Server:
|
24
|
+
- Apache-Coyote/1.1
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
X-Xss-Protection:
|
28
|
+
- 1; mode=block
|
29
|
+
Referrer-Policy:
|
30
|
+
- strict-origin-when-cross-origin
|
31
|
+
X-Intervalusetoken:
|
32
|
+
- '20000'
|
33
|
+
Content-Type:
|
34
|
+
- application/json;charset=UTF-8
|
35
|
+
Content-Length:
|
36
|
+
- '1253'
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
Strict-Transport-Security:
|
40
|
+
- max-age=31536000
|
41
|
+
body:
|
42
|
+
encoding: ASCII-8BIT
|
43
|
+
string: !binary |-
|
44
|
+
eyJhY2NvdW50U3RhdGVtZW50Ijp7ImluZm8iOnsiYWNjb3VudElkIjoiMjMwMDMxODY1MCIsImJhbmtJZCI6IjIwMTAiLCJjdXJyZW5jeSI6IkNaSyIsImliYW4iOiJDWjc5MjAxMDAwMDAwMDIzMDAzMTg2NTAiLCJiaWMiOiJGSU9CQ1pQUFhYWCIsIm9wZW5pbmdCYWxhbmNlIjowLjAwLCJjbG9zaW5nQmFsYW5jZSI6MTAwLjAwLCJkYXRlU3RhcnQiOiIyMDExLTAxLTAxKzAxMDAiLCJkYXRlRW5kIjoiMjAxMi0xMS0yNSswMTAwIiwieWVhckxpc3QiOm51bGwsImlkTGlzdCI6bnVsbCwiaWRGcm9tIjoxMTYwNTE1NjY5LCJpZFRvIjoxMTYwNTE1NjY5LCJpZExhc3REb3dubG9hZCI6bnVsbH0sInRyYW5zYWN0aW9uTGlzdCI6eyJ0cmFuc2FjdGlvbiI6W3siY29sdW1uMjIiOnsidmFsdWUiOjExNjA1MTU2NjksIm5hbWUiOiJJRCBwb2h5YnUiLCJpZCI6MjJ9LCJjb2x1bW4wIjp7InZhbHVlIjoiMjAxMi0xMC0xOCswMjAwIiwibmFtZSI6IkRhdHVtIiwiaWQiOjB9LCJjb2x1bW4xIjp7InZhbHVlIjoxMDAuMDAsIm5hbWUiOiJPYmplbSIsImlkIjoxfSwiY29sdW1uMTQiOnsidmFsdWUiOiJDWksiLCJuYW1lIjoiTcSbbmEiLCJpZCI6MTR9LCJjb2x1bW4yIjp7InZhbHVlIjoiMjYwMDE3MDIwNSIsIm5hbWUiOiJQcm90acO6xI1ldCIsImlkIjoyfSwiY29sdW1uMTAiOnsidmFsdWUiOiJNYXJ0aW7DrWssIEFkYW0iLCJuYW1lIjoiTsOhemV2IHByb3Rpw7rEjXR1IiwiaWQiOjEwfSwiY29sdW1uMyI6eyJ2YWx1ZSI6IjIwMTAiLCJuYW1lIjoiS8OzZCBiYW5reSIsImlkIjozfSwiY29sdW1uMTIiOnsidmFsdWUiOiJGaW8gYmFua2EsIGEucy4iLCJuYW1lIjoiTsOhemV2IGJhbmt5IiwiaWQiOjEyfSwiY29sdW1uNCI6bnVsbCwiY29sdW1uNSI6bnVsbCwiY29sdW1uNiI6bnVsbCwiY29sdW1uNyI6bnVsbCwiY29sdW1uMTYiOnsidmFsdWUiOiJNaW5pbGFuaSB2a2xhZCBwcm8gRklPIiwibmFtZSI6IlpwcsOhdmEgcHJvIHDFmcOtamVtY2UiLCJpZCI6MTZ9LCJjb2x1bW44Ijp7InZhbHVlIjoiUMWZw61qZW0gcMWZZXZvZGVtIHV2bml0xZkgYmFua3kiLCJuYW1lIjoiVHlwIiwiaWQiOjh9LCJjb2x1bW45IjpudWxsLCJjb2x1bW4xOCI6bnVsbCwiY29sdW1uMjUiOnsidmFsdWUiOiJNaW5pbGFuaSB2a2xhZCBwcm8gRklPIiwibmFtZSI6IktvbWVudMOhxZkiLCJpZCI6MjV9LCJjb2x1bW4yNiI6bnVsbCwiY29sdW1uMTciOnsidmFsdWUiOjIxNjM3MzEwNTEsIm5hbWUiOiJJRCBwb2t5bnUiLCJpZCI6MTd9fV19fX0=
|
45
|
+
http_version:
|
46
|
+
recorded_at: Sat, 02 Jun 2018 21:19:19 GMT
|
47
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/by-id/<%= FioAPI.token %>/2012/12345/transactions.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 500
|
19
|
+
message: Internal Server Error
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sat, 02 Jun 2018 21:21:47 GMT
|
23
|
+
Server:
|
24
|
+
- Apache-Coyote/1.1
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
X-Xss-Protection:
|
28
|
+
- 1; mode=block
|
29
|
+
Referrer-Policy:
|
30
|
+
- strict-origin-when-cross-origin
|
31
|
+
X-Intervalusetoken:
|
32
|
+
- '20000'
|
33
|
+
Content-Type:
|
34
|
+
- text/xml;charset=UTF-8
|
35
|
+
Content-Length:
|
36
|
+
- '338'
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
Strict-Transport-Security:
|
40
|
+
- max-age=31536000
|
41
|
+
Connection:
|
42
|
+
- close
|
43
|
+
body:
|
44
|
+
encoding: ASCII-8BIT
|
45
|
+
string: !binary |-
|
46
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PgoKPHJlc3BvbnNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJodHRwczovL3d3dy5maW8uY3ovc2NoZW1hL3Jlc3BvbnNlLnhzZCI+Cgk8cmVzdWx0PiAKCQk8ZXJyb3JDb2RlPjIxPC9lcnJvckNvZGU+CgkJPHN0YXR1cz5lcnJvcjwvc3RhdHVzPgoJCTxtZXNzYWdlPlbDvXBpcyBuZWV4aXN0dWplPC9tZXNzYWdlPgoJCTxkZXRhaWw+PC9kZXRhaWw+Cgk8L3Jlc3VsdD4KPC9yZXNwb25zZT4=
|
47
|
+
http_version:
|
48
|
+
recorded_at: Sat, 02 Jun 2018 21:21:47 GMT
|
49
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/last/<%= FioAPI.token %>/transactions.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 409
|
19
|
+
message: Conflict
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sat, 02 Jun 2018 21:21:47 GMT
|
23
|
+
Server:
|
24
|
+
- Apache-Coyote/1.1
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
X-Xss-Protection:
|
28
|
+
- 1; mode=block
|
29
|
+
Referrer-Policy:
|
30
|
+
- strict-origin-when-cross-origin
|
31
|
+
Content-Type:
|
32
|
+
- text/plain;charset=UTF-8
|
33
|
+
Content-Length:
|
34
|
+
- '0'
|
35
|
+
X-Frame-Options:
|
36
|
+
- SAMEORIGIN
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=31536000
|
39
|
+
body:
|
40
|
+
encoding: UTF-8
|
41
|
+
string: ''
|
42
|
+
http_version:
|
43
|
+
recorded_at: Sat, 02 Jun 2018 21:21:47 GMT
|
44
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/import/?token=<%= FioAPI.token %>&type=xml
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: "--------------------------zhBhYIqS35Jglk8M\r\nContent-Disposition:
|
9
|
+
form-data; name=\"file\"; filename=\"20180603-11219-1kw9ccy\"\r\nContent-Type:
|
10
|
+
application/octet-stream\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Import
|
11
|
+
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.fio.cz/schema/importIB.xsd\">\n
|
12
|
+
\ <Orders>\n <DomesticTransaction>\n <accountFrom>11111111</accountFrom>\n
|
13
|
+
\ <currency>CZK</currency>\n <amount>100.0</amount>\n <accountTo>22222222</accountTo>\n
|
14
|
+
\ <bankCode>3030</bankCode>\n <ks/>\n <vs/>\n <ss/>\n <date>2018-06-15</date>\n
|
15
|
+
\ <messageForRecipient/>\n <comment/>\n <paymentType>431001</paymentType>\n
|
16
|
+
\ </DomesticTransaction>\n </Orders>\n</Import>\n\r\n--------------------------zhBhYIqS35Jglk8M--\r\n"
|
17
|
+
headers:
|
18
|
+
Content-Type:
|
19
|
+
- multipart/form-data; boundary=------------------------zhBhYIqS35Jglk8M
|
20
|
+
Boundary:
|
21
|
+
- "-----------RubyMultipartPost"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Date:
|
28
|
+
- Sat, 02 Jun 2018 23:49:44 GMT
|
29
|
+
Server:
|
30
|
+
- Apache-Coyote/1.1
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
Referrer-Policy:
|
36
|
+
- strict-origin-when-cross-origin
|
37
|
+
Content-Type:
|
38
|
+
- application/xml;charset=UTF-8
|
39
|
+
X-Frame-Options:
|
40
|
+
- SAMEORIGIN
|
41
|
+
Strict-Transport-Security:
|
42
|
+
- max-age=31536000
|
43
|
+
Transfer-Encoding:
|
44
|
+
- chunked
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><responseImport
|
48
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.fio.cz/schema/responseImport.xsd"><result><errorCode>0</errorCode><idInstruction>153935923</idInstruction><status>ok</status><sums><sum
|
49
|
+
id="CZK"><sumCredit>0</sumCredit><sumDebet>100.0</sumDebet></sum></sums></result><ordersDetails><detail
|
50
|
+
id="1"><messages><message status="ok" errorCode="0">OK</message></messages></detail></ordersDetails></responseImport>
|
51
|
+
http_version:
|
52
|
+
recorded_at: Sat, 02 Jun 2018 23:49:44 GMT
|
53
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,51 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/import/?token=<%= FioAPI.token %>&type=xml
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: "--------------------------8kR1u87fzZKMC9tT\r\nContent-Disposition:
|
9
|
+
form-data; name=\"file\"; filename=\"20180603-18534-1yh8r7y\"\r\nContent-Type:
|
10
|
+
application/octet-stream\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Import
|
11
|
+
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.fio.cz/schema/importIB.xsd\">\n
|
12
|
+
\ <Orders>\n <DomesticTransaction>\n <accountFrom>11111111</accountFrom>\n
|
13
|
+
\ <currency>CZK</currency>\n <amount/>\n <accountTo>22222222</accountTo>\n
|
14
|
+
\ <bankCode>3030</bankCode>\n <ks/>\n <vs/>\n <ss/>\n <date>2018-06-15</date>\n
|
15
|
+
\ <messageForRecipient/>\n <comment/>\n <paymentType>431001</paymentType>\n
|
16
|
+
\ </DomesticTransaction>\n </Orders>\n</Import>\n\r\n--------------------------8kR1u87fzZKMC9tT--\r\n"
|
17
|
+
headers:
|
18
|
+
Content-Type:
|
19
|
+
- multipart/form-data; boundary=------------------------8kR1u87fzZKMC9tT
|
20
|
+
Boundary:
|
21
|
+
- "-----------RubyMultipartPost"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Date:
|
28
|
+
- Sun, 03 Jun 2018 12:28:55 GMT
|
29
|
+
Server:
|
30
|
+
- Apache-Coyote/1.1
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
Referrer-Policy:
|
36
|
+
- strict-origin-when-cross-origin
|
37
|
+
Content-Type:
|
38
|
+
- application/xml;charset=UTF-8
|
39
|
+
X-Frame-Options:
|
40
|
+
- SAMEORIGIN
|
41
|
+
Strict-Transport-Security:
|
42
|
+
- max-age=31536000
|
43
|
+
Transfer-Encoding:
|
44
|
+
- chunked
|
45
|
+
body:
|
46
|
+
encoding: ASCII-8BIT
|
47
|
+
string: !binary |-
|
48
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxyZXNwb25zZUltcG9ydCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5maW8uY3ovc2NoZW1hL3Jlc3BvbnNlSW1wb3J0LnhzZCI+PHJlc3VsdD48ZXJyb3JDb2RlPjExPC9lcnJvckNvZGU+PHN0YXR1cz5lcnJvcjwvc3RhdHVzPjxtZXNzYWdlPlNvdWJvciBtw6EgY2h5YnkgdmUgc3RydWt0dcWZZTogY3ZjLWRhdGF0eXBlLXZhbGlkLjEuMi4xOiAnJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgJ2RlY2ltYWwnLjwvbWVzc2FnZT48L3Jlc3VsdD48L3Jlc3BvbnNlSW1wb3J0Pg==
|
49
|
+
http_version:
|
50
|
+
recorded_at: Sun, 03 Jun 2018 12:28:55 GMT
|
51
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/set-last-date/<%= FioAPI.token %>/2012-11-25/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sat, 02 Jun 2018 21:21:47 GMT
|
23
|
+
Server:
|
24
|
+
- Apache-Coyote/1.1
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
X-Xss-Protection:
|
28
|
+
- 1; mode=block
|
29
|
+
Referrer-Policy:
|
30
|
+
- strict-origin-when-cross-origin
|
31
|
+
X-Intervalusetoken:
|
32
|
+
- '0'
|
33
|
+
Content-Length:
|
34
|
+
- '0'
|
35
|
+
X-Frame-Options:
|
36
|
+
- SAMEORIGIN
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=31536000
|
39
|
+
body:
|
40
|
+
encoding: UTF-8
|
41
|
+
string: ''
|
42
|
+
http_version:
|
43
|
+
recorded_at: Sat, 02 Jun 2018 21:21:47 GMT
|
44
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.fio.cz/ib_api/rest/set-last-id/<%= FioAPI.token %>/12345/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 500
|
19
|
+
message: Internal Server Error
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sat, 02 Jun 2018 21:21:47 GMT
|
23
|
+
Server:
|
24
|
+
- Apache-Coyote/1.1
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
X-Xss-Protection:
|
28
|
+
- 1; mode=block
|
29
|
+
Referrer-Policy:
|
30
|
+
- strict-origin-when-cross-origin
|
31
|
+
Content-Type:
|
32
|
+
- text/xml;charset=UTF-8
|
33
|
+
Content-Length:
|
34
|
+
- '406'
|
35
|
+
X-Frame-Options:
|
36
|
+
- SAMEORIGIN
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=31536000
|
39
|
+
Connection:
|
40
|
+
- close
|
41
|
+
body:
|
42
|
+
encoding: ASCII-8BIT
|
43
|
+
string: !binary |-
|
44
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PgoKPHJlc3BvbnNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJodHRwczovL3d3dy5maW8uY3ovc2NoZW1hL3Jlc3BvbnNlLnhzZCI+Cgk8cmVzdWx0PiAKCQk8ZXJyb3JDb2RlPjMxPC9lcnJvckNvZGU+CgkJPHN0YXR1cz5lcnJvcjwvc3RhdHVzPgoJCTxtZXNzYWdlPlphcsOhxb5rYSBuZW1vaGxhIGLDvXQgbmFzdGF2ZW5hLCBwcm90b8W+ZSBwb2h5YklEIDEyMzQ1IG5hIFZhxaFlbSDDusSNdHUgbmVleGlzdHVqZS48L21lc3NhZ2U+CgkJPGRldGFpbD48L2RldGFpbD4KCTwvcmVzdWx0Pgo8L3Jlc3BvbnNlPg==
|
45
|
+
http_version:
|
46
|
+
recorded_at: Sat, 02 Jun 2018 21:21:47 GMT
|
47
|
+
recorded_with: VCR 4.0.0
|
data/spec/spec_helper.rb
CHANGED
@@ -2,13 +2,18 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
3
|
require 'rspec'
|
4
4
|
require 'fio_api'
|
5
|
+
require 'vcr'
|
5
6
|
|
6
7
|
# Requires supporting files with custom matchers and macros, etc,
|
7
8
|
# in ./support/ and its subdirectories.
|
8
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
9
10
|
|
10
|
-
FioAPI.token =
|
11
|
+
FioAPI.token = 'somelongtoken'
|
11
12
|
|
12
13
|
RSpec.configure do |config|
|
14
|
+
end
|
13
15
|
|
16
|
+
VCR.configure do |config|
|
17
|
+
config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
18
|
+
config.hook_into :webmock
|
14
19
|
end
|
data/spec/utils/hash_spec.rb
CHANGED
@@ -1,34 +1,29 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe Hash do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
it "should respond to try_path method" do
|
4
|
+
describe 'try_path' do
|
5
|
+
it 'should respond to try_path method' do
|
8
6
|
expect({}).to respond_to(:try_path)
|
9
7
|
end
|
10
8
|
|
11
9
|
it "should return nil if can't find key" do
|
12
|
-
expect({}.try_path(
|
10
|
+
expect({}.try_path('key1', 'key2')).to be_nil
|
13
11
|
end
|
14
12
|
|
15
|
-
it
|
16
|
-
expect({
|
13
|
+
it 'should return value on path' do
|
14
|
+
expect({ 'key1' => { 'key2' => 'value' } }.try_path('key1', 'key2')).to eq 'value'
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
20
18
|
|
21
19
|
describe NilClass do
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
it "should respond to try_path method" do
|
20
|
+
describe 'try_path' do
|
21
|
+
it 'should respond to try_path method' do
|
26
22
|
expect(nil).to respond_to(:try_path)
|
27
23
|
end
|
28
24
|
|
29
|
-
it
|
30
|
-
expect(nil.try_path(
|
25
|
+
it 'should return nil' do
|
26
|
+
expect(nil.try_path('key1', 'key2')).to be_nil
|
31
27
|
end
|
32
|
-
|
33
28
|
end
|
34
29
|
end
|