aba 0.0.1 → 0.5.0

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,47 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Aba::Return do
6
+ let(:transaction_params) { {
7
+ :trace_account_number => 23432342,
8
+ :transaction_code => 53,
9
+ :amount => 50050,
10
+ :account_name => "John Doe",
11
+ :trace_bsb => "345-453",
12
+ :return_code => 8,
13
+ :lodgement_reference => "R45343",
14
+ :bsb => "123-234",
15
+ :account_number => "4647642",
16
+ :name_of_remitter => "Remitter",
17
+ :original_processing_day => "07",
18
+ :original_user_id => "054321",
19
+ } }
20
+ subject(:transaction) { Aba::Return.new(transaction_params) }
21
+
22
+ describe "#to_s" do
23
+ it "should create a transaction row" do
24
+ expect(subject.to_s).to include(
25
+ "2123-234 46476428530000050050John Doe R45343 345-453 23432342Remitter 07054321")
26
+ # | | || | | | | | | | |
27
+ # +-bsb | || +-amount +-account_name | | | | | +-original_user_id
28
+ # | |+-transaction_code | | | | +-original_processing_day
29
+ # | +-return_code | | | +-name_of_remitter
30
+ # +-account_number | | +-trace_account_number
31
+ # | +-trace_bsb
32
+ # +-lodgement_reference
33
+ end
34
+ end
35
+
36
+ describe "#valid?" do
37
+ it "should be valid" do
38
+ expect(subject.valid?).to eq true
39
+ end
40
+
41
+ it "should not be valid" do
42
+ transaction_params.delete(:bsb)
43
+ expect(subject.valid?).to eq false
44
+ expect(subject.errors).to eq ["bsb format is incorrect"]
45
+ end
46
+ end
47
+ end
@@ -1,3 +1,5 @@
1
+ # encoding: UTF-8
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Aba::Transaction do
@@ -6,13 +8,12 @@ describe Aba::Transaction do
6
8
  :transaction_code => 53,
7
9
  :amount => 50050,
8
10
  :account_name => "John Doe",
9
- :payment_id => "P30234",
10
11
  :bsb => "345-453",
11
12
  :witholding_amount => 87,
12
13
  :indicator => "W",
13
14
  :lodgement_reference => "R45343",
14
- :trace_bsb => "123-234",
15
- :trace_account_number => "4647642",
15
+ :trace_bsb => "123-234",
16
+ :trace_account_number => "4647642",
16
17
  :name_of_remitter => "Remitter"
17
18
  } }
18
19
  subject(:transaction) { Aba::Transaction.new(transaction_params) }
@@ -31,7 +32,7 @@ describe Aba::Transaction do
31
32
  it "should not be valid" do
32
33
  transaction_params.delete(:bsb)
33
34
  expect(subject.valid?).to eq false
34
- expect(subject.errors).to eq ["bsb is empty", "bsb format is incorrect"]
35
+ expect(subject.errors).to eq ["bsb format is incorrect"]
35
36
  end
36
37
  end
37
- end
38
+ end
@@ -0,0 +1,215 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Aba::Validations do
6
+ let(:clean_room) do
7
+ Class.new(Object) do
8
+ include Aba::Validations
9
+ end
10
+ end
11
+
12
+ subject(:test_instance) { clean_room.new }
13
+
14
+ describe "#valid?" do
15
+ it "should validate presence of attrs" do
16
+ clean_room.instance_eval do
17
+ attr_accessor :attr1
18
+ validates_presence_of :attr1
19
+ end
20
+
21
+ expect(subject.valid?).to eq false
22
+ expect(subject.errors).to eq ["attr1 is empty"]
23
+
24
+ subject.attr1 = "hello!"
25
+ expect(subject.valid?).to eq true
26
+ end
27
+
28
+ it "should validate bsb format" do
29
+ clean_room.instance_eval do
30
+ attr_accessor :attr1
31
+ validates_bsb :attr1
32
+ end
33
+
34
+ subject.attr1 = "234456"
35
+ expect(subject.valid?).to eq false
36
+ expect(subject.errors).to eq ["attr1 format is incorrect"]
37
+
38
+ subject.attr1 = "234-456"
39
+ expect(subject.valid?).to eq true
40
+ end
41
+
42
+ it "should validate max length" do
43
+ clean_room.instance_eval do
44
+ attr_accessor :attr1
45
+ validates_max_length :attr1, 5
46
+ end
47
+
48
+ subject.attr1 = "234456642"
49
+ expect(subject.valid?).to eq false
50
+ expect(subject.errors).to eq ["attr1 length must not exceed 5 characters"]
51
+
52
+ subject.attr1 = "23445"
53
+ expect(subject.valid?).to eq true
54
+
55
+ subject.attr1 = "2344"
56
+ expect(subject.valid?).to eq true
57
+ end
58
+
59
+ it "should validate length" do
60
+ clean_room.instance_eval do
61
+ attr_accessor :attr1
62
+ validates_length :attr1, 5
63
+ end
64
+
65
+ subject.attr1 = "234456642"
66
+ expect(subject.valid?).to eq false
67
+ expect(subject.errors).to eq ["attr1 length must be exactly 5 characters"]
68
+
69
+ subject.attr1 = "23445"
70
+ expect(subject.valid?).to eq true
71
+
72
+ subject.attr1 = "2344"
73
+ expect(subject.valid?).to eq false
74
+ expect(subject.errors).to eq ["attr1 length must be exactly 5 characters"]
75
+ end
76
+
77
+ it "should validate signed integer" do
78
+ clean_room.instance_eval do
79
+ attr_accessor :attr1
80
+ validates_integer :attr1
81
+ end
82
+
83
+ subject.attr1 = "+1234A"
84
+ expect(subject.valid?).to eq false
85
+ expect(subject.errors).to eq ["attr1 must be a number"]
86
+
87
+ subject.attr1 = "+1234"
88
+ expect(subject.valid?).to eq true
89
+
90
+ subject.attr1 = "-1234"
91
+ expect(subject.valid?).to eq true
92
+
93
+ subject.attr1 = "1234"
94
+ expect(subject.valid?).to eq true
95
+ end
96
+
97
+ it "should validate unsigned integer" do
98
+ clean_room.instance_eval do
99
+ attr_accessor :attr1
100
+ validates_integer :attr1, false
101
+ end
102
+
103
+ subject.attr1 = "1234A"
104
+ expect(subject.valid?).to eq false
105
+ expect(subject.errors).to eq ["attr1 must be an unsigned number"]
106
+
107
+ subject.attr1 = "+1234"
108
+ expect(subject.valid?).to eq false
109
+ expect(subject.errors).to eq ["attr1 must be an unsigned number"]
110
+
111
+ subject.attr1 = "-1234"
112
+ expect(subject.valid?).to eq false
113
+ expect(subject.errors).to eq ["attr1 must be an unsigned number"]
114
+
115
+ subject.attr1 = "1234"
116
+ expect(subject.valid?).to eq true
117
+
118
+ subject.attr1 = 1234
119
+ expect(subject.valid?).to eq true
120
+ end
121
+
122
+ it "should validate account number" do
123
+ clean_room.instance_eval do
124
+ attr_accessor :attr1
125
+ validates_account_number :attr1
126
+ end
127
+
128
+ subject.attr1 = " "
129
+ expect(subject.valid?).to eq false
130
+ expect(subject.errors).to eq ["attr1 must be a valid account number"]
131
+
132
+ subject.attr1 = "000000"
133
+ expect(subject.valid?).to eq false
134
+ expect(subject.errors).to eq ["attr1 must be a valid account number"]
135
+
136
+ subject.attr1 = "00 0 0"
137
+ expect(subject.valid?).to eq false
138
+ expect(subject.errors).to eq ["attr1 must be a valid account number"]
139
+
140
+ subject.attr1 = "00 0A0"
141
+ expect(subject.valid?).to eq false
142
+ expect(subject.errors).to eq ["attr1 must be a valid account number"]
143
+
144
+ subject.attr1 = "00 111"
145
+ expect(subject.valid?).to eq true
146
+
147
+ subject.attr1 = "0a 111"
148
+ expect(subject.valid?).to eq true
149
+
150
+ subject.attr1 = "aaaaaa"
151
+ expect(subject.valid?).to eq true
152
+
153
+ subject.attr1 = "aa aaa"
154
+ expect(subject.valid?).to eq true
155
+ end
156
+
157
+ it "should validate becs" do
158
+ clean_room.instance_eval do
159
+ attr_accessor :attr1
160
+ validates_becs :attr1
161
+ end
162
+
163
+ subject.attr1 = "abc123 é"
164
+ expect(subject.valid?).to eq false
165
+ expect(subject.errors).to eq ["attr1 must not contain invalid characters"]
166
+
167
+ subject.attr1 = "abc123 ~"
168
+ expect(subject.valid?).to eq false
169
+ expect(subject.errors).to eq ["attr1 must not contain invalid characters"]
170
+
171
+ subject.attr1 = "abc123"
172
+ expect(subject.valid?).to eq true
173
+ end
174
+
175
+ it "should validate indicator" do
176
+ clean_room.instance_eval do
177
+ attr_accessor :attr1
178
+ validates_indicator :attr1
179
+ end
180
+
181
+ subject.attr1 = "$"
182
+ expect(subject.valid?).to eq false
183
+ list = Aba::Validations::INDICATORS.join('\', \'')
184
+ expect(subject.errors).to eq ["attr1 must be a one of '#{list}'"]
185
+
186
+ subject.attr1 = Aba::Validations::INDICATORS.sample
187
+ expect(subject.valid?).to eq true
188
+ end
189
+
190
+ it "should validate transaction code" do
191
+ clean_room.instance_eval do
192
+ attr_accessor :attr1
193
+ validates_transaction_code :attr1
194
+ end
195
+
196
+ subject.attr1 = "AA"
197
+ expect(subject.valid?).to eq false
198
+ expect(subject.errors).to eq ["attr1 must be a 2 digit number"]
199
+
200
+ subject.attr1 = "123"
201
+ expect(subject.valid?).to eq false
202
+ expect(subject.errors).to eq ["attr1 must be a 2 digit number"]
203
+
204
+ subject.attr1 = "1"
205
+ expect(subject.valid?).to eq false
206
+ expect(subject.errors).to eq ["attr1 must be a 2 digit number"]
207
+
208
+ subject.attr1 = "15"
209
+ expect(subject.valid?).to eq true
210
+
211
+ subject.attr1 = 15
212
+ expect(subject.valid?).to eq true
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Aba do
6
+ describe ".batch" do
7
+ it "initialize instance of Aba::Batch with passed arguments" do
8
+ attributes = double.as_null_object
9
+ transactions = double.as_null_object
10
+
11
+ expect(Aba::Batch).to receive(:new).with(attributes, transactions)
12
+ described_class.batch(attributes, transactions)
13
+ end
14
+
15
+ it "returns instance of Aba::Batch" do
16
+ obj = described_class.batch(double.as_null_object, double.as_null_object)
17
+
18
+ expect(obj).to be_a(Aba::Batch)
19
+ end
20
+ end
21
+ end
@@ -5,4 +5,6 @@ require "aba"
5
5
 
6
6
  RSpec.configure do |config|
7
7
  config.order = :random
8
+ config.filter_run :focus
9
+ config.run_all_when_everything_filtered = true
8
10
  end
metadata CHANGED
@@ -1,29 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aba
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Bazhutkin
8
+ - Trevor Wistaff
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-11-24 00:00:00.000000000 Z
12
+ date: 2020-07-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - "~>"
18
+ - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
+ version: '0'
20
21
  type: :development
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - "~>"
25
+ - - ">="
25
26
  - !ruby/object:Gem::Version
26
- version: '1.6'
27
+ version: '0'
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: rake
29
30
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +39,20 @@ dependencies:
38
39
  - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: pry
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
41
56
  - !ruby/object:Gem::Dependency
42
57
  name: rspec
43
58
  requirement: !ruby/object:Gem::Requirement
@@ -52,28 +67,35 @@ dependencies:
52
67
  - - "~>"
53
68
  - !ruby/object:Gem::Version
54
69
  version: '3.0'
55
- description: '["ABA (Australian Bankers Association) File Generator"]'
70
+ description: ABA (Australian Bankers Association) File Generator
56
71
  email:
57
72
  - andrey.bazhutkin@gmail.com
73
+ - trev@a07.com.au
58
74
  executables: []
59
75
  extensions: []
60
76
  extra_rdoc_files: []
61
77
  files:
62
78
  - ".gitignore"
63
79
  - ".rspec"
80
+ - ".travis.yml"
64
81
  - Gemfile
65
82
  - LICENSE
66
83
  - README.md
67
84
  - Rakefile
68
85
  - aba.gemspec
69
86
  - lib/aba.rb
87
+ - lib/aba/batch.rb
88
+ - lib/aba/entry.rb
89
+ - lib/aba/return.rb
70
90
  - lib/aba/transaction.rb
71
91
  - lib/aba/validations.rb
72
92
  - lib/aba/version.rb
73
- - spec/aba_spec.rb
93
+ - spec/lib/aba/batch_spec.rb
94
+ - spec/lib/aba/return_spec.rb
95
+ - spec/lib/aba/transaction_spec.rb
96
+ - spec/lib/aba/validations_spec.rb
97
+ - spec/lib/aba_spec.rb
74
98
  - spec/spec_helper.rb
75
- - spec/transaction_spec.rb
76
- - spec/validations_spec.rb
77
99
  homepage: https://github.com/andrba/aba
78
100
  licenses:
79
101
  - MIT
@@ -86,20 +108,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
108
  requirements:
87
109
  - - ">="
88
110
  - !ruby/object:Gem::Version
89
- version: 1.9.2
111
+ version: 2.5.0
90
112
  required_rubygems_version: !ruby/object:Gem::Requirement
91
113
  requirements:
92
114
  - - ">="
93
115
  - !ruby/object:Gem::Version
94
116
  version: '0'
95
117
  requirements: []
96
- rubyforge_project:
97
- rubygems_version: 2.4.4
118
+ rubygems_version: 3.0.3
98
119
  signing_key:
99
120
  specification_version: 4
100
- summary: '["ABA File Generator"]'
121
+ summary: ABA File Generator
101
122
  test_files:
102
- - spec/aba_spec.rb
123
+ - spec/lib/aba/batch_spec.rb
124
+ - spec/lib/aba/return_spec.rb
125
+ - spec/lib/aba/transaction_spec.rb
126
+ - spec/lib/aba/validations_spec.rb
127
+ - spec/lib/aba_spec.rb
103
128
  - spec/spec_helper.rb
104
- - spec/transaction_spec.rb
105
- - spec/validations_spec.rb