king_dtaus 2.0.1 → 2.0.2.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +6 -1
- data/README.markdown +59 -59
- data/Rakefile +17 -11
- data/VERSION +1 -0
- data/docs/dtazv.pdf +0 -0
- data/docs/dtazv_bank_bbk.pdf +0 -0
- data/docs/example.output +7 -0
- data/king_dtaus.gemspec +60 -19
- data/lib/king_dta/account.rb +27 -51
- data/lib/king_dta/dta.rb +0 -10
- data/lib/king_dta/dtaus.rb +130 -121
- data/lib/king_dta/dtazv.rb +226 -185
- data/spec/account_spec.rb +21 -72
- data/spec/dtaus_spec.rb +12 -35
- data/spec/dtazv_spec.rb +12 -9
- data/spec/dtazv_test.rb +105 -0
- data/spec/spec_helper.rb +32 -33
- metadata +119 -115
- data/.gitignore +0 -9
- data/lib/king_dta/version.rb +0 -3
data/spec/account_spec.rb
CHANGED
@@ -8,122 +8,71 @@ describe KingDta::Account do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should initialize a new account" do
|
11
|
-
lambda{
|
12
|
-
KingDta::Account.new(:bank_account_number => @ba.bank_account_number,
|
13
|
-
:bank_number => @ba.bank_number,
|
14
|
-
:owner_name => @ba.owner_name)
|
15
|
-
}.should_not raise_error
|
11
|
+
lambda{ KingDta::Account.new(:account_number => @ba.account_number, :bank_number => @ba.bank_number, :client_name => @ba.client_name) }.should_not raise_error
|
16
12
|
end
|
17
13
|
|
18
14
|
it "should initialize a new dtazv account" do
|
19
|
-
lambda{
|
15
|
+
lambda{
|
20
16
|
KingDta::Account.new(sender_opts)
|
21
17
|
}.should_not raise_error
|
22
18
|
end
|
23
19
|
|
24
|
-
it "should convert bank_account_number to integer" do
|
25
|
-
opts = {:bank_account_number => '0123456',
|
26
|
-
:bank_number => @ba.bank_number,
|
27
|
-
:owner_name => @ba.owner_name}
|
28
|
-
anct = KingDta::Account.new(opts)
|
29
|
-
anct.bank_account_number.should == 123456
|
30
|
-
|
31
|
-
anct2 = KingDta::Account.new(opts.merge(:bank_account_number=>'012 345 6'))
|
32
|
-
anct2.bank_account_number.should == 123456
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should convert bank_number to integer" do
|
36
|
-
opts = {:bank_account_number => @ba.bank_account_number,
|
37
|
-
:bank_number => '0123',
|
38
|
-
:owner_name => @ba.owner_name}
|
39
|
-
anct = KingDta::Account.new(opts)
|
40
|
-
anct.bank_number.should == 123
|
41
|
-
|
42
|
-
anct2 = KingDta::Account.new(opts.merge(:bank_number=>'012 34 5'))
|
43
|
-
anct2.bank_number.should == 12345
|
44
|
-
end
|
45
|
-
|
46
20
|
it "should fail if bank account number is invalid" do
|
47
|
-
lambda{
|
48
|
-
|
49
|
-
:bank_number => @ba.bank_number,
|
50
|
-
:owner_name => @ba.owner_name)
|
51
|
-
|
52
|
-
}.should raise_error(ArgumentError, 'Bank account number too long, max 10 allowed')
|
21
|
+
# lambda{ KingDta::Account.new(0, @ba.bank_number, @ba.client_name) }.should raise_error(ArgumentError)
|
22
|
+
lambda{ KingDta::Account.new(:account_number => 123456789011123456789011123456789011123456789011123456789011123456789011, :bank_number => @ba.bank_number, :client_name => @ba.client_name) }.should raise_error(ArgumentError, 'Account number too long, max 35 allowed')
|
53
23
|
end
|
54
24
|
|
55
25
|
it "should fail if bank number is invalid" do
|
56
|
-
lambda{
|
57
|
-
|
58
|
-
:bank_number => 0,
|
59
|
-
:owner_name => @ba.owner_name)
|
60
|
-
}.should raise_error(ArgumentError)
|
61
|
-
|
62
|
-
lambda{
|
63
|
-
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
64
|
-
:bank_number => 123456789101112,
|
65
|
-
:owner_name => @ba.owner_name)
|
66
|
-
}.should raise_error(ArgumentError, 'Bank number too long, max 8 allowed')
|
26
|
+
lambda{ KingDta::Account.new(:account_number => @ba.account_number, :bank_number => 0, :client_name => @ba.client_name) }.should raise_error(ArgumentError)
|
27
|
+
lambda{ KingDta::Account.new(:account_number => @ba.account_number, :bank_number => 123456789101112, :client_name => @ba.client_name) }.should raise_error(ArgumentError, 'Bank number too long, max 11 allowed')
|
67
28
|
end
|
68
29
|
|
69
|
-
it "should fail if
|
70
|
-
lambda{
|
71
|
-
KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
|
72
|
-
:bank_number => @ba.bank_number,
|
73
|
-
:owner_name => @ba.owner_name,
|
74
|
-
:owner_number => 12345678901)
|
75
|
-
}.should raise_error(ArgumentError, 'Owner number too long, max 10 allowed')
|
30
|
+
it "should fail if clent number is too long" do
|
31
|
+
lambda{ KingDta::Account.new(:account_number => @ba.account_number, :bank_number => @ba.bank_number, :client_name => @ba.client_name, :client_number => 12345678901) }.should raise_error(ArgumentError, 'Client number too long, max 10 allowed')
|
76
32
|
end
|
77
33
|
|
78
|
-
it "should fail if street and/or Zip Code is too long" do
|
34
|
+
it "should fail if street and/or Zip Code is too long" do
|
79
35
|
opts = sender_opts.merge( :bank_street => "Lorem ipsum dolor sit amet, consectetur")
|
80
36
|
lambda{
|
81
37
|
KingDta::Account.new(opts)
|
82
|
-
}.should raise_error(ArgumentError, 'Bank
|
38
|
+
}.should raise_error(ArgumentError, 'Bank Street too long, max 35 allowed')
|
83
39
|
end
|
84
40
|
|
85
41
|
it "should fail if city is too long" do
|
86
42
|
opts = sender_opts.merge( :bank_city => "Lorem ipsum dolor sit amet, consecte")
|
87
|
-
lambda{
|
43
|
+
lambda{
|
88
44
|
KingDta::Account.new opts
|
89
|
-
}.should raise_error(ArgumentError, 'Bank
|
45
|
+
}.should raise_error(ArgumentError, 'Bank City too long, max 35 allowed')
|
90
46
|
end
|
91
47
|
|
92
48
|
it "should fail if bank name is too long" do
|
93
49
|
opts = sender_opts.merge( :bank_name => "Lorem ipsum dolor sit amet, consecte")
|
94
50
|
lambda{
|
95
51
|
KingDta::Account.new opts
|
96
|
-
}.should raise_error(ArgumentError, 'Bank
|
52
|
+
}.should raise_error(ArgumentError, 'Bank Name too long, max 35 allowed')
|
97
53
|
end
|
98
54
|
|
99
55
|
it "should fail if client street is too long" do
|
100
|
-
opts = sender_opts.merge( :
|
56
|
+
opts = sender_opts.merge( :client_street => "Lorem ipsum dolor sit amet, consecte")
|
101
57
|
lambda{
|
102
58
|
KingDta::Account.new opts
|
103
|
-
}.should raise_error(ArgumentError, '
|
59
|
+
}.should raise_error(ArgumentError, 'Client Street too long, max 35 allowed')
|
104
60
|
end
|
105
61
|
|
106
62
|
it "should fail if city is too long" do
|
107
|
-
opts = sender_opts.merge( :
|
63
|
+
opts = sender_opts.merge( :client_city => "Lorem ipsum dolor sit amet, consecte")
|
108
64
|
lambda{
|
109
65
|
KingDta::Account.new opts
|
110
|
-
}.should raise_error(ArgumentError, '
|
66
|
+
}.should raise_error(ArgumentError, 'Client City too long, max 35 allowed')
|
111
67
|
end
|
112
68
|
|
113
69
|
it "should return account street and zip" do
|
114
|
-
|
115
|
-
|
70
|
+
konto = KingDta::Account.new( sender_opts )
|
71
|
+
konto.zip_city.should == "51063 BANK KOELN"
|
116
72
|
end
|
117
73
|
|
118
74
|
it "should return sender street and zip" do
|
119
|
-
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
it "should set owner country code from iban" do
|
124
|
-
opts = receiver_opts
|
125
|
-
opts[:owner_country_code] = nil
|
126
|
-
acnt = KingDta::Account.new( opts )
|
127
|
-
acnt.owner_country_code.should == "PL"
|
75
|
+
konto = KingDta::Account.new( sender_opts )
|
76
|
+
konto.client_zip_city.should == "51063 MEINE KOELN"
|
128
77
|
end
|
129
78
|
end
|
data/spec/dtaus_spec.rb
CHANGED
@@ -8,9 +8,9 @@ describe KingDta::Dtaus do
|
|
8
8
|
@dtaus_gk = KingDta::Dtaus.new('GK', Date.today)
|
9
9
|
@kto1 = test_kto1
|
10
10
|
@kto2 = test_kto2
|
11
|
-
@dtaus.account = KingDta::Account.new(:
|
12
|
-
@dtaus_gk.account = KingDta::Account.new(:
|
13
|
-
@booking = KingDta::Booking.new(KingDta::Account.new(:
|
11
|
+
@dtaus.account = KingDta::Account.new(:account_number => @kto1.account_number, :bank_number => @kto1.bank_number, :client_name => @kto1.client_name, :bank_name => @kto1.bank_name)
|
12
|
+
@dtaus_gk.account = KingDta::Account.new(:account_number => @kto1.account_number, :bank_number => @kto1.bank_number, :client_name => @kto1.client_name, :bank_name => @kto1.bank_name)
|
13
|
+
@booking = KingDta::Booking.new(KingDta::Account.new(:account_number => @kto2.account_number, :bank_number => @kto2.bank_number, :client_name => @kto2.client_name, :bank_name => @kto2.bank_name), 220.25 )
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should not init without values" do
|
@@ -41,7 +41,7 @@ describe KingDta::Dtaus do
|
|
41
41
|
|
42
42
|
it "should not add a booking if closed" do
|
43
43
|
@dtaus.add(@booking)
|
44
|
-
negative_booking = KingDta::Booking.new(KingDta::Account.new(:
|
44
|
+
negative_booking = KingDta::Booking.new(KingDta::Account.new(:account_number => @kto2.account_number, :bank_number => @kto2.bank_number, :client_name => @kto2.client_name, :bank_name => @kto2.bank_name ), -120.25 )
|
45
45
|
lambda{ @dtaus.add(negative_booking) }.should raise_error(KingDta::Exception)
|
46
46
|
end
|
47
47
|
|
@@ -55,7 +55,7 @@ describe KingDta::Dtaus do
|
|
55
55
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"
|
56
56
|
str.should == out
|
57
57
|
#60-70 kontonummer mit nullen aufgefüllt - hier nicht da ktnr == 10 stellen
|
58
|
-
str[60...70].should == "#{test_kto1.
|
58
|
+
str[60...70].should == "#{test_kto1.account_number}"
|
59
59
|
str.should include(test_kto1.bank_number)
|
60
60
|
end
|
61
61
|
|
@@ -85,31 +85,17 @@ describe KingDta::Dtaus do
|
|
85
85
|
@dtaus.add_c(@booking)
|
86
86
|
str = @dtaus.dta_string
|
87
87
|
str.length.should == 256
|
88
|
-
str.should include(@kto2.
|
88
|
+
str.should include(@kto2.client_name.upcase)
|
89
89
|
out = "0216C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGSALESKING MONATSBEITRAG 08/1 010210 FREELANCER VERSION "
|
90
90
|
str.should == out
|
91
91
|
end
|
92
92
|
|
93
|
-
it "should create c-sektion with long account owner name in extension" do
|
94
|
-
@dtaus.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number,
|
95
|
-
:owner_name => 'A very long name exeeding 27 characters even longer 54 chars', :bank_name => @kto1.bank_name)
|
96
|
-
|
97
|
-
@dtaus.add(@booking)
|
98
|
-
@dtaus.bookings.first.text = 'SalesKing Monatsbeitrag 08/10 Freelancer Version'
|
99
|
-
@dtaus.add_c(@booking)
|
100
|
-
str = @dtaus.dta_string
|
101
|
-
str.length.should == 256
|
102
|
-
str.should include(@kto2.owner_name.upcase)
|
103
|
-
out = "0245C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH A VERY LONG NAME EXEEDING 2SALESKING MONATSBEITRAG 08/1 020210 FREELANCER VERSION 037 CHARACTERS EVEN LONGER 54 "
|
104
|
-
str.should == out
|
105
|
-
end
|
106
|
-
|
107
93
|
it "should create c-sektion with default booking text" do
|
108
94
|
@dtaus.default_text = 'Default verwendungszweck'
|
109
95
|
@dtaus.add_c(@booking)
|
110
96
|
str = @dtaus.dta_string
|
111
97
|
str.length.should == 256
|
112
|
-
str.should include(@kto2.
|
98
|
+
str.should include(@kto2.client_name.upcase)
|
113
99
|
out = "0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "
|
114
100
|
str.should == out
|
115
101
|
end
|
@@ -119,8 +105,8 @@ describe KingDta::Dtaus do
|
|
119
105
|
@dtaus.add(@booking)
|
120
106
|
str = @dtaus.create
|
121
107
|
str.length.should == 512
|
122
|
-
str.should include(@kto1.
|
123
|
-
str.should include(@kto2.
|
108
|
+
str.should include(@kto1.client_name.upcase)
|
109
|
+
str.should include(@kto2.client_name.upcase)
|
124
110
|
str.should include(@dtaus.default_text.upcase)
|
125
111
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
126
112
|
"0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "+
|
@@ -128,21 +114,12 @@ describe KingDta::Dtaus do
|
|
128
114
|
str.should == out
|
129
115
|
end
|
130
116
|
|
131
|
-
it "should create whole dta string with long texts exeeding extension" do
|
132
|
-
@dtaus.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number,
|
133
|
-
:owner_name => 'A very long name exeeding 27 characters even longer 54 chars', :bank_name => @kto1.bank_name)
|
134
|
-
@dtaus.add(@booking)
|
135
|
-
@dtaus.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH' * 20
|
136
|
-
@dtaus.bookings.first.account.owner_name = 'A very long name exeeding 27 characters even longer 54 chars'
|
137
|
-
str = @dtaus.create ## should not raise error
|
138
|
-
end
|
139
|
-
|
140
117
|
it "should create whole dta string with long booking text in extension" do
|
141
118
|
@dtaus.add(@booking)
|
142
119
|
@dtaus.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH'
|
143
120
|
str = @dtaus.create
|
144
121
|
str.length.should == 640
|
145
|
-
str.should include(@kto2.
|
122
|
+
str.should include(@kto2.client_name.upcase)
|
146
123
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
147
124
|
"0274C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGRGN R-3456-0102220 MONATSBE1 0302ITRAG 08/10 FREELANCER VERS02ION VIELEN DANK IHRE SALESK 02ING GMBH "+
|
148
125
|
"0128E 0000001000000000000000000000002787777000000000370400440000000022025 "
|
@@ -154,8 +131,8 @@ describe KingDta::Dtaus do
|
|
154
131
|
6.times { @dtaus.add(@booking) }
|
155
132
|
str = @dtaus.create
|
156
133
|
str.length.should == 1792
|
157
|
-
str.should include(@kto1.
|
158
|
-
str.should include(@kto2.
|
134
|
+
str.should include(@kto1.client_name.upcase)
|
135
|
+
str.should include(@kto2.client_name.upcase)
|
159
136
|
str.should include(@dtaus.default_text.upcase)
|
160
137
|
out = "0128ALK3704004400000000GIMME YOUR MONEY AG #{Date.today.strftime("%d%m%y")} 78289700370000000000 #{Date.today.strftime("%d%m%Y")} 1"+
|
161
138
|
"0187C00000000370400440002787777000000000000005000 0000000000037040044782897003700000022025 PETER & MAY GMBH GIMME YOUR MONEY AGDEFAULT VERWENDUNGSZWECK 1 00 "+
|
data/spec/dtazv_spec.rb
CHANGED
@@ -9,6 +9,7 @@ describe KingDta::Dtazv do
|
|
9
9
|
@dtazv = KingDta::Dtazv.new(Date.parse('2011-08-28'))
|
10
10
|
@dtazv.account = KingDta::Account.new sender_opts
|
11
11
|
@booking = KingDta::Booking.new( KingDta::Account.new( receiver_opts ), 220.25)
|
12
|
+
|
12
13
|
end
|
13
14
|
|
14
15
|
it "should init without values" do
|
@@ -34,7 +35,9 @@ describe KingDta::Dtazv do
|
|
34
35
|
filename = File.join(File.dirname(__FILE__), 'test_output.dta')
|
35
36
|
@dtazv.create_file(filename)
|
36
37
|
str = ''
|
37
|
-
File.open(filename, 'r').each
|
38
|
+
File.open(filename, 'r').each do |ln|
|
39
|
+
str << ln
|
40
|
+
end
|
38
41
|
str.length.should == 5120
|
39
42
|
#remove testfile
|
40
43
|
File.delete(filename)
|
@@ -60,8 +63,8 @@ describe KingDta::Dtazv do
|
|
60
63
|
@dtazv.add(@booking)
|
61
64
|
str = @dtazv.create
|
62
65
|
str.length.should == 1280
|
63
|
-
str.should include(receiver_opts[:
|
64
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
66
|
+
str.should include(receiver_opts[:client_name].upcase)
|
67
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000256Z000000000000220000000000000001 "
|
65
68
|
str.should == out
|
66
69
|
end
|
67
70
|
|
@@ -70,8 +73,8 @@ describe KingDta::Dtazv do
|
|
70
73
|
@dtazv.bookings.first.text = 'Rgn R-3456-0102220 Monatsbeitrag 08/10 Freelancer Version Vielen Dank Ihre SalesKing GmbH'
|
71
74
|
str = @dtazv.create
|
72
75
|
str.length.should == 1280
|
73
|
-
str.should include(receiver_opts[:
|
74
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
76
|
+
str.should include(receiver_opts[:client_name].upcase)
|
77
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 RGN R-3456-0102220 MONATSBEITRAG 08/10 FREELANCER VERSION VIELEN DANK IHRE SALESKING GMBH00000000 0013 0 000256Z000000000000220000000000000001 "
|
75
78
|
str.should == out
|
76
79
|
end
|
77
80
|
|
@@ -79,9 +82,9 @@ describe KingDta::Dtazv do
|
|
79
82
|
6.times { @dtazv.add(@booking) }
|
80
83
|
str = @dtazv.create
|
81
84
|
str.length.should == 5120
|
82
|
-
str.should include(receiver_opts[:
|
83
|
-
str.should include(sender_opts[:
|
84
|
-
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000
|
85
|
+
str.should include(receiver_opts[:client_name].upcase)
|
86
|
+
str.should include(sender_opts[:client_name].upcase)
|
87
|
+
out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 000256Z000000000001320000000000000006 "
|
85
88
|
str.should == out
|
86
89
|
end
|
87
90
|
|
@@ -117,7 +120,7 @@ describe "KingDta::DtazvSegments" do
|
|
117
120
|
end
|
118
121
|
|
119
122
|
it "should return the proper T segment" do
|
120
|
-
@dtazv.add_t(@booking).should == "0768T37050299EUR1326049634#{@date.strftime("%y%m%d")}00000000
|
123
|
+
@dtazv.add_t(@booking).should == "0768T37050299EUR1326049634#{@date.strftime("%y%m%d")}00000000 0000000000MARKF1100 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /GR1601101250000000012300695 EUR00000000000220250 00000000 0013 0 00"
|
121
124
|
end
|
122
125
|
|
123
126
|
it "should return the proper length of T segment" do
|
data/spec/dtazv_test.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require "king_dtaus"
|
6
|
+
require 'rspec'
|
7
|
+
require 'ostruct'
|
8
|
+
require 'date'
|
9
|
+
|
10
|
+
class Dtazv
|
11
|
+
|
12
|
+
|
13
|
+
def dudes_konto
|
14
|
+
opts = {
|
15
|
+
:account_number => '1326049634',
|
16
|
+
:bank_number => '37050299',
|
17
|
+
:bank_name => 'Kreissparkasse Köln',
|
18
|
+
:zweck => 'Monatsbeitrag',
|
19
|
+
:account_street => "Bank Eine Straße 2",
|
20
|
+
:account_city => "Bank Köln",
|
21
|
+
:account_zip_code => "51063",
|
22
|
+
:client_number => "",
|
23
|
+
:client_name =>'Jan Kus',
|
24
|
+
:client_street => "Meine Eine Straße 2",
|
25
|
+
:client_city => "Meine Köln",
|
26
|
+
:client_zip_code => "51063",
|
27
|
+
:bank_country_code => "DE",
|
28
|
+
:client_country_code => "DE"
|
29
|
+
}
|
30
|
+
TestKonto.new(opts)
|
31
|
+
end
|
32
|
+
|
33
|
+
def dalai_lamas_account
|
34
|
+
opts = {
|
35
|
+
:account_number => 'GR1601101250000000012300695',
|
36
|
+
:bank_number => 'MARKF1100',
|
37
|
+
:bank_name => 'Dalai Lamas Bank',
|
38
|
+
:zweck => 'Lama Fee',
|
39
|
+
:account_street => "5th avenue",
|
40
|
+
:account_city => "los angeles",
|
41
|
+
:account_zip_code => "55323",
|
42
|
+
:client_number => "",
|
43
|
+
:client_name =>'Dalai Lama',
|
44
|
+
:client_street => "Bush-Avenue 55",
|
45
|
+
:client_city => "India",
|
46
|
+
:client_zip_code => "066600",
|
47
|
+
:client_zip_code => "445555",
|
48
|
+
:bank_country_code => "DE",
|
49
|
+
:client_country_code => "DE"
|
50
|
+
}
|
51
|
+
TestKonto.new(opts)
|
52
|
+
end
|
53
|
+
# The DTAVZ format as string. All data is appended to it during creation
|
54
|
+
def dta_string
|
55
|
+
@dta_string ||= ''
|
56
|
+
end
|
57
|
+
|
58
|
+
def create_dtazv
|
59
|
+
@dtazv = KingDta::Dtazv.new(Date.today)
|
60
|
+
@dudes_konto = dudes_konto
|
61
|
+
@dalai_lamas_account = dalai_lamas_account
|
62
|
+
|
63
|
+
@dtazv.account = KingDta::Account.new(
|
64
|
+
:account_number => @dudes_konto.account_number,
|
65
|
+
:bank_number => @dudes_konto.bank_number,
|
66
|
+
:client_name => @dudes_konto.client_name,
|
67
|
+
:client_number => @dudes_konto.client_number,
|
68
|
+
:bank_street => @dudes_konto.account_street,
|
69
|
+
:bank_city => @dudes_konto.account_city,
|
70
|
+
:bank_zip_code => @dudes_konto.account_zip_code,
|
71
|
+
:bank_name => @dudes_konto.bank_name,
|
72
|
+
:client_street => @dudes_konto.client_street,
|
73
|
+
:client_city => @dudes_konto.client_city,
|
74
|
+
:client_zip_code => @dudes_konto.client_zip_code,
|
75
|
+
:bank_country_code => @dudes_konto.bank_country_code,
|
76
|
+
:client_country_code => @dudes_konto.client_country_code
|
77
|
+
)
|
78
|
+
|
79
|
+
@dalai_lamas_booking = KingDta::Booking.new(KingDta::Account.new(
|
80
|
+
:account_number => @dalai_lamas_account.account_number,
|
81
|
+
:bank_number => @dalai_lamas_account.bank_number,
|
82
|
+
:client_name => @dalai_lamas_account.client_name,
|
83
|
+
:client_number => @dalai_lamas_account.client_number,
|
84
|
+
:bank_street => @dalai_lamas_account.account_street,
|
85
|
+
:bank_city => @dalai_lamas_account.account_city,
|
86
|
+
:bank_zip_code => @dalai_lamas_account.account_zip_code,
|
87
|
+
:bank_name => @dalai_lamas_account.bank_name,
|
88
|
+
:client_street => @dalai_lamas_account.client_street,
|
89
|
+
:client_city => @dalai_lamas_account.client_city,
|
90
|
+
:client_zip_code => @dalai_lamas_account.client_zip_code,
|
91
|
+
:bank_country_code => @dalai_lamas_account.bank_country_code,
|
92
|
+
:client_country_code => @dalai_lamas_account.client_country_code
|
93
|
+
), 220.25)
|
94
|
+
|
95
|
+
@dtazv.add(@dalai_lamas_booking)
|
96
|
+
puts @dtazv.create
|
97
|
+
end
|
98
|
+
|
99
|
+
# the test account responds to everything
|
100
|
+
class TestKonto < OpenStruct; end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
d = Dtazv.new
|
105
|
+
d.create_dtazv
|
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
4
|
|
5
5
|
require 'simplecov'
|
6
6
|
SimpleCov.start 'rails'
|
7
|
-
SimpleCov.coverage_dir 'coverage'
|
7
|
+
SimpleCov.coverage_dir 'coverage/rspec'
|
8
8
|
|
9
9
|
require 'rubygems'
|
10
10
|
require "king_dtaus"
|
@@ -15,76 +15,75 @@ require 'date'
|
|
15
15
|
RSpec.configure do |config|
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
|
19
19
|
def sender_opts
|
20
20
|
{
|
21
|
-
:
|
21
|
+
:account_number => '1326049634',
|
22
22
|
:bank_number => '37050299',
|
23
23
|
:bank_name => 'Kreissparkasse Köln',
|
24
24
|
:bank_street => "Bank Eine Straße 2",
|
25
25
|
:bank_city => "Bank Köln",
|
26
|
-
:
|
26
|
+
:bank_zip_code => "51063",
|
27
|
+
:client_number => "",
|
28
|
+
:client_name =>'Jan Kus',
|
29
|
+
:client_street => "Meine Eine Straße 2",
|
30
|
+
:client_city => "Meine Köln",
|
31
|
+
:client_zip_code => "51063",
|
27
32
|
:bank_country_code => "DE",
|
28
|
-
:
|
29
|
-
:owner_name =>'Jan Kus',
|
30
|
-
:owner_street => "Meine Eine Straße 2",
|
31
|
-
:owner_city => "Meine Köln",
|
32
|
-
:owner_zip_code => "51063",
|
33
|
-
:owner_country_code => "DE"
|
33
|
+
:client_country_code => "DE"
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
37
|
def receiver_opts
|
38
38
|
{
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
43
|
-
:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
# :bank_country_code => "DE",
|
39
|
+
:account_number => 'GR1601101250000000012300695',
|
40
|
+
:bank_number => 'MARKF1100',
|
41
|
+
:bank_name => 'Dalai Lamas Bank',
|
42
|
+
:bank_street => "5th avenue",
|
43
|
+
:bank_city => "los angeles",
|
44
|
+
:bank_zip_code => "55323",
|
45
|
+
:client_number => "",
|
46
|
+
:client_name =>'Dalai Lama',
|
47
|
+
:client_street => "Bush-Avenue 55",
|
48
|
+
:client_city => "India",
|
49
|
+
:client_zip_code => "445555",
|
50
|
+
:bank_country_code => "DE",
|
51
|
+
:client_country_code => "DE"
|
53
52
|
}
|
54
53
|
end
|
55
54
|
|
56
55
|
def test_kto1
|
57
56
|
opts = {
|
58
|
-
:
|
57
|
+
:account_number => '7828970037',
|
59
58
|
:bank_number => '37040044',
|
60
|
-
:
|
59
|
+
:client_name =>'Gimme your Money AG',
|
61
60
|
:bank_name => 'Commerzbank Köln',
|
62
61
|
:zweck => 'Monatsbeitrag',
|
63
|
-
:
|
62
|
+
:client_number => ""
|
64
63
|
}
|
65
64
|
TestKonto.new(opts)
|
66
65
|
end
|
67
66
|
|
68
67
|
def test_kto2
|
69
68
|
opts = {
|
70
|
-
:
|
69
|
+
:account_number => '2787777',
|
71
70
|
:bank_number => '37040044',
|
72
|
-
:
|
71
|
+
:client_name =>'Peter & May GmbH',
|
73
72
|
:bank_name => 'Commerzbank Köln',
|
74
73
|
:zweck => 'Monatsbeitrag',
|
75
|
-
:
|
74
|
+
:client_number => ""
|
76
75
|
}
|
77
76
|
TestKonto.new(opts)
|
78
77
|
end
|
79
78
|
|
80
79
|
def test_kto3
|
81
80
|
opts = {
|
82
|
-
:
|
81
|
+
:account_number => '2787777',
|
83
82
|
:bank_number => '37040044',
|
84
|
-
:
|
83
|
+
:client_name =>'Andrew Müller',
|
85
84
|
:bank_name => 'Commerzbank Köln',
|
86
85
|
:zweck => 'Monatsbeitrag',
|
87
|
-
:
|
86
|
+
:client_number => ""
|
88
87
|
}
|
89
88
|
TestKonto.new(opts)
|
90
89
|
end
|