bankserv 0.3.3 → 0.3.4

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.
@@ -52,14 +52,18 @@ module Bankserv
52
52
  # ------------------------------------------------------------------------------------------------------------
53
53
  # | NB: ABSA place output files in our incoming directory! They take our input files from our outgoing folder.|
54
54
  # ------------------------------------------------------------------------------------------------------------
55
-
56
55
  begin
57
56
  Engine.output_files(@service).each do |file|
58
57
  @logs[:output_files] << "Processing #{file}."
59
58
 
60
59
  # contents = File.open("#{Bankserv::Engine.output_directory}/#{file}", "rb").read
61
60
  contents = File.open("#{@service.config[:incoming_directory]}/#{file}", "rb").read
62
- document = Bankserv::OutputDocument.store(contents)
61
+ if @service.kind_of? StatementService
62
+ document = Bankserv::Statement.store(contents)
63
+ else
64
+ document = Bankserv::OutputDocument.store(contents)
65
+ end
66
+
63
67
  document.process!
64
68
 
65
69
  @logs[:output_files] << "Processing #{file}. Complete."
@@ -193,7 +197,8 @@ module Bankserv
193
197
  end
194
198
 
195
199
  def self.output_files(service)
196
- Dir.entries(service.config[:incoming_directory]).select {|file| file.upcase.starts_with? "OUTPUT" }
200
+ return Dir.entries(service.config[:incoming_directory]).select {|file| file.upcase.starts_with? "OUTPUT" } unless service.kind_of? StatementService
201
+ Dir.entries(service.config[:incoming_directory]).delete_if {|element| File.directory?(element)}
197
202
  end
198
203
 
199
204
  end
@@ -1,3 +1,3 @@
1
1
  module Bankserv
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -0,0 +1,8 @@
1
+ 00000000000000000000P2012060210831RENTAL CONNECT PTY LTD 10831 000000028
2
+ 10000000004079058521000290000120120601 +000000000000000+00000000000034862 AA0A 000000028
3
+ 2000000000407905852100029000012012060120120601000000000000000000-000000000006180+00000000000028682MIN SERVICE FEE HEADOFFICE CG71SERM+000000000 +000000000+000000000 000000096000000003000003405000000000000000000000000000000 3491 000000000000000 0000000000000000 0000000000000000000 0000000280404
4
+ 2000000000407905852100029000012012060120120601000000000000000000-000000000021600+00000000000007082ADMIN CHARGE HEADOFFICE CG71ADMC+000000000 +000000000+000000000 000000096000000004000000000000000000000000000000000000000 0100 000000000000000 0000000000000000 0000000000000000000 0000000280505
5
+ 2000000000407905852100029000012012060120120601000000000000000000-000000000000075+00000000000007007DEBIT INTEREST HEADOFFICE IN71INDR+000000000 +000000000+000000000 000000097000000005000000000000000000000000000000000000000 2160 000000000000000 0000000000000000 0000000000000000000 0000000280808
6
+ 2000000000407905852100029000012012060120120601000000000000000000-000000000000066+00000000000006941INT ON EXCESS AMNT HEADOFFICE IN71PENI+000000000 +000000000+000000000 000000097000000006000000000000000000000000000000000000000 2650 000000000000000 0000000000000000 0000000000000000000 0000000280808
7
+ 89999999999999999999 -00000000000027921 0000000006 000000028
8
+ 99999999999999999999P20120602 0000000008 000000028
@@ -0,0 +1,9 @@
1
+ 00000000000000000000P2012060510831RENTAL CONNECT PTY LTD 10831 000000031
2
+ 10000000004079058521000320000120120604 +000000000000000+00000000000006941 AA0A 000000031
3
+ 2000000000407905852100032000012012060420120604000000000000000102-000000000005245+00000000000001696ABSA FEE SETTLEMENT Business Integrator Fees FN71CGW +000000000 +000000000+000000000 000000102000000004000000000000000000000000000000000000000 0710 000000000000000 0000000000000000 0000000000000000000 0000000310404
4
+ 2000000000407905852100032000012012060420120604000000000000000104-000000000005860-00000000000004164ABSA FEE SETTLEMENT Business Integrator Fees FN71CGW +000000000 +000000000+000000000 000000104000000006000000000000000000000000000000000000000 0710 000000000000000 0000000000000000 0000000000000000000 0000000310404
5
+ 2000000000407905852100032000012012060420120604000000000000000105-000000000005245-00000000000009409ABSA FEE SETTLEMENT Business Integrator Fees FN71CGW +000000000 +000000000+000000000 000000105000000008000000000000000000000000000000000000000 0710 000000000000000 0000000000000000 0000000000000000000 0000000310404
6
+ 2000000000407905852100032000012012060420120604000000000000000106-000000000008446-00000000000017855ABSA FEE SETTLEMENT Business Integrator Fees FN71CGW +000000000 +000000000+000000000 000000106000000010000000000000000000000000000000000000000 0710 000000000000000 0000000000000000 0000000000000000000 0000000310404
7
+ 2000000000407905852100032000012012060420120604000000000000000107-000000000005521-00000000000023376ABSA FEE SETTLEMENT Business Integrator Fees FN71CGW +000000000 +000000000+000000000 000000107000000012000000000000000000000000000000000000000 0710 000000000000000 0000000000000000 0000000000000000000 0000000310404
8
+ 89999999999999999999 -00000000000030317 0000000007 000000031
9
+ 99999999999999999999P20120605 0000000009 000000031
@@ -26,6 +26,12 @@ describe Bankserv::Engine do
26
26
  FileUtils.mkdir(Dir.pwd + "/spec/examples/95345/incoming") unless File.directory?(Dir.pwd + "/spec/examples/95345/incoming")
27
27
  FileUtils.mkdir(Dir.pwd + "/spec/examples/95345/outgoing") unless File.directory?(Dir.pwd + "/spec/examples/95345/outgoing")
28
28
 
29
+ FileUtils.mkdir(Dir.pwd + "/spec/examples/K010831") unless File.directory?(Dir.pwd + "/spec/examples/K010831")
30
+ FileUtils.mkdir(Dir.pwd + "/spec/examples/K010831/archive") unless File.directory?(Dir.pwd + "/spec/examples/K010831/archive")
31
+ FileUtils.mkdir(Dir.pwd + "/spec/examples/K010831/incoming") unless File.directory?(Dir.pwd + "/spec/examples/K010831/incoming")
32
+ FileUtils.copy(Dir.pwd + "/spec/examples/TJRRECF.0602", Dir.pwd + "/spec/examples/K010831/incoming/")
33
+ FileUtils.copy(Dir.pwd + "/spec/examples/TJRRECF.0605", Dir.pwd + "/spec/examples/K010831/incoming/")
34
+
29
35
  FileUtils.copy(Dir.pwd + "/spec/examples/tmp/OUTPUT0412153500.txt", Dir.pwd + "/spec/examples/9534/incoming/")
30
36
  FileUtils.copy(Dir.pwd + "/spec/examples/tmp/REPLY0412153000.txt", Dir.pwd + "/spec/examples/9534/incoming/")
31
37
  Bankserv::EngineConfiguration.create!(interval_in_minutes: 15, input_directory: "/tmp", output_directory: "/tmp", archive_directory: "/tmp")
@@ -41,9 +47,10 @@ describe Bankserv::Engine do
41
47
  FileUtils.rm_rf(Dir.pwd + "/spec/examples/9999", secure: true)
42
48
  FileUtils.rm_rf(Dir.pwd + "/spec/examples/99999", secure: true)
43
49
  FileUtils.rm_rf(Dir.pwd + "/spec/examples/95345", secure: true)
44
- File.delete(Dir.pwd + "/spec/tmp/harry.txt")
45
- File.delete(Dir.pwd + "/spec/tmp/sally.txt")
46
- File.delete(Dir.pwd + "/spec/tmp/molly.txt")
50
+ File.delete(Dir.pwd + "/spec/tmp/harry.txt") if File.exists?(Dir.pwd + "/spec/tmp/harry.txt")
51
+ File.delete(Dir.pwd + "/spec/tmp/sally.txt") if File.exists?(Dir.pwd + "/spec/tmp/sally.txt")
52
+ File.delete(Dir.pwd + "/spec/tmp/molly.txt") if File.exists?(Dir.pwd + "/spec/tmp/molly.txt")
53
+ FileUtils.rm_rf(Dir.pwd + "/spec/examples/K010831", secure: true)
47
54
  end
48
55
 
49
56
  context "Prepare engine" do
@@ -170,48 +177,44 @@ describe Bankserv::Engine do
170
177
 
171
178
  end
172
179
 
173
- context "integration testing" do
174
- pending
175
-
176
- # before(:all) do
177
- # tear_it_down
178
- # Timecop.travel(Time.local(2012, 4, 10, 10, 5, 0))
179
- # @tmpdir = Dir.pwd + "/spec/tmp"
180
- # @ahv_service = Bankserv::AHVService.register(client_code: '12345', internal_branch_code: '632005', department_code: "506", client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "L", transmission_number: "1", user_code: '95345', outgoing_directory: Dir.pwd + "/spec/examples/95345/outgoing", incoming_directory: Dir.pwd + "/spec/examples/95345/incoming", reply_directory: Dir.pwd + "/spec/examples/95345/incoming", archive_directory: Dir.pwd + "/spec/examples/95345/archive")
181
- # @debit_service = Bankserv::DebitService.register(client_code: '12346', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "L", transmission_number: "1", user_code: '99999',outgoing_directory: Dir.pwd + "/spec/examples/99999/outgoing", incoming_directory: Dir.pwd + "/spec/examples/99999/incoming", reply_directory: Dir.pwd + "/spec/examples/99999/incoming", archive_directory: Dir.pwd + "/spec/examples/99999/archive")
182
- # @credit_service = Bankserv::CreditService.register(client_code: '12347', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1", outgoing_directory: Dir.pwd + "/spec/examples/9999/outgoing", incoming_directory: Dir.pwd + "/spec/examples/9999/incoming", reply_directory: Dir.pwd + "/spec/examples/9999/incoming", archive_directory: Dir.pwd + "/spec/examples/9999/archive")
183
- # Bankserv::EngineConfiguration.create!(interval_in_minutes: 15, input_directory: @tmpdir, output_directory: @tmpdir, archive_directory: @tmpdir)
184
- #
185
- # # test that engine can process different service types at once (generate 3 files with one run)
186
- # # Bankserv::AccountHolderVerification.should_receive(:generate_reference_number).exactly(8).times.and_return("AHV67","AHV68","AHV69","AHV70","AHV71","AHV72","AHV73","AHV74")
187
- # create_ahv_requests_scenario(@ahv_service)
188
- # create_debit_requests_scenario(@debit_service)
189
- # create_credit_requests_scenario(@credit_service)
190
- #
191
- # e = Bankserv::Engine.start
192
- # # e.should_receive(:generate_input_file_name).and_return("harry.txt", "sally.txt", "molly.txt")
193
- # # e.process!
194
- # end
195
- #
196
- # it "should process ahv requests" do
197
- # puts Dir.glob("#{@ahv_service.config[:outgoing_directory]}/INPUT*.txt").last
198
- # # expected_string = File.open("#{Dir.pwd}/spec/examples/95345/outgoing/INPUT.120410144410.txt", "rb").read
199
- # expected_string = File.open(Dir.glob("#{@ahv_service.config[:outgoing_directory]}/INPUT*.txt").last, "rb").read
200
- # got_string = File.open(@tmpdir + '/harry.txt', "rb").read
201
- # got_string.should == expected_string
202
- # end
203
- #
204
- # it "should process debit requests" do
205
- # expected_string = File.open("#{Dir.pwd}/spec/examples/99999/outgoing/INPUT.120411110604.txt", "rb").read
206
- # got_string = File.open(@tmpdir + '/sally.txt', "rb").read
207
- # got_string.should == expected_string
208
- # end
209
- #
210
- # it "should process credit requests" do
211
- # expected_string = File.open("#{Dir.pwd}/spec/examples/9999/outgoing/INPUT.120411124123.txt", "rb").read
212
- # got_string = File.open(@tmpdir + '/molly.txt', "rb").read
213
- # got_string.should == expected_string
214
- # end
180
+ context "Integration testing for statement service" do
181
+ before(:all) do
182
+ tear_it_down
183
+
184
+ Bankserv::StatementService.register({
185
+ client_code: "10831",
186
+ client_name: "RENTAL CONNECT PTY LTD",
187
+ user_code: "AA0A",
188
+ transmission_status: "L",
189
+ transmission_number: "1",
190
+ incoming_directory: Dir.pwd + "/spec/examples/K010831/incoming",
191
+ outgoing_directory: Dir.pwd + "/spec/examples/K010831/outgoing",
192
+ reply_directory: Dir.pwd + "/spec/examples/K010831/incoming",
193
+ archive_directory: Dir.pwd + "/spec/examples/K010831/archive",
194
+ generation_number: 27
195
+ })
196
+
197
+ Bankserv::Engine.start
198
+ end
199
+
200
+ it "should process all statement files" do
201
+ Bankserv::Statement.all.size.should == 2
202
+ end
203
+
204
+ it "should mark the statements as processed" do
205
+ Bankserv::Statement.all.each do |statement|
206
+ statement.should be_processed
207
+ end
208
+ end
209
+
210
+ it "should move the statements to the archive directory" do
211
+ Dir.entries(Dir.pwd + "/spec/examples/K010831/incoming").should == [".", ".."]
212
+ Dir.entries(Dir.pwd + "/spec/examples/K010831/archive").should == [".", "..", "2008"]
213
+ end
214
+
215
+ it "should mark the engines process as completed" do
216
+ Bankserv::Engine.running?.should be_false
217
+ end
215
218
 
216
219
  end
217
220
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bankserv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-06 00:00:00.000000000Z
13
+ date: 2012-06-11 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &70105908407180 !ruby/object:Gem::Requirement
17
+ requirement: &70316513421580 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70105908407180
25
+ version_requirements: *70316513421580
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activerecord
28
- requirement: &70105908406680 !ruby/object:Gem::Requirement
28
+ requirement: &70316513420820 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70105908406680
36
+ version_requirements: *70316513420820
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: i18n
39
- requirement: &70105908406220 !ruby/object:Gem::Requirement
39
+ requirement: &70316513420360 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70105908406220
47
+ version_requirements: *70316513420360
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: absa-h2h
50
- requirement: &70105908405680 !ruby/object:Gem::Requirement
50
+ requirement: &70316513418580 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.1.1
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70105908405680
58
+ version_requirements: *70316513418580
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: absa-esd
61
- requirement: &70105908405160 !ruby/object:Gem::Requirement
61
+ requirement: &70316513418080 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.0.2
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70105908405160
69
+ version_requirements: *70316513418080
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: combustion
72
- requirement: &70105908404700 !ruby/object:Gem::Requirement
72
+ requirement: &70316513417600 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: 0.3.1
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70105908404700
80
+ version_requirements: *70316513417600
81
81
  description: ! "This engine allows users to inject requests into a queue to be processed.
82
82
  \n \n The queue handles bank account validations, credit payments,
83
83
  debit orders\n and collecting bank statements. "
@@ -131,6 +131,8 @@ files:
131
131
  - spec/examples/INPUT.120410144410.txt
132
132
  - spec/examples/INPUT.120411110604.txt
133
133
  - spec/examples/INPUT.120411124123.txt
134
+ - spec/examples/TJRRECF.0602
135
+ - spec/examples/TJRRECF.0605
134
136
  - spec/examples/ahv_input_file.txt
135
137
  - spec/examples/ahv_output_file.txt
136
138
  - spec/examples/credit_eft_input.txt
@@ -194,6 +196,8 @@ test_files:
194
196
  - spec/examples/INPUT.120410144410.txt
195
197
  - spec/examples/INPUT.120411110604.txt
196
198
  - spec/examples/INPUT.120411124123.txt
199
+ - spec/examples/TJRRECF.0602
200
+ - spec/examples/TJRRECF.0605
197
201
  - spec/examples/ahv_input_file.txt
198
202
  - spec/examples/ahv_output_file.txt
199
203
  - spec/examples/credit_eft_input.txt