bankserv 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- data/bankserv.gemspec +2 -1
- data/lib/bankserv.rb +4 -1
- data/lib/bankserv/notify_me_transaction.rb +22 -0
- data/lib/bankserv/service.rb +8 -0
- data/lib/bankserv/transmission/notify_me_statement.rb +46 -0
- data/lib/bankserv/version.rb +1 -1
- data/lib/generators/active_record/templates/migration.rb +15 -1
- data/spec/examples/notify_me.xml +951 -0
- data/spec/internal/db/schema.rb +15 -0
- data/spec/lib/bankserv/transmission/notify_me_statement_spec.rb +72 -0
- metadata +32 -15
data/spec/internal/db/schema.rb
CHANGED
@@ -7,6 +7,13 @@ ActiveRecord::Schema.define do
|
|
7
7
|
t.timestamps
|
8
8
|
end
|
9
9
|
|
10
|
+
create_table :bankserv_notify_me_statements, :force => true do |t|
|
11
|
+
t.boolean :processed, :default => false
|
12
|
+
t.string :client_code
|
13
|
+
t.text :data
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
|
10
17
|
create_table :bankserv_transactions, :force => true do |t|
|
11
18
|
t.boolean :processed, :default => false
|
12
19
|
t.string :client_code
|
@@ -14,6 +21,14 @@ ActiveRecord::Schema.define do
|
|
14
21
|
t.references :bankserv_statement
|
15
22
|
t.timestamps
|
16
23
|
end
|
24
|
+
|
25
|
+
create_table :bankserv_notify_me_transactions, :force => true do |t|
|
26
|
+
t.boolean :processed, :default => false
|
27
|
+
t.string :client_code
|
28
|
+
t.text :data
|
29
|
+
t.references :bankserv_notify_me_statement
|
30
|
+
t.timestamps
|
31
|
+
end
|
17
32
|
|
18
33
|
create_table :bankserv_services, :force => true do |t|
|
19
34
|
t.boolean :active, :default => false
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Bankserv::NotifyMeStatement do
|
4
|
+
include Helpers
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
tear_it_down
|
8
|
+
Bankserv::NotifyMeStatementService.register(client_code: '09876', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
|
9
|
+
|
10
|
+
@file_contents = File.open("./spec/examples/notify_me.xml", "rb").read
|
11
|
+
@statement = Bankserv::NotifyMeStatement.store(@file_contents)
|
12
|
+
end
|
13
|
+
|
14
|
+
context "storing a statement" do
|
15
|
+
|
16
|
+
it "should store the client code" do
|
17
|
+
@statement.client_code.should == "09876"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should mark the statement as unprocessed" do
|
21
|
+
@statement.processed.should be_false
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should store the hash of information returned from the absa-notify-me gem as the statement's serialized data" do
|
25
|
+
@statement.data.should == Absa::NotifyMe::XmlStatement.string_to_hash(@file_contents)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
context "processing a statement" do
|
31
|
+
|
32
|
+
before(:each) do
|
33
|
+
@statement.process!
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should contain the same amount of transactions that the trailer specifies" do
|
37
|
+
@statement.notify_me_transactions.count.should == @statement.data[:data][:data].last[:data][:total_recs].to_i
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should create a transaction for each recon account detail record" do
|
41
|
+
Bankserv::NotifyMeTransaction.all.each do |t|
|
42
|
+
t.notify_me_statement.should == @statement
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should set each transaction's client code to the statement's client code" do
|
47
|
+
@statement.notify_me_transactions.all?{|t| t.client_code == "09876"}
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should default the transactions to unprocessed" do
|
51
|
+
@statement.notify_me_transactions.all?{|t| t.processed == false}
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should store the recon account detail record's data as the notify_me_transaction's data" do
|
55
|
+
@statement.notify_me_transactions.first.data.should == {
|
56
|
+
account_number: "170000072",
|
57
|
+
event_number: "032537937",
|
58
|
+
customer_reference: "DEP NO : 81557294",
|
59
|
+
currency: "ZAR",
|
60
|
+
amount: "5005",
|
61
|
+
account_balance_after_transaction: "8900743687",
|
62
|
+
transaction_type: "C",
|
63
|
+
transaction_processing_date: "20110509",
|
64
|
+
clearance_payment_indicator: "N",
|
65
|
+
transaction_description: "CASH DEP BRANCH",
|
66
|
+
checksum: "F6AA9A0C43A6F429DECE136893283B5A"
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
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.
|
4
|
+
version: 0.3.7
|
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-
|
13
|
+
date: 2012-06-13 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &70224754345740 !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: *
|
25
|
+
version_requirements: *70224754345740
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activerecord
|
28
|
-
requirement: &
|
28
|
+
requirement: &70224754345060 !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: *
|
36
|
+
version_requirements: *70224754345060
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: i18n
|
39
|
-
requirement: &
|
39
|
+
requirement: &70224754344600 !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: *
|
47
|
+
version_requirements: *70224754344600
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: absa-h2h
|
50
|
-
requirement: &
|
50
|
+
requirement: &70224754343960 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.1.2
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70224754343960
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: absa-esd
|
61
|
-
requirement: &
|
61
|
+
requirement: &70224754343300 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,21 @@ dependencies:
|
|
66
66
|
version: 0.0.3
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70224754343300
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: absa-notify-me
|
72
|
+
requirement: &70224754342760 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.0.1
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *70224754342760
|
70
81
|
- !ruby/object:Gem::Dependency
|
71
82
|
name: combustion
|
72
|
-
requirement: &
|
83
|
+
requirement: &70224754342100 !ruby/object:Gem::Requirement
|
73
84
|
none: false
|
74
85
|
requirements:
|
75
86
|
- - ~>
|
@@ -77,10 +88,10 @@ dependencies:
|
|
77
88
|
version: 0.3.1
|
78
89
|
type: :development
|
79
90
|
prerelease: false
|
80
|
-
version_requirements: *
|
91
|
+
version_requirements: *70224754342100
|
81
92
|
description: ! "This engine allows users to inject requests into a queue to be processed.
|
82
93
|
\n \n The queue handles bank account validations, credit payments,
|
83
|
-
debit orders\n and collecting bank statements. "
|
94
|
+
debit orders\n and collecting bank statements/notify me statements. "
|
84
95
|
email:
|
85
96
|
- jeffmess@gmail.com
|
86
97
|
- i.am.douglas.anderson@gmail.com
|
@@ -103,11 +114,13 @@ files:
|
|
103
114
|
- lib/bankserv/engine.rb
|
104
115
|
- lib/bankserv/engine/engine_configuration.rb
|
105
116
|
- lib/bankserv/engine/engine_process.rb
|
117
|
+
- lib/bankserv/notify_me_transaction.rb
|
106
118
|
- lib/bankserv/request.rb
|
107
119
|
- lib/bankserv/service.rb
|
108
120
|
- lib/bankserv/transaction.rb
|
109
121
|
- lib/bankserv/transmission/document.rb
|
110
122
|
- lib/bankserv/transmission/input_document.rb
|
123
|
+
- lib/bankserv/transmission/notify_me_statement.rb
|
111
124
|
- lib/bankserv/transmission/output_document.rb
|
112
125
|
- lib/bankserv/transmission/record.rb
|
113
126
|
- lib/bankserv/transmission/reply_document.rb
|
@@ -140,6 +153,7 @@ files:
|
|
140
153
|
- spec/examples/eft_input_with_2_sets.txt
|
141
154
|
- spec/examples/eft_output_file.txt
|
142
155
|
- spec/examples/host2host/tmp.log
|
156
|
+
- spec/examples/notify_me.xml
|
143
157
|
- spec/examples/reply/rejected_transmission.txt
|
144
158
|
- spec/examples/reply/reply_file.txt
|
145
159
|
- spec/examples/statement4_unpacked.dat
|
@@ -159,6 +173,7 @@ files:
|
|
159
173
|
- spec/lib/bankserv/service_spec.rb
|
160
174
|
- spec/lib/bankserv/transaction_spec.rb
|
161
175
|
- spec/lib/bankserv/transmission/input_document_spec.rb
|
176
|
+
- spec/lib/bankserv/transmission/notify_me_statement_spec.rb
|
162
177
|
- spec/lib/bankserv/transmission/output_document_spec.rb
|
163
178
|
- spec/lib/bankserv/transmission/reply_document_spec.rb
|
164
179
|
- spec/lib/bankserv/transmission/set/account_holder_verification_spec.rb
|
@@ -205,6 +220,7 @@ test_files:
|
|
205
220
|
- spec/examples/eft_input_with_2_sets.txt
|
206
221
|
- spec/examples/eft_output_file.txt
|
207
222
|
- spec/examples/host2host/tmp.log
|
223
|
+
- spec/examples/notify_me.xml
|
208
224
|
- spec/examples/reply/rejected_transmission.txt
|
209
225
|
- spec/examples/reply/reply_file.txt
|
210
226
|
- spec/examples/statement4_unpacked.dat
|
@@ -224,6 +240,7 @@ test_files:
|
|
224
240
|
- spec/lib/bankserv/service_spec.rb
|
225
241
|
- spec/lib/bankserv/transaction_spec.rb
|
226
242
|
- spec/lib/bankserv/transmission/input_document_spec.rb
|
243
|
+
- spec/lib/bankserv/transmission/notify_me_statement_spec.rb
|
227
244
|
- spec/lib/bankserv/transmission/output_document_spec.rb
|
228
245
|
- spec/lib/bankserv/transmission/reply_document_spec.rb
|
229
246
|
- spec/lib/bankserv/transmission/set/account_holder_verification_spec.rb
|