jemquarie 0.0.2

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.
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ describe Jemquarie::Importer do
4
+
5
+ before(:each) do
6
+ Jemquarie::Jemquarie.api_credentials("testkey", "testapp")
7
+ end
8
+
9
+ describe "success" do
10
+ let(:importer) do
11
+ Jemquarie::Importer.new('valid_code', 'valid_password')
12
+ end
13
+ before(:each) do
14
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
15
+ body: File.read('spec/files/transactions.xml'),
16
+ content_type: 'text/xml'
17
+ )
18
+ @result = importer.cash_transactions(Date.parse("01/01/2000"), Date.today, '12345')
19
+ end
20
+ it "should work" do
21
+ expect(@result).to be_kind_of Array
22
+ expect(@result).to have(185).items
23
+
24
+ first_item = @result.first
25
+ expect(first_item[:foreign_identifier]).to eq("0132058314")
26
+ expect(first_item[:date_time]).to eq(Time.parse("2008-12-19 00:00:00 UTC"))
27
+ expect(first_item[:amount]).to eq("-2.4100")
28
+ expect(first_item[:type_name]).to eq("B-PAY WITHDRAWAL")
29
+ expect(first_item[:description]).to eq("BPAY TO MACQUARIE CMT")
30
+ expect(first_item[:meta_data][:updated_at]).to eq(Time.parse("2008-12-19 04:14:26.683 UTC"))
31
+
32
+ last_item = @result.last
33
+ expect(last_item[:foreign_identifier]).to eq("0342606112")
34
+ expect(last_item[:date_time]).to eq(Time.parse("2014-04-30 00:00:00 UTC"))
35
+ expect(last_item[:amount]).to eq("0.0600")
36
+ expect(last_item[:type_name]).to eq("INTEREST PAID")
37
+ expect(last_item[:description]).to eq("CASH MANAGEMENT SERVICE INTEREST PAID")
38
+ expect(last_item[:meta_data][:updated_at]).to eq(Time.parse("2014-05-01 01:36:42.763 UTC"))
39
+ end
40
+ end
41
+
42
+ describe "do not allow more than 2 days without an account number" do
43
+ let(:importer) do
44
+ Jemquarie::Importer.new('valid_code', 'valid_password')
45
+ end
46
+ before(:each) do
47
+ @result = importer.cash_transactions((Date.today - 3.days), Date.today)
48
+ end
49
+ it "should stop the request" do
50
+ expect(@result).to be_kind_of Hash
51
+ end
52
+ end
53
+
54
+ describe "wrong auth" do
55
+ let(:importer) do
56
+ Jemquarie::Importer.new('invalid_code', 'or_invalid_password')
57
+ end
58
+ before(:each) do
59
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
60
+ body: File.read('spec/files/non_authenticated.xml'),
61
+ content_type: 'text/xml'
62
+ )
63
+ @result = importer.cash_transactions(Date.parse("01/01/2000"), Date.today, '12345')
64
+ end
65
+ it "should return wrong authentication" do
66
+ expect(@result).to be_kind_of Hash
67
+ expect(@result[:error]).to eq("Invalid credentials")
68
+ end
69
+ end
70
+
71
+ describe "no data" do
72
+ let(:importer) do
73
+ Jemquarie::Importer.new('valid_code', 'valid_password')
74
+ end
75
+ before(:each) do
76
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
77
+ body: File.read('spec/files/no_data.xml'),
78
+ content_type: 'text/xml'
79
+ )
80
+ @result = importer.cash_transactions(Date.parse("01/01/2000"), Date.today, '12345')
81
+ end
82
+ it "should return an empty array" do
83
+ expect(@result).to be_kind_of Array
84
+ expect(@result).to eq([])
85
+ end
86
+ end
87
+
88
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Jemquarie::Jemquarie do
4
+
5
+ describe "set api_key" do
6
+ before :each do
7
+ Jemquarie::Jemquarie.api_credentials('TEST', 'APP')
8
+ end
9
+ it "should work" do
10
+ expect(Jemquarie::Jemquarie.api_key).to eq('TEST')
11
+ expect(Jemquarie::Jemquarie.app_key).to eq('APP')
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,23 @@
1
+ require 'jemquarie'
2
+ require 'fakeweb'
3
+
4
+ # This file was generated by the `rspec --init` command. Conventionally, all
5
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
6
+ # Require this file using `require "spec_helper"` to ensure that it is only
7
+ # loaded once.
8
+ #
9
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
+ RSpec.configure do |config|
11
+ config.treat_symbols_as_metadata_keys_with_true_values = true
12
+ config.run_all_when_everything_filtered = true
13
+ config.filter_run :focus
14
+
15
+ # Run specs in random order to surface order dependencies. If you find an
16
+ # order dependency and want to debug it, you can fix the order by providing
17
+ # the seed, which is printed after each run.
18
+ # --seed 1234
19
+ config.order = 'random'
20
+ end
21
+
22
+ FakeWeb.allow_net_connect = %r[^https?://(localhost|127.0.0.1)]
23
+ FakeWeb.allow_net_connect = false
metadata ADDED
@@ -0,0 +1,153 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jemquarie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Claudio Contin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: savon
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 10.3.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 10.3.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: fakeweb
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.3.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.14.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.14.0
97
+ description: Connect to Macquarie ESI web services
98
+ email:
99
+ - contin@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".travis.yml"
106
+ - Gemfile
107
+ - Gemfile.lock
108
+ - LICENSE.txt
109
+ - README.md
110
+ - Rakefile
111
+ - jemquarie.gemspec
112
+ - lib/jemquarie.rb
113
+ - lib/jemquarie/extract.wsdl
114
+ - lib/jemquarie/importer.rb
115
+ - lib/jemquarie/parser/cash_transactions.rb
116
+ - lib/jemquarie/version.rb
117
+ - spec/files/no_data.xml
118
+ - spec/files/non_authenticated.xml
119
+ - spec/files/transactions.xml
120
+ - spec/lib/importer_spec.rb
121
+ - spec/lib/jemquarie_spec.rb
122
+ - spec/spec_helper.rb
123
+ homepage: https://github.com/clod81/jemquarie
124
+ licenses:
125
+ - MIT
126
+ metadata: {}
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ requirements: []
142
+ rubyforge_project:
143
+ rubygems_version: 2.2.2
144
+ signing_key:
145
+ specification_version: 4
146
+ summary: Ruby Gem for extracting cash transactions from Macquarie ESI web service
147
+ test_files:
148
+ - spec/files/no_data.xml
149
+ - spec/files/non_authenticated.xml
150
+ - spec/files/transactions.xml
151
+ - spec/lib/importer_spec.rb
152
+ - spec/lib/jemquarie_spec.rb
153
+ - spec/spec_helper.rb