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.
@@ -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
- KingDta::Account.new(:bank_account_number => 123456789011123456789011123456789011,
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
- KingDta::Account.new( :bank_account_number => @ba.bank_account_number,
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 owner number is too long" do
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 street too long, max 35 allowed')
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 city too long, max 35 allowed')
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 name too long, max 35 allowed')
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( :owner_street => "Lorem ipsum dolor sit amet, consecte")
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, 'Owner street too long, max 35 allowed')
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( :owner_city => "Lorem ipsum dolor sit amet, consecte")
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, 'Owner city too long, max 35 allowed')
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
- acnt = KingDta::Account.new( sender_opts )
115
- acnt.bank_zip_city.should == "51063 BANK KOELN"
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
- acnt = KingDta::Account.new( sender_opts )
120
- acnt.owner_zip_city.should == "51063 MEINE KOELN"
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
@@ -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(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number, :owner_name => @kto1.owner_name, :bank_name => @kto1.bank_name)
12
- @dtaus_gk.account = KingDta::Account.new(:bank_account_number => @kto1.bank_account_number, :bank_number => @kto1.bank_number, :owner_name => @kto1.owner_name, :bank_name => @kto1.bank_name)
13
- @booking = KingDta::Booking.new(KingDta::Account.new(:bank_account_number => @kto2.bank_account_number, :bank_number => @kto2.bank_number, :owner_name => @kto2.owner_name, :bank_name => @kto2.bank_name), 220.25 )
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(:bank_account_number => @kto2.bank_account_number, :bank_number => @kto2.bank_number, :owner_name => @kto2.owner_name, :bank_name => @kto2.bank_name ), -120.25 )
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.bank_account_number}"
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.owner_name.upcase)
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.owner_name.upcase)
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.owner_name.upcase)
123
- str.should include(@kto2.owner_name.upcase)
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.owner_name.upcase)
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.owner_name.upcase)
158
- str.should include(@kto2.owner_name.upcase)
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 "+
@@ -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 { |ln| str << ln }
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[:owner_name].upcase)
64
- out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000256Z000000000000220000000000000001 "
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[:owner_name].upcase)
74
- out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250RGN R-3456-0102220 MONATSBEITRAG 08/10 FREELANCER VERSION VIELEN DANK IHRE SALESKING GMBH 00000000 0013 0 000256Z000000000000220000000000000001 "
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[:owner_name].upcase)
83
- str.should include(sender_opts[:owner_name].upcase)
84
- out = "0256Q370502991326049634JAN KUS MEINE EINE STRASSE 2 51063 MEINE KOELN 11082801110828N0000000000 0768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000768T37050299EUR132604963411082800000000 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 000256Z000000000001320000000000000006 "
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 0000000000COBADEFF366 DE DALAI LAMA BUSH-AVENUE 55 445555 INDIA /PL10105013151000002308622378 EUR00000000000220250 00000000 0013 0 00"
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
@@ -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
@@ -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
- # a full account, address infos are only needed if BIC or IBAN is unknown
18
+
19
19
  def sender_opts
20
20
  {
21
- :bank_account_number => '1326049634',
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
- :bank_zip => "51063",
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
- :owner_number => "",
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
- :bank_iban => 'PL10105013151000002308622378',
40
- :bank_bic => 'COBADEFF366',
41
- :owner_name =>'Dalai Lama',
42
- :owner_street => "Bush-Avenue 55",
43
- :owner_city => "India",
44
- :owner_zip_code => "445555",
45
- :owner_country_code => "DE" # actually wrong since iban is in poland
46
- # only needed if no bic present
47
- # :bank_name => 'Dalai Lamas Bank',
48
- # :bank_street => "5th avenue",
49
- # :bank_city => "Pulheim",
50
- # :bank_zip => "55323",
51
- # :owner_number => "",
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
- :bank_account_number => '7828970037',
57
+ :account_number => '7828970037',
59
58
  :bank_number => '37040044',
60
- :owner_name =>'Gimme your Money AG',
59
+ :client_name =>'Gimme your Money AG',
61
60
  :bank_name => 'Commerzbank Köln',
62
61
  :zweck => 'Monatsbeitrag',
63
- :owner_number => ""
62
+ :client_number => ""
64
63
  }
65
64
  TestKonto.new(opts)
66
65
  end
67
66
 
68
67
  def test_kto2
69
68
  opts = {
70
- :bank_account_number => '2787777',
69
+ :account_number => '2787777',
71
70
  :bank_number => '37040044',
72
- :owner_name =>'Peter & May GmbH',
71
+ :client_name =>'Peter & May GmbH',
73
72
  :bank_name => 'Commerzbank Köln',
74
73
  :zweck => 'Monatsbeitrag',
75
- :owner_number => ""
74
+ :client_number => ""
76
75
  }
77
76
  TestKonto.new(opts)
78
77
  end
79
78
 
80
79
  def test_kto3
81
80
  opts = {
82
- :bank_account_number => '2787777',
81
+ :account_number => '2787777',
83
82
  :bank_number => '37040044',
84
- :owner_name =>'Andrew Müller',
83
+ :client_name =>'Andrew Müller',
85
84
  :bank_name => 'Commerzbank Köln',
86
85
  :zweck => 'Monatsbeitrag',
87
- :owner_number => ""
86
+ :client_number => ""
88
87
  }
89
88
  TestKonto.new(opts)
90
89
  end