rbankgiro 0.1.3 → 0.2.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.
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/lib/rbankgiro.rb +76 -42
- data/rbankgiro.gemspec +6 -2
- data/test/fixtures/invalid_bankgiro_number_09_02_27.txt +7 -0
- data/test/fixtures/multiple_transactions_06_06_20.txt +45 -0
- data/test/fixtures/multiple_transactions_with_plusgiro_06_06_20.txt +46 -0
- data/test/fixtures/overpunch_transaction_with_missing_lb_flag_06_06_20.txt +45 -0
- data/test/test_transaction.rb +4 -2
- data/test/test_transactions.rb +49 -7
- metadata +6 -2
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/rbankgiro.rb
CHANGED
@@ -7,16 +7,46 @@ module Rbankgiro
|
|
7
7
|
class TransactionCountError < StandardError; end
|
8
8
|
class PartSumError < StandardError; end
|
9
9
|
|
10
|
-
# A
|
10
|
+
# A Bankgiro transaction, contains reference_number-number for the transaction
|
11
11
|
# amount in SEK and the transaction date
|
12
12
|
class Transaction
|
13
|
-
attr_reader :amount, :
|
13
|
+
attr_reader :amount, :ore, :reference_number, :file_date,
|
14
|
+
:bankgiro_number, :lb_flag, :service_number
|
14
15
|
|
15
|
-
|
16
|
+
OVERPUNCH_TRANSLATION = {
|
17
|
+
"-" => "0",
|
18
|
+
"J" => "1",
|
19
|
+
"K" => "2",
|
20
|
+
"L" => "3",
|
21
|
+
"M" => "4",
|
22
|
+
"N" => "5",
|
23
|
+
"O" => "6",
|
24
|
+
"P" => "7",
|
25
|
+
"Q" => "8",
|
26
|
+
"R" => "9"
|
27
|
+
}
|
28
|
+
|
29
|
+
def initialize(reference_number, raw_amount, file_date, bankgiro_number, lb_flag = false, service_number = false)
|
16
30
|
@raw_amount = raw_amount
|
17
|
-
|
18
|
-
|
19
|
-
|
31
|
+
|
32
|
+
r = raw_amount.match(/^(\d{11})(.)(.)$/)
|
33
|
+
|
34
|
+
if OVERPUNCH_TRANSLATION.include?(r[3])
|
35
|
+
raise FileFormatError, "Overpunch but not an LB transaction" unless lb_flag
|
36
|
+
amount = "-" + r[1]
|
37
|
+
ore = "-" + r[2] + OVERPUNCH_TRANSLATION[r[3]]
|
38
|
+
else
|
39
|
+
amount = r[1]
|
40
|
+
ore = r[2] + r[3]
|
41
|
+
end
|
42
|
+
|
43
|
+
@amount = amount.to_i
|
44
|
+
@ore = ore.to_i
|
45
|
+
@reference_number = reference_number
|
46
|
+
@file_date = file_date
|
47
|
+
@bankgiro_number = bankgiro_number
|
48
|
+
@lb_flag = lb_flag
|
49
|
+
@service_number = service_number
|
20
50
|
end
|
21
51
|
|
22
52
|
# If the amount last two characters aren't 00,
|
@@ -29,13 +59,10 @@ module Rbankgiro
|
|
29
59
|
class Transactions < Array
|
30
60
|
attr_reader :file_date
|
31
61
|
|
32
|
-
# Parses an
|
62
|
+
# Parses an reference_number transaction file from Rbankgirocentralen
|
33
63
|
# Creates Rbankgiro::Transaction objects for each transaction
|
34
|
-
def initialize(file
|
35
|
-
|
36
|
-
|
37
|
-
ocr_transaction_input = File.open(file, 'r') {|f| f.read }
|
38
|
-
ocr_transaction_input.each_line do |row|
|
64
|
+
def initialize(file)
|
65
|
+
File.read(file).each_line do |row|
|
39
66
|
next if row.strip.empty? # Skip empty rows
|
40
67
|
parse_row(row)
|
41
68
|
end
|
@@ -50,69 +77,76 @@ module Rbankgiro
|
|
50
77
|
"@sum=#{self.sum}, @length=#{self.length}, @file_date=#{self.file_date}")
|
51
78
|
end
|
52
79
|
|
80
|
+
def select_with(bankgiro_number)
|
81
|
+
self.dup.replace(self.select {|t| t.bankgiro_number == bankgiro_number })
|
82
|
+
end
|
83
|
+
|
53
84
|
private
|
54
85
|
|
55
86
|
def parse_row(row)
|
56
|
-
columns = row.
|
57
|
-
case columns
|
58
|
-
when
|
87
|
+
columns = row.split(' ').collect {|c| c.strip }.compact
|
88
|
+
case columns[0]
|
89
|
+
when /^(00)(\d{0,6})/
|
59
90
|
# The first row if a File header, should look like:
|
60
|
-
#
|
91
|
+
# 00<6:service number> <6:date> BANKGIROT
|
61
92
|
raise CorruptHeader unless columns[2] == 'BANKGIROT'
|
93
|
+
@service_number = $2
|
62
94
|
@raw_file_date = columns[1]
|
63
95
|
@file_date = Time.parse(@raw_file_date)
|
64
96
|
when '10'
|
65
97
|
when '20'
|
66
98
|
# Specifies the bankgiro number:
|
67
99
|
# <8:bankgiro number>
|
68
|
-
|
100
|
+
@bankgiro_number = columns[1]
|
101
|
+
raise InvalidBankgiroNumber unless @bankgiro_number
|
69
102
|
when '30'
|
70
103
|
# Specifies the bankgiro number with the transaction date after:
|
71
104
|
# <8:bankgiro number><6:date>
|
72
105
|
raise FileFormatError unless columns[1] == @bankgiro_number + @raw_file_date
|
73
106
|
when '40'
|
74
107
|
# Transaction row:
|
75
|
-
# <17:
|
76
|
-
if r = columns[1].match(/^(\d
|
77
|
-
|
78
|
-
raw_amount
|
79
|
-
|
108
|
+
# <17:reference number><13:Amount with öre or overpunch> <2:LB flag if "Leverantörsbetalning">
|
109
|
+
if r = columns[1].match(/^(\d+)(.{13})$/)
|
110
|
+
reference_number = r[1]
|
111
|
+
raw_amount = r[2]
|
112
|
+
lb_flag = columns[2] == 'LB'
|
113
|
+
self << Rbankgiro::Transaction.new(reference_number, raw_amount, @file_date, @bankgiro_number, lb_flag, @service_number)
|
80
114
|
else
|
81
|
-
raise FileFormatError
|
115
|
+
raise FileFormatError, "Transaction row"
|
82
116
|
end
|
83
117
|
when '50'
|
84
118
|
# Part payment check
|
85
|
-
# <8:
|
86
|
-
if r = columns[1].match(/^(\d
|
119
|
+
# <8:Bankgiro or postgiro number><6:file_date><7:number of transactions><part payments in sek><part payments öre>
|
120
|
+
if r = columns[1].match(/^(\d+)(\d{6})(\d{7})(\d{13})(\d{2})$/)
|
87
121
|
bankgiro_number_control = r[1]
|
88
122
|
file_date_control = r[2]
|
89
|
-
number_of_transactions = r[3]
|
90
|
-
|
91
|
-
payments_sum = payments_raw_sum.split('')[0..-3].join.to_i # Remove the Öre
|
92
|
-
|
123
|
+
number_of_transactions = r[3].to_i
|
124
|
+
payments_sum = r[4].to_i
|
93
125
|
else
|
94
|
-
raise FileFormatError
|
126
|
+
raise FileFormatError, "Part payment row"
|
95
127
|
end
|
96
128
|
|
97
|
-
|
98
|
-
|
129
|
+
transactions_sum = self.select_with(@bankgiro_number).sum
|
130
|
+
unless payments_sum == transactions_sum
|
131
|
+
raise PartSumError, "part payment row is #{payments_sum}, transaction sum is #{transactions_sum}"
|
132
|
+
end
|
133
|
+
raise TransactionCountError unless number_of_transactions == self.select_with(@bankgiro_number).length
|
99
134
|
when '90'
|
100
135
|
# Total payment check
|
101
|
-
# <6:file_date><7:number of transactions><
|
102
|
-
if r = columns[1].match(/^(\d{6})(\d{7})(\d{
|
136
|
+
# <6:file_date><7:number of transactions><total payments in sek><total payments öre>
|
137
|
+
if r = columns[1].match(/^(\d{6})(\d{7})(\d{13})(\d{2})$/)
|
103
138
|
file_date_control = r[1]
|
104
|
-
number_of_transactions = r[2]
|
105
|
-
|
106
|
-
payments_sum = payments_raw_sum.split('')[0..-3].join.to_i # Remove the Öre
|
139
|
+
number_of_transactions = r[2].to_i
|
140
|
+
payments_sum = r[3].to_i
|
107
141
|
else
|
108
|
-
raise FileFormatError
|
142
|
+
raise FileFormatError, "Total payment row, syntax error"
|
109
143
|
end
|
110
|
-
|
111
|
-
raise PartSumError unless payments_sum == self.
|
112
|
-
raise TransactionCountError unless number_of_transactions
|
144
|
+
|
145
|
+
raise PartSumError, "Total payment row" unless payments_sum == self.sum
|
146
|
+
raise TransactionCountError unless number_of_transactions == self.length
|
113
147
|
else
|
114
148
|
# Should be handled by previous cases, if it goes here something is wrong
|
115
|
-
raise FileFormatError
|
149
|
+
raise FileFormatError, "Unknown error"
|
116
150
|
end
|
117
151
|
end
|
118
152
|
end
|
data/rbankgiro.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rbankgiro}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Johan Eckerstr\303\266m"]
|
12
|
-
s.date = %q{2009-12-
|
12
|
+
s.date = %q{2009-12-08}
|
13
13
|
s.description = %q{Parsing transaction files from swedish Bankgiro central}
|
14
14
|
s.email = %q{johan@duh.se}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -23,9 +23,13 @@ Gem::Specification.new do |s|
|
|
23
23
|
"rbankgiro.gemspec",
|
24
24
|
"test/fixtures/corrupt_header_09_02_27.txt",
|
25
25
|
"test/fixtures/file_format_error_09_02_27.txt",
|
26
|
+
"test/fixtures/invalid_bankgiro_number_09_02_27.txt",
|
26
27
|
"test/fixtures/missing_transaction_09_02_27.txt",
|
28
|
+
"test/fixtures/multiple_transactions_06_06_20.txt",
|
29
|
+
"test/fixtures/multiple_transactions_with_plusgiro_06_06_20.txt",
|
27
30
|
"test/fixtures/one_too_many_transactions_09_02_27.txt",
|
28
31
|
"test/fixtures/one_transaction_09_02_27.txt",
|
32
|
+
"test/fixtures/overpunch_transaction_with_missing_lb_flag_06_06_20.txt",
|
29
33
|
"test/helper.rb",
|
30
34
|
"test/test_transaction.rb",
|
31
35
|
"test/test_transactions.rb"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
00 060620 BANKGIROT
|
2
|
+
10
|
3
|
+
20 9912346
|
4
|
+
30 9912346060620
|
5
|
+
40 39407150000000147700 5540020977
|
6
|
+
40 39407640000000198100 5511115706
|
7
|
+
40 39408300000000190700 5541008608
|
8
|
+
40 39408890000000073100 5540093777
|
9
|
+
40 39408890000000132100 5540006858
|
10
|
+
40 39409620000000087600 5540094494
|
11
|
+
40 39410690000000078500 5517551977
|
12
|
+
40 39410770000000094900 5540021183
|
13
|
+
40 39410850000000169300 5517035205
|
14
|
+
40 39410930000000084100 5547510501
|
15
|
+
40 39411010000000084900 5511100321
|
16
|
+
40 39411190000000074200 5540022584
|
17
|
+
40 39411350000000076900 5540025566
|
18
|
+
40 39411430000000229300 5517540398
|
19
|
+
40 39411500000000075500 5540097588
|
20
|
+
40 39411680000000082700 5540009276
|
21
|
+
40 39411760000000123900 5540021117
|
22
|
+
40 39411840000000248300 5511053245
|
23
|
+
40 39411840000000201100 5541008627
|
24
|
+
40 39412000000000147700 5517043623
|
25
|
+
40 39412180000000123000 5547510510
|
26
|
+
40 39412260000000082700 5540022386
|
27
|
+
40 39412340000000087700 5517003480
|
28
|
+
40 39412420000000153800 5517537838
|
29
|
+
40 39412590000000100000 5504092053
|
30
|
+
40 39412750000000034000 5514040512
|
31
|
+
40 39412750000000194000 5517061500
|
32
|
+
40 39412910000000200395 LB 0002582200
|
33
|
+
40 39413740000000113700 5517041901
|
34
|
+
40 39413740000000191300 5540043993
|
35
|
+
40 39413900000000113400 LB 0005550731
|
36
|
+
40 39414080000000158800 LB 0003334451
|
37
|
+
40 39414240000000201700 5540020428
|
38
|
+
40 39414570000000113400 5541008602
|
39
|
+
40 39416060000000119900 5540026099
|
40
|
+
40 39417050000000320800 5540011036
|
41
|
+
40 8841298000000009989N LB 0002582200
|
42
|
+
40 8841397000000010000- LB 0005550731
|
43
|
+
50 99123460606200000038000000004709300
|
44
|
+
90 0606200000038000000004709300
|
45
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
00 060620 BANKGIROT
|
2
|
+
10
|
3
|
+
20 99123465
|
4
|
+
30 99123465060620 9912346
|
5
|
+
40 49523470000000010000 5540020978
|
6
|
+
40 49524530000000797800 5540094949
|
7
|
+
50 991234650606200000002000000000807800 9912346
|
8
|
+
20 9912346
|
9
|
+
30 9912346060620
|
10
|
+
40 39407150000000147700 5540020977
|
11
|
+
40 39407640000000198100 5511115706
|
12
|
+
40 39408300000000190700 5541008608
|
13
|
+
40 39408890000000073100 5540093777
|
14
|
+
40 39408890000000132100 5540006858
|
15
|
+
40 39409620000000087600 5540094494
|
16
|
+
40 39410690000000078500 5517551977
|
17
|
+
40 39410770000000094900 5540021183
|
18
|
+
40 39410850000000169300 5517035205
|
19
|
+
40 39410930000000084100 5547510501
|
20
|
+
40 39411010000000084900 5511100321
|
21
|
+
40 39411190000000074200 5540022584
|
22
|
+
40 39411350000000076900 5540025566
|
23
|
+
40 39411430000000229300 5517540398
|
24
|
+
40 39411500000000075500 5540097588
|
25
|
+
40 39411680000000082700 5540009276
|
26
|
+
40 39411760000000123900 5540021117
|
27
|
+
40 39411840000000248300 5511053245
|
28
|
+
40 39411840000000201100 5541008627
|
29
|
+
40 39412000000000147700 5517043623
|
30
|
+
40 39412180000000123000 5547510510
|
31
|
+
40 39412260000000082700 5540022386
|
32
|
+
40 39412340000000087700 5517003480
|
33
|
+
40 39412420000000153800 5517537838
|
34
|
+
40 39412590000000100000 5504092053
|
35
|
+
40 39412750000000034000 5514040512
|
36
|
+
40 39412750000000194000 5517061500
|
37
|
+
40 39413740000000113700 5517041901
|
38
|
+
40 39413740000000191300 5540043993
|
39
|
+
40 39413900000000113400 LB 0005550731
|
40
|
+
40 39414080000000158800 LB 0003334451
|
41
|
+
40 39414240000000201700 5540020428
|
42
|
+
40 39414570000000113400 5541008602
|
43
|
+
40 39416060000000119900 5540026099
|
44
|
+
40 39417050000000320800 5540011036
|
45
|
+
50 99123460606200000035000000004708800
|
46
|
+
90 0606200000037000000005516600
|
@@ -0,0 +1,45 @@
|
|
1
|
+
00 060620 BANKGIROT
|
2
|
+
10
|
3
|
+
20 9912346
|
4
|
+
30 9912346060620
|
5
|
+
40 39407150000000147700 5540020977
|
6
|
+
40 39407640000000198100 5511115706
|
7
|
+
40 39408300000000190700 5541008608
|
8
|
+
40 39408890000000073100 5540093777
|
9
|
+
40 39408890000000132100 5540006858
|
10
|
+
40 39409620000000087600 5540094494
|
11
|
+
40 39410690000000078500 5517551977
|
12
|
+
40 39410770000000094900 5540021183
|
13
|
+
40 39410850000000169300 5517035205
|
14
|
+
40 39410930000000084100 5547510501
|
15
|
+
40 39411010000000084900 5511100321
|
16
|
+
40 39411190000000074200 5540022584
|
17
|
+
40 39411350000000076900 5540025566
|
18
|
+
40 39411430000000229300 5517540398
|
19
|
+
40 39411500000000075500 5540097588
|
20
|
+
40 39411680000000082700 5540009276
|
21
|
+
40 39411760000000123900 5540021117
|
22
|
+
40 39411840000000248300 5511053245
|
23
|
+
40 39411840000000201100 5541008627
|
24
|
+
40 39412000000000147700 5517043623
|
25
|
+
40 39412180000000123000 5547510510
|
26
|
+
40 39412260000000082700 5540022386
|
27
|
+
40 39412340000000087700 5517003480
|
28
|
+
40 39412420000000153800 5517537838
|
29
|
+
40 39412590000000100000 5504092053
|
30
|
+
40 39412750000000034000 5514040512
|
31
|
+
40 39412750000000194000 5517061500
|
32
|
+
40 39412910000000200395 LB 0002582200
|
33
|
+
40 39413740000000113700 5517041901
|
34
|
+
40 39413740000000191300 5540043993
|
35
|
+
40 39413900000000113400 LB 0005550731
|
36
|
+
40 39414080000000158800 LB 0003334451
|
37
|
+
40 39414240000000201700 5540020428
|
38
|
+
40 39414570000000113400 5541008602
|
39
|
+
40 39416060000000119900 5540026099
|
40
|
+
40 39417050000000320800 5540011036
|
41
|
+
40 8841298000000009989N 0002582200
|
42
|
+
40 8841397000000010000- LB 0005550731
|
43
|
+
50 99123460606200000038000000004709300
|
44
|
+
90 0606200000038000000004709300
|
45
|
+
|
data/test/test_transaction.rb
CHANGED
@@ -2,12 +2,14 @@ require 'helper'
|
|
2
2
|
|
3
3
|
class TestTransaction < Test::Unit::TestCase
|
4
4
|
def test_transaction
|
5
|
-
transactions = Rbankgiro::Transactions.new(fixture_file_path('one_transaction_09_02_27.txt')
|
5
|
+
transactions = Rbankgiro::Transactions.new(fixture_file_path('one_transaction_09_02_27.txt'))
|
6
6
|
transaction = transactions.first
|
7
7
|
|
8
8
|
assert_equal(false, transaction.rounding?)
|
9
|
-
assert_equal('86042103700000012', transaction.
|
9
|
+
assert_equal('86042103700000012', transaction.reference_number)
|
10
10
|
assert_equal(1, transaction.amount)
|
11
|
+
assert_equal('53090965', transaction.bankgiro_number)
|
12
|
+
assert_equal('909897', transaction.service_number)
|
11
13
|
assert_equal(Time.parse('Fri Feb 27 00:00:00 +0100 2009'), transaction.file_date)
|
12
14
|
end
|
13
15
|
end
|
data/test/test_transactions.rb
CHANGED
@@ -2,41 +2,83 @@ require 'helper'
|
|
2
2
|
|
3
3
|
class TestTransactions < Test::Unit::TestCase
|
4
4
|
def test_one_transaction
|
5
|
-
transactions = Rbankgiro::Transactions.new(fixture_file_path('one_transaction_09_02_27.txt')
|
5
|
+
transactions = Rbankgiro::Transactions.new(fixture_file_path('one_transaction_09_02_27.txt'))
|
6
6
|
|
7
7
|
assert_equal(1, transactions.sum)
|
8
8
|
assert_equal(1, transactions.length)
|
9
9
|
assert_equal(Time.parse('Fri Feb 27 00:00:00 +0100 2009'), transactions.file_date)
|
10
10
|
end
|
11
11
|
|
12
|
+
def test_multiple_transactions
|
13
|
+
transactions = Rbankgiro::Transactions.new(fixture_file_path('multiple_transactions_06_06_20.txt'))
|
14
|
+
|
15
|
+
# Test SEK
|
16
|
+
assert_equal(47093, transactions.sum)
|
17
|
+
assert_equal(38, transactions.length)
|
18
|
+
assert_equal(Time.parse('Tue Jun 20 00:00:00 +0200 2006'), transactions.file_date)
|
19
|
+
|
20
|
+
# Test LB flag
|
21
|
+
assert_equal(false, transactions[28].lb_flag)
|
22
|
+
assert transactions[27].lb_flag
|
23
|
+
assert transactions[30].lb_flag
|
24
|
+
assert transactions[31].lb_flag
|
25
|
+
assert transactions[36].lb_flag
|
26
|
+
assert transactions[37].lb_flag
|
27
|
+
|
28
|
+
# Test Öre
|
29
|
+
assert_equal(95, transactions[27].ore)
|
30
|
+
assert_equal(-95, transactions[36].ore)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_multiple_transaction_with_postgiro
|
34
|
+
transactions = Rbankgiro::Transactions.new(fixture_file_path('multiple_transactions_with_plusgiro_06_06_20.txt'))
|
35
|
+
|
36
|
+
assert_equal(55166, transactions.sum)
|
37
|
+
assert_equal(37, transactions.length)
|
38
|
+
assert_equal(Time.parse('Tue Jun 20 00:00:00 +0200 2006'), transactions.file_date)
|
39
|
+
|
40
|
+
for i in 0..1
|
41
|
+
assert_equal('99123465', transactions[i].bankgiro_number)
|
42
|
+
end
|
43
|
+
|
44
|
+
for i in 2..36
|
45
|
+
assert_equal('9912346', transactions[i].bankgiro_number)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_overpunch_without_lb_flag
|
50
|
+
assert_raise(Rbankgiro::FileFormatError) do
|
51
|
+
Rbankgiro::Transactions.new(fixture_file_path('overpunch_transaction_with_missing_lb_flag_06_06_20.txt'))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
12
55
|
def test_missing_transaction
|
13
56
|
assert_raise(Rbankgiro::PartSumError) do
|
14
|
-
Rbankgiro::Transactions.new(fixture_file_path('missing_transaction_09_02_27.txt')
|
57
|
+
Rbankgiro::Transactions.new(fixture_file_path('missing_transaction_09_02_27.txt'))
|
15
58
|
end
|
16
59
|
end
|
17
60
|
|
18
61
|
def test_corrupt_header
|
19
62
|
assert_raise(Rbankgiro::CorruptHeader) do
|
20
|
-
Rbankgiro::Transactions.new(fixture_file_path('corrupt_header_09_02_27.txt')
|
63
|
+
Rbankgiro::Transactions.new(fixture_file_path('corrupt_header_09_02_27.txt'))
|
21
64
|
end
|
22
65
|
end
|
23
66
|
|
24
67
|
def test_invalid_bankgiro_number
|
25
68
|
assert_raise(Rbankgiro::InvalidBankgiroNumber) do
|
26
|
-
Rbankgiro::Transactions.new(fixture_file_path('
|
69
|
+
Rbankgiro::Transactions.new(fixture_file_path('invalid_bankgiro_number_09_02_27.txt'))
|
27
70
|
end
|
28
71
|
end
|
29
72
|
|
30
73
|
def test_file_format_error
|
31
74
|
assert_raise(Rbankgiro::FileFormatError) do
|
32
|
-
Rbankgiro::Transactions.new(fixture_file_path('file_format_error_09_02_27.txt')
|
75
|
+
Rbankgiro::Transactions.new(fixture_file_path('file_format_error_09_02_27.txt'))
|
33
76
|
end
|
34
77
|
end
|
35
78
|
|
36
79
|
def test_transaction_count_error
|
37
80
|
assert_raise(Rbankgiro::TransactionCountError) do
|
38
|
-
Rbankgiro::Transactions.new(fixture_file_path('one_too_many_transactions_09_02_27.txt')
|
81
|
+
Rbankgiro::Transactions.new(fixture_file_path('one_too_many_transactions_09_02_27.txt'))
|
39
82
|
end
|
40
83
|
end
|
41
|
-
|
42
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbankgiro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Johan Eckerstr\xC3\xB6m"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-08 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -29,9 +29,13 @@ files:
|
|
29
29
|
- rbankgiro.gemspec
|
30
30
|
- test/fixtures/corrupt_header_09_02_27.txt
|
31
31
|
- test/fixtures/file_format_error_09_02_27.txt
|
32
|
+
- test/fixtures/invalid_bankgiro_number_09_02_27.txt
|
32
33
|
- test/fixtures/missing_transaction_09_02_27.txt
|
34
|
+
- test/fixtures/multiple_transactions_06_06_20.txt
|
35
|
+
- test/fixtures/multiple_transactions_with_plusgiro_06_06_20.txt
|
33
36
|
- test/fixtures/one_too_many_transactions_09_02_27.txt
|
34
37
|
- test/fixtures/one_transaction_09_02_27.txt
|
38
|
+
- test/fixtures/overpunch_transaction_with_missing_lb_flag_06_06_20.txt
|
35
39
|
- test/helper.rb
|
36
40
|
- test/test_transaction.rb
|
37
41
|
- test/test_transactions.rb
|