king_dtaus 2.0.1 → 2.0.2.pre
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/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
|