sepafm 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/README.md +156 -6
- data/lib/danske_get_bank_certificate_test.rb +2 -2
- data/lib/sepa/custom_exceptions.rb +2 -0
- data/lib/sepa/payload.rb +109 -0
- data/lib/sepa/payment.rb +97 -0
- data/lib/sepa/transaction.rb +178 -0
- data/lib/sepa/version.rb +1 -1
- data/lib/sepa/xml_schemas/pain.001.001.02.xsd +784 -0
- data/lib/sepa_client_testing_mika.rb +1 -1
- data/lib/sepa_client_testing_tiere.rb +183 -6
- data/lib/{sepa.rb → sepafm.rb} +4 -0
- data/test/sepa/payload_test.rb +297 -0
- data/test/sepa/payment_test.rb +198 -0
- data/test/sepa/sepa_test.rb +1 -1
- data/test/sepa/transaction_test.rb +362 -0
- data/test/test_helper.rb +3 -4
- metadata +14 -3
@@ -1,8 +1,185 @@
|
|
1
1
|
# First the sepa gem is loaded by requiring it
|
2
|
-
require '
|
2
|
+
require 'sepafm'
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
@invoice_bundle = []
|
5
|
+
|
6
|
+
invoice_1 = {
|
7
|
+
type: 'CINV',
|
8
|
+
amount: '700',
|
9
|
+
currency: 'EUR',
|
10
|
+
invoice_number: '123456'
|
11
|
+
}
|
12
|
+
|
13
|
+
invoice_2 = {
|
14
|
+
type: 'CINV',
|
15
|
+
amount: '300',
|
16
|
+
currency: 'EUR',
|
17
|
+
reference: '123456789',
|
18
|
+
}
|
19
|
+
|
20
|
+
invoice_3 = {
|
21
|
+
type: 'CREN',
|
22
|
+
amount: '-100',
|
23
|
+
currency: 'EUR',
|
24
|
+
invoice_number: '654321'
|
25
|
+
}
|
26
|
+
|
27
|
+
invoice_4 = {
|
28
|
+
type: 'CREN',
|
29
|
+
amount: '-500',
|
30
|
+
currency: 'EUR',
|
31
|
+
reference: '987654321'
|
32
|
+
}
|
33
|
+
|
34
|
+
@invoice_bundle.push(invoice_1)
|
35
|
+
@invoice_bundle.push(invoice_2)
|
36
|
+
@invoice_bundle.push(invoice_3)
|
37
|
+
@invoice_bundle.push(invoice_4)
|
38
|
+
|
39
|
+
trans_1_params = {
|
40
|
+
instruction_id: SecureRandom.hex,
|
41
|
+
end_to_end_id: SecureRandom.hex,
|
42
|
+
amount: '30.75',
|
43
|
+
currency: 'EUR',
|
44
|
+
bic: 'NDEAFIHH',
|
45
|
+
name: 'Testi Saaja Oy',
|
46
|
+
address: 'Kokeilukatu 66',
|
47
|
+
country: 'FI',
|
48
|
+
postcode: '00200',
|
49
|
+
town: 'Helsinki',
|
50
|
+
iban: 'FI7429501800000014',
|
51
|
+
reference: '00000000000000001245',
|
52
|
+
message: 'Maksu'
|
53
|
+
}
|
54
|
+
|
55
|
+
trans_2_params = {
|
56
|
+
instruction_id: SecureRandom.hex,
|
57
|
+
end_to_end_id: SecureRandom.hex,
|
58
|
+
amount: '1075.20',
|
59
|
+
currency: 'EUR',
|
60
|
+
bic: 'NDEAFIHH',
|
61
|
+
name: 'Testing Company',
|
62
|
+
address: 'Tynnyrikatu 56',
|
63
|
+
country: 'FI',
|
64
|
+
postcode: '00600',
|
65
|
+
town: 'Helsinki',
|
66
|
+
iban: 'FI7429501800000014',
|
67
|
+
reference: '000000000000000034795',
|
68
|
+
message: 'Siirto',
|
69
|
+
invoice_bundle: @invoice_bundle
|
70
|
+
}
|
71
|
+
|
72
|
+
trans_3_params = {
|
73
|
+
instruction_id: SecureRandom.hex,
|
74
|
+
end_to_end_id: SecureRandom.hex,
|
75
|
+
amount: '10000',
|
76
|
+
currency: 'EUR',
|
77
|
+
bic: 'NDEAFIHH',
|
78
|
+
name: 'Best Company Ever',
|
79
|
+
address: 'Banaanikuja 66',
|
80
|
+
country: 'FI',
|
81
|
+
postcode: '00900',
|
82
|
+
town: 'Helsinki',
|
83
|
+
iban: 'FI7429501800000014',
|
84
|
+
reference: '000000000000000013247',
|
85
|
+
message: 'Valuutan siirto toiselle tilille'
|
86
|
+
}
|
87
|
+
|
88
|
+
trans_4_params = {
|
89
|
+
instruction_id: SecureRandom.hex,
|
90
|
+
end_to_end_id: SecureRandom.hex,
|
91
|
+
amount: '12',
|
92
|
+
currency: 'EUR',
|
93
|
+
bic: 'NDEAFIHH',
|
94
|
+
name: 'Testi Saaja Oy',
|
95
|
+
address: 'Kokeilukatu 66',
|
96
|
+
country: 'FI',
|
97
|
+
postcode: '00200',
|
98
|
+
town: 'Helsinki',
|
99
|
+
iban: 'FI7429501800000014',
|
100
|
+
reference: '00000000000000001245',
|
101
|
+
message: 'Palkka heinakuulta',
|
102
|
+
salary: true,
|
103
|
+
social_security_number: '112233-0010'
|
104
|
+
}
|
105
|
+
|
106
|
+
trans_5_params = {
|
107
|
+
instruction_id: SecureRandom.hex,
|
108
|
+
end_to_end_id: SecureRandom.hex,
|
109
|
+
amount: '99.20',
|
110
|
+
currency: 'EUR',
|
111
|
+
bic: 'NDEAFIHH',
|
112
|
+
name: 'Testing Company',
|
113
|
+
address: 'Tynnyrikatu 56',
|
114
|
+
country: 'FI',
|
115
|
+
postcode: '00600',
|
116
|
+
town: 'Helsinki',
|
117
|
+
iban: 'FI7429501800000014',
|
118
|
+
reference: '000000000000000034795',
|
119
|
+
message: 'Elake',
|
120
|
+
pension: true
|
121
|
+
}
|
122
|
+
|
123
|
+
trans_6_params = {
|
124
|
+
instruction_id: SecureRandom.hex,
|
125
|
+
end_to_end_id: SecureRandom.hex,
|
126
|
+
amount: '15000',
|
127
|
+
currency: 'EUR',
|
128
|
+
bic: 'NDEAFIHH',
|
129
|
+
name: 'Best Company Ever',
|
130
|
+
address: 'Banaanikuja 66',
|
131
|
+
country: 'FI',
|
132
|
+
postcode: '00900',
|
133
|
+
town: 'Helsinki',
|
134
|
+
iban: 'FI7429501800000014',
|
135
|
+
reference: '000000000000000013247',
|
136
|
+
message: 'Palkka ajalta 15.6.2013 - 30.6.2013',
|
137
|
+
salary: true,
|
138
|
+
social_security_number: '112233-0096'
|
139
|
+
}
|
140
|
+
|
141
|
+
debtor = {
|
142
|
+
name: 'Testi Maksaja Oy',
|
143
|
+
address: 'Testing Street 12',
|
144
|
+
country: 'FI',
|
145
|
+
postcode: '00100',
|
146
|
+
town: 'Helsinki',
|
147
|
+
customer_id: '111111111',
|
148
|
+
iban: 'FI4819503000000010',
|
149
|
+
bic: 'NDEAFIHH'
|
150
|
+
}
|
151
|
+
|
152
|
+
payment_1_transactions = []
|
153
|
+
payment_2_transactions = []
|
154
|
+
|
155
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_1_params))
|
156
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_2_params))
|
157
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_3_params))
|
158
|
+
|
159
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_4_params))
|
160
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_5_params))
|
161
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_6_params))
|
162
|
+
|
163
|
+
payment_1_params = {
|
164
|
+
payment_info_id: SecureRandom.hex,
|
165
|
+
execution_date: '2013-08-10',
|
166
|
+
transactions: payment_1_transactions
|
167
|
+
}
|
168
|
+
|
169
|
+
payment_2_params = {
|
170
|
+
payment_info_id: SecureRandom.hex,
|
171
|
+
execution_date: '2013-08-15',
|
172
|
+
salary_or_pension: true,
|
173
|
+
transactions: payment_2_transactions
|
174
|
+
}
|
175
|
+
|
176
|
+
payments = []
|
177
|
+
|
178
|
+
payments.push(Sepa::Payment.new(debtor, payment_1_params))
|
179
|
+
payments.push(Sepa::Payment.new(debtor, payment_2_params))
|
180
|
+
|
181
|
+
payload = Sepa::Payload.new(debtor, payments)
|
182
|
+
payload = payload.to_xml
|
6
183
|
|
7
184
|
# The params hash is populated with the data that is needed for gem to function.
|
8
185
|
params = {
|
@@ -14,7 +191,7 @@ params = {
|
|
14
191
|
private_key_path: "sepa/nordea_testing/keys/nordea.key",
|
15
192
|
|
16
193
|
# Command :download_file_list, :upload_file, :download_file or :get_user_info.
|
17
|
-
command: :
|
194
|
+
command: :upload_file,
|
18
195
|
|
19
196
|
# Unique customer ID.
|
20
197
|
customer_id: '11111111',
|
@@ -40,7 +217,7 @@ params = {
|
|
40
217
|
# - NDCORPAYS = Yrityksen maksut XML (lähtevä)
|
41
218
|
# - NDCAMT53L = Konekielinen XML-tiliote (saapuva)
|
42
219
|
# - NDCAMT54L = Saapuvat XML viitemaksu (saapuva)
|
43
|
-
file_type: '
|
220
|
+
file_type: 'NDCORPAYS',
|
44
221
|
|
45
222
|
# The WSDL file used by nordea. Is identical between banks except for the
|
46
223
|
# address.
|
@@ -74,7 +251,7 @@ puts "\nSome info about response's certificate:\n" \
|
|
74
251
|
"First day to use this certificate: #{response.certificate.not_before}\n" \
|
75
252
|
"Expires: #{response.certificate.not_after}"
|
76
253
|
|
77
|
-
puts "\nSome info about application response's certificate:\n" \
|
254
|
+
puts "\nSome info about application response's certificate:\n" \
|
78
255
|
"Issuer: #{ar.certificate.issuer}\n" \
|
79
256
|
"First day to use this certificate: #{ar.certificate.not_before}\n" \
|
80
257
|
"Expires: #{ar.certificate.not_after}"
|
data/lib/{sepa.rb → sepafm.rb}
RENAMED
@@ -16,6 +16,10 @@ require 'sepa/userfiletype'
|
|
16
16
|
require 'time'
|
17
17
|
require 'sepa/response'
|
18
18
|
require 'sepa/application_response'
|
19
|
+
require 'sepa/payload'
|
19
20
|
require 'sepa/soap_builder'
|
20
21
|
require 'sepa/soap_danske'
|
21
22
|
require 'sepa/soap_nordea'
|
23
|
+
require 'sepa/transaction'
|
24
|
+
require 'sepa/payment'
|
25
|
+
require 'sepa/custom_exceptions'
|
@@ -0,0 +1,297 @@
|
|
1
|
+
require File.expand_path('../../test_helper.rb', __FILE__)
|
2
|
+
|
3
|
+
class TestPayload < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
@schemas_path = File.expand_path('../../../lib/sepa/xml_schemas', __FILE__)
|
6
|
+
|
7
|
+
@invoice_bundle = []
|
8
|
+
|
9
|
+
invoice_1 = {
|
10
|
+
type: 'CINV',
|
11
|
+
amount: '700',
|
12
|
+
currency: 'EUR',
|
13
|
+
invoice_number: '123456'
|
14
|
+
}
|
15
|
+
|
16
|
+
invoice_2 = {
|
17
|
+
type: 'CINV',
|
18
|
+
amount: '300',
|
19
|
+
currency: 'EUR',
|
20
|
+
reference: '123456789',
|
21
|
+
}
|
22
|
+
|
23
|
+
invoice_3 = {
|
24
|
+
type: 'CREN',
|
25
|
+
amount: '-100',
|
26
|
+
currency: 'EUR',
|
27
|
+
invoice_number: '654321'
|
28
|
+
}
|
29
|
+
|
30
|
+
invoice_4 = {
|
31
|
+
type: 'CREN',
|
32
|
+
amount: '-500',
|
33
|
+
currency: 'EUR',
|
34
|
+
reference: '987654321'
|
35
|
+
}
|
36
|
+
|
37
|
+
@invoice_bundle.push(invoice_1)
|
38
|
+
@invoice_bundle.push(invoice_2)
|
39
|
+
@invoice_bundle.push(invoice_3)
|
40
|
+
@invoice_bundle.push(invoice_4)
|
41
|
+
|
42
|
+
trans_1_params = {
|
43
|
+
instruction_id: '70CEF29BEBA8396A1F806005EDA51DEE4CE',
|
44
|
+
end_to_end_id: '629CADFDAD5246AD915BA24A3C8E9FC3313',
|
45
|
+
amount: '30.75',
|
46
|
+
currency: 'EUR',
|
47
|
+
bic: 'NDEAFIHH',
|
48
|
+
name: 'Testi Saaja Oy',
|
49
|
+
address: 'Kokeilukatu 66',
|
50
|
+
country: 'FI',
|
51
|
+
postcode: '00200',
|
52
|
+
town: 'Helsinki',
|
53
|
+
iban: 'FI7429501800000014',
|
54
|
+
reference: '00000000000000001245',
|
55
|
+
message: 'Maksu'
|
56
|
+
}
|
57
|
+
|
58
|
+
trans_2_params = {
|
59
|
+
instruction_id: 'A552D3EBB207B4AC17DF97C7D548A0571B0',
|
60
|
+
end_to_end_id: 'CDE1206C8745D6FBDCD2BBB02DB6CB6D3BE',
|
61
|
+
amount: '1075.20',
|
62
|
+
currency: 'EUR',
|
63
|
+
bic: 'NDEAFIHH',
|
64
|
+
name: 'Testing Company',
|
65
|
+
address: 'Tynnyrikatu 56',
|
66
|
+
country: 'FI',
|
67
|
+
postcode: '00600',
|
68
|
+
town: 'Helsinki',
|
69
|
+
iban: 'FI7429501800000014',
|
70
|
+
reference: '000000000000000034795',
|
71
|
+
message: 'Siirto',
|
72
|
+
invoice_bundle: @invoice_bundle
|
73
|
+
}
|
74
|
+
|
75
|
+
trans_3_params = {
|
76
|
+
instruction_id: '44DB2850ABDFBEF2A32D0EE511BE5AB0B79',
|
77
|
+
end_to_end_id: 'A107CF858A22116D0C8EC1E78B078794B8C',
|
78
|
+
amount: '10000',
|
79
|
+
currency: 'EUR',
|
80
|
+
bic: 'NDEAFIHH',
|
81
|
+
name: 'Best Company Ever',
|
82
|
+
address: 'Banaanikuja 66',
|
83
|
+
country: 'FI',
|
84
|
+
postcode: '00900',
|
85
|
+
town: 'Helsinki',
|
86
|
+
iban: 'FI7429501800000014',
|
87
|
+
reference: '000000000000000013247',
|
88
|
+
message: 'Valuutan siirto toiselle tilille'
|
89
|
+
}
|
90
|
+
|
91
|
+
trans_4_params = {
|
92
|
+
instruction_id: '16A0C311AF72F3F5E8B6704EB3B6086047C',
|
93
|
+
end_to_end_id: 'B10CE2EC71DB76114DDA68C9DAAA77A59DB',
|
94
|
+
amount: '12',
|
95
|
+
currency: 'EUR',
|
96
|
+
bic: 'NDEAFIHH',
|
97
|
+
name: 'Testi Saaja Oy',
|
98
|
+
address: 'Kokeilukatu 66',
|
99
|
+
country: 'FI',
|
100
|
+
postcode: '00200',
|
101
|
+
town: 'Helsinki',
|
102
|
+
iban: 'FI7429501800000014',
|
103
|
+
reference: '00000000000000001245',
|
104
|
+
message: 'Palkka heinakuulta',
|
105
|
+
salary: true,
|
106
|
+
social_security_number: '112233-0000'
|
107
|
+
}
|
108
|
+
|
109
|
+
trans_5_params = {
|
110
|
+
instruction_id: 'E0C01A8D65EA0BAB7CF1D4337FBCC3D33D7',
|
111
|
+
end_to_end_id: 'B10CE2EC71DB76114DDA68C9DAAA77A59DB',
|
112
|
+
amount: '99.20',
|
113
|
+
currency: 'EUR',
|
114
|
+
bic: 'NDEAFIHH',
|
115
|
+
name: 'Testing Company',
|
116
|
+
address: 'Tynnyrikatu 56',
|
117
|
+
country: 'FI',
|
118
|
+
postcode: '00600',
|
119
|
+
town: 'Helsinki',
|
120
|
+
iban: 'FI7429501800000014',
|
121
|
+
reference: '000000000000000034795',
|
122
|
+
message: 'Elake',
|
123
|
+
pension: true
|
124
|
+
}
|
125
|
+
|
126
|
+
trans_6_params = {
|
127
|
+
instruction_id: 'FD19CD1844B20B0E65E66EA307668B1C3F8',
|
128
|
+
end_to_end_id: 'CE9FF7E7CE5961AA1207C828DBFE467182F',
|
129
|
+
amount: '15000',
|
130
|
+
currency: 'EUR',
|
131
|
+
bic: 'NDEAFIHH',
|
132
|
+
name: 'Best Company Ever',
|
133
|
+
address: 'Banaanikuja 66',
|
134
|
+
country: 'FI',
|
135
|
+
postcode: '00900',
|
136
|
+
town: 'Helsinki',
|
137
|
+
iban: 'FI7429501800000014',
|
138
|
+
reference: '000000000000000013247',
|
139
|
+
message: 'Palkka ajalta 15.6.2013 - 30.6.2013',
|
140
|
+
salary: true,
|
141
|
+
social_security_number: '112233-0001'
|
142
|
+
}
|
143
|
+
|
144
|
+
@debtor = {
|
145
|
+
name: 'Testi Maksaja Oy',
|
146
|
+
address: 'Testing Street 12',
|
147
|
+
country: 'FI',
|
148
|
+
postcode: '00100',
|
149
|
+
town: 'Helsinki',
|
150
|
+
customer_id: '0987654321',
|
151
|
+
iban: 'FI4819503000000010',
|
152
|
+
bic: 'NDEAFIHH'
|
153
|
+
}
|
154
|
+
|
155
|
+
payment_1_transactions = []
|
156
|
+
payment_2_transactions = []
|
157
|
+
|
158
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_1_params))
|
159
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_2_params))
|
160
|
+
payment_1_transactions.push(Sepa::Transaction.new(trans_3_params))
|
161
|
+
|
162
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_4_params))
|
163
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_5_params))
|
164
|
+
payment_2_transactions.push(Sepa::Transaction.new(trans_6_params))
|
165
|
+
|
166
|
+
payment_1_params = {
|
167
|
+
payment_info_id: 'F56D46DDA136A981F58C05999479E768C92',
|
168
|
+
execution_date: '2013-08-10',
|
169
|
+
transactions: payment_1_transactions
|
170
|
+
}
|
171
|
+
|
172
|
+
payment_2_params = {
|
173
|
+
payment_info_id: 'B60EECC432C306876FE3E23999DF7F43254',
|
174
|
+
execution_date: '2013-08-15',
|
175
|
+
salary_or_pension: true,
|
176
|
+
transactions: payment_2_transactions
|
177
|
+
}
|
178
|
+
|
179
|
+
@payments = []
|
180
|
+
|
181
|
+
@payments.push(Sepa::Payment.new(@debtor, payment_1_params))
|
182
|
+
@payments.push(Sepa::Payment.new(@debtor, payment_2_params))
|
183
|
+
|
184
|
+
@payload = Sepa::Payload.new(@debtor, @payments)
|
185
|
+
@pay_noko = Nokogiri::XML(@payload.to_xml)
|
186
|
+
|
187
|
+
@xmlns = 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.02'
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_should_initialize_with_proper_params
|
191
|
+
assert Sepa::Payload.new(@debtor, @payments)
|
192
|
+
end
|
193
|
+
|
194
|
+
def test_validates_against_schema
|
195
|
+
xsd = Nokogiri::XML::Schema(
|
196
|
+
File.read("#{@schemas_path}/pain.001.001.02.xsd")
|
197
|
+
)
|
198
|
+
doc = Nokogiri::XML(@payload.to_xml)
|
199
|
+
|
200
|
+
assert xsd.valid?(doc)
|
201
|
+
end
|
202
|
+
|
203
|
+
def test_debtor_name_is_added_correctly_to_group_header
|
204
|
+
assert_equal @debtor[:name],
|
205
|
+
@pay_noko.at("//xmlns:InitgPty/xmlns:Nm", 'xmlns' => @xmlns).content
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_debtors_first_address_line_is_added_correctly_to_group_header
|
209
|
+
assert_equal @debtor[:address],
|
210
|
+
@pay_noko.at(
|
211
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:AdrLine[1]", 'xmlns' => @xmlns
|
212
|
+
).content
|
213
|
+
end
|
214
|
+
|
215
|
+
def test_debtors_second_address_line_is_added_correctly_to_group_header
|
216
|
+
assert_equal "#{@debtor[:country]}-#{@debtor[:postcode]}",
|
217
|
+
@pay_noko.at(
|
218
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:AdrLine[2]", 'xmlns' => @xmlns
|
219
|
+
).content
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_debtors_street_name_is_added_correctly_to_group_header
|
223
|
+
assert_equal @debtor[:address],
|
224
|
+
@pay_noko.at(
|
225
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:StrtNm", 'xmlns' => @xmlns
|
226
|
+
).content
|
227
|
+
end
|
228
|
+
|
229
|
+
def test_debtors_postcode_is_added_correctly_to_group_header
|
230
|
+
assert_equal "#{@debtor[:country]}-#{@debtor[:postcode]}",
|
231
|
+
@pay_noko.at(
|
232
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:PstCd", 'xmlns' => @xmlns
|
233
|
+
).content
|
234
|
+
end
|
235
|
+
|
236
|
+
def test_debtors_town_is_added_correctly_to_group_header
|
237
|
+
assert_equal @debtor[:town],
|
238
|
+
@pay_noko.at(
|
239
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:TwnNm", 'xmlns' => @xmlns
|
240
|
+
).content
|
241
|
+
end
|
242
|
+
|
243
|
+
def test_debtors_country_is_added_correctly_to_group_header
|
244
|
+
assert_equal @debtor[:country],
|
245
|
+
@pay_noko.at(
|
246
|
+
"//xmlns:InitgPty/xmlns:PstlAdr/xmlns:Ctry", 'xmlns' => @xmlns
|
247
|
+
).content
|
248
|
+
end
|
249
|
+
|
250
|
+
def test_nr_of_transactions_is_added_correctly_to_group_header
|
251
|
+
assert_equal '6',
|
252
|
+
@pay_noko.at(
|
253
|
+
"//xmlns:GrpHdr/xmlns:NbOfTxs", 'xmlns' => @xmlns
|
254
|
+
).content
|
255
|
+
end
|
256
|
+
|
257
|
+
def test_should_raise_schema_error_if_doesnt_validate_against_schema
|
258
|
+
@debtor[:name] = 'a'*71
|
259
|
+
payload = Sepa::Payload.new(@debtor, @payments)
|
260
|
+
refute payload.valid?, payload.errors.join("\n")
|
261
|
+
end
|
262
|
+
|
263
|
+
def test_raises_key_error_if_debtor_name_missing
|
264
|
+
@debtor.delete(:name)
|
265
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
266
|
+
end
|
267
|
+
|
268
|
+
def test_raises_key_error_if_debtor_address_missing
|
269
|
+
@debtor.delete(:address)
|
270
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_raises_key_error_if_debtor_country_missing
|
274
|
+
@debtor.delete(:country)
|
275
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
276
|
+
end
|
277
|
+
|
278
|
+
def test_raises_key_error_if_debtor_postcode_missing
|
279
|
+
@debtor.delete(:postcode)
|
280
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
281
|
+
end
|
282
|
+
|
283
|
+
def test_raises_key_error_if_debtor_town_missing
|
284
|
+
@debtor.delete(:town)
|
285
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
286
|
+
end
|
287
|
+
|
288
|
+
def test_raises_key_error_if_debtor_customer_id_missing
|
289
|
+
@debtor.delete(:customer_id)
|
290
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
291
|
+
end
|
292
|
+
|
293
|
+
def test_raises_key_error_if_payments_missing
|
294
|
+
@payments = nil
|
295
|
+
assert_raises(KeyError) { Sepa::Payload.new(@debtor, @payments) }
|
296
|
+
end
|
297
|
+
end
|