bankserv 0.3.6 → 0.3.7

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.
@@ -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