bankserv 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.6
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-12 00:00:00.000000000Z
13
+ date: 2012-06-13 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &70234833067340 !ruby/object:Gem::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: *70234833067340
25
+ version_requirements: *70224754345740
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activerecord
28
- requirement: &70234833066760 !ruby/object:Gem::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: *70234833066760
36
+ version_requirements: *70224754345060
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: i18n
39
- requirement: &70234833066280 !ruby/object:Gem::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: *70234833066280
47
+ version_requirements: *70224754344600
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: absa-h2h
50
- requirement: &70234833065740 !ruby/object:Gem::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: *70234833065740
58
+ version_requirements: *70224754343960
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: absa-esd
61
- requirement: &70234833065240 !ruby/object:Gem::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: *70234833065240
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: &70234833064780 !ruby/object:Gem::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: *70234833064780
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