sepafm 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sepa/application_request.rb +1 -1
  3. data/lib/sepa/application_response.rb +15 -16
  4. data/lib/sepa/attribute_checks.rb +18 -25
  5. data/lib/sepa/banks/danske/danske_response.rb +65 -8
  6. data/lib/sepa/banks/danske/soap_danske.rb +1 -1
  7. data/lib/sepa/banks/nordea/nordea_response.rb +11 -0
  8. data/lib/sepa/certificates/danske_root_certificate.cer +25 -0
  9. data/lib/sepa/client.rb +35 -29
  10. data/lib/sepa/error_messages.rb +11 -0
  11. data/lib/sepa/response.rb +42 -20
  12. data/lib/sepa/soap_builder.rb +20 -38
  13. data/lib/sepa/utilities.rb +36 -11
  14. data/lib/sepa/version.rb +1 -1
  15. data/lib/sepafm.rb +10 -1
  16. data/readme.md +64 -28
  17. data/test/sepa/banks/danske/danske_cert_response_test.rb +41 -4
  18. data/test/sepa/banks/danske/danske_cert_soap_builder_test.rb +1 -1
  19. data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +6 -17
  20. data/test/sepa/banks/danske/danske_response_test.rb +97 -0
  21. data/test/sepa/banks/danske/keys/bank_encryption_cert.pem +17 -17
  22. data/test/sepa/banks/danske/keys/bank_signing_cert.pem +17 -17
  23. data/test/sepa/banks/danske/responses/create_cert.xml +14 -14
  24. data/test/sepa/banks/danske/responses/download_file_list.xml +42 -0
  25. data/test/sepa/banks/danske/responses/get_bank_cert.xml +14 -36
  26. data/test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml +2 -0
  27. data/test/sepa/banks/nordea/nordea_application_request_test.rb +3 -5
  28. data/test/sepa/banks/nordea/nordea_application_response_test.rb +25 -30
  29. data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +2 -2
  30. data/test/sepa/banks/nordea/nordea_response_test.rb +83 -17
  31. data/test/sepa/banks/nordea/responses/df_ktl.xml +20 -44
  32. data/test/sepa/banks/nordea/responses/dfl.xml +7 -6
  33. data/test/sepa/banks/nordea/responses/download_file_list_no_content.xml +21 -0
  34. data/test/sepa/banks/nordea/responses/gc.xml +21 -49
  35. data/test/sepa/banks/nordea/responses/invalid/body_altered.xml +21 -0
  36. data/test/sepa/banks/nordea/responses/invalid/timestamp_altered.xml +21 -0
  37. data/test/sepa/banks/nordea/responses/not_ok_response_code.xml +21 -0
  38. data/test/sepa/banks/nordea/responses/uf.xml +7 -6
  39. data/test/sepa/client_test.rb +134 -35
  40. data/test/sepa/fixtures.rb +8 -8
  41. data/test/sepa/sepa_test.rb +1 -1
  42. data/test/test_helper.rb +5 -1
  43. metadata +18 -6
  44. data/test/sepa/banks/nordea/responses/gbc.xml +0 -15
  45. /data/{test/sepa/banks/nordea/keys/root_cert.cer → lib/sepa/certificates/nordea_root_certificate.cer} +0 -0
@@ -60,7 +60,7 @@ class ClientTest < ActiveSupport::TestCase
60
60
  wrong_certs = ['Im not a cert', 99, :leppakerttu, nil]
61
61
 
62
62
  wrong_certs.each do |wrong_cert|
63
- @nordea_generic_params[:signing_certificate] = wrong_cert
63
+ @nordea_generic_params[:own_signing_certificate] = wrong_cert
64
64
  sepa = Sepa::Client.new @nordea_generic_params
65
65
  refute sepa.valid?, sepa.errors.messages
66
66
  end
@@ -89,10 +89,14 @@ class ClientTest < ActiveSupport::TestCase
89
89
  end
90
90
 
91
91
  test 'environment defaults to production' do
92
- @nordea_generic_params.delete :environment
93
- sepa = Sepa::Client.new @nordea_generic_params
94
- assert sepa.environment == :production
95
- assert sepa.valid?
92
+ empty_environments = [nil, false, true]
93
+
94
+ empty_environments.each do |empty_environment|
95
+ @nordea_generic_params[:environment] = empty_environment
96
+ sepa = Sepa::Client.new @nordea_generic_params
97
+ assert sepa.environment == :production
98
+ assert sepa.valid?
99
+ end
96
100
  end
97
101
 
98
102
  test "status values are checked" do
@@ -106,8 +110,8 @@ class ClientTest < ActiveSupport::TestCase
106
110
  end
107
111
  end
108
112
 
109
- test "should not be valid without target id" do
110
- wrong_ids = ["ready"*81, nil]
113
+ test 'target id is checked' do
114
+ wrong_ids = ["ready"*81, nil, false]
111
115
  @nordea_generic_params[:command] = :upload_file
112
116
 
113
117
  wrong_ids.each do |wrong_id|
@@ -129,7 +133,7 @@ class ClientTest < ActiveSupport::TestCase
129
133
  end
130
134
 
131
135
  test "file type is checked" do
132
- wrong_types = ["kalle"*36, nil]
136
+ wrong_types = ["kalle"*36, nil, false]
133
137
 
134
138
  wrong_types.each do |wrong_type|
135
139
  [:upload_file, :download_file_list].each do |command|
@@ -142,24 +146,32 @@ class ClientTest < ActiveSupport::TestCase
142
146
  end
143
147
  end
144
148
 
145
- test "content is required for upload file" do
146
- @nordea_generic_params[:command] = :upload_file
147
- @nordea_generic_params.delete(:content)
148
- sepa = Sepa::Client.new @nordea_generic_params
149
- refute sepa.valid?, sepa.errors.messages
150
- assert_includes sepa.errors.messages.to_s, CONTENT_ERROR_MESSAGE
149
+ test 'content is checked when command is upload file' do
150
+ invalid_contents = [nil, false, true]
151
+
152
+ invalid_contents.each do |invalid_content|
153
+ @nordea_generic_params[:command] = :upload_file
154
+ @nordea_generic_params[:content] = invalid_content
155
+ sepa = Sepa::Client.new @nordea_generic_params
156
+ refute sepa.valid?, sepa.errors.messages
157
+ assert_includes sepa.errors.messages.to_s, CONTENT_ERROR_MESSAGE
158
+ end
151
159
  end
152
160
 
153
161
  test 'file reference is required for download file' do
154
- @nordea_generic_params.delete :file_reference
155
- sepa = Sepa::Client.new @nordea_generic_params
156
- refute sepa.valid?, sepa.errors.messages
157
- assert_includes sepa.errors.messages.to_s, FILE_REFERENCE_ERROR_MESSAGE
162
+ invalid_file_references = [nil, false, true]
163
+
164
+ invalid_file_references.each do |invalid_file_reference|
165
+ @nordea_generic_params[:file_reference] = invalid_file_reference
166
+ sepa = Sepa::Client.new @nordea_generic_params
167
+ refute sepa.valid?, sepa.errors.messages
168
+ assert_includes sepa.errors.messages.to_s, FILE_REFERENCE_ERROR_MESSAGE
169
+ end
158
170
  end
159
171
 
160
172
  # # The response from savon will be the request to check that a proper request
161
173
  # # was made in the following four tests
162
- test "should_send_proper_request_with_get_user_info" do
174
+ test "should_send_proper_request_with_nordea_get_user_info" do
163
175
  @nordea_generic_params[:command] = :get_user_info
164
176
  client = Sepa::Client.new(@nordea_generic_params)
165
177
  response = client.send_request
@@ -172,7 +184,7 @@ class ClientTest < ActiveSupport::TestCase
172
184
  end
173
185
  end
174
186
 
175
- test "should_send_proper_request_with_download_file_list" do
187
+ test "should_send_proper_request_with_nordea_download_file_list" do
176
188
  @nordea_generic_params[:command] = :download_file_list
177
189
  client = Sepa::Client.new(@nordea_generic_params)
178
190
  response = client.send_request
@@ -185,7 +197,7 @@ class ClientTest < ActiveSupport::TestCase
185
197
  end
186
198
  end
187
199
 
188
- test "should_send_proper_request_with_download_file" do
200
+ test "should_send_proper_request_with_nordea_download_file" do
189
201
  @nordea_generic_params[:command] = :download_file
190
202
  client = Sepa::Client.new(@nordea_generic_params)
191
203
  response = client.send_request
@@ -198,7 +210,7 @@ class ClientTest < ActiveSupport::TestCase
198
210
  end
199
211
  end
200
212
 
201
- test "should_send_proper_request_with_upload_file" do
213
+ test "should_send_proper_request_with_nordea_upload_file" do
202
214
  @nordea_generic_params[:command] = :upload_file
203
215
  client = Sepa::Client.new(@nordea_generic_params)
204
216
  response = client.send_request
@@ -211,11 +223,7 @@ class ClientTest < ActiveSupport::TestCase
211
223
  end
212
224
  end
213
225
 
214
- test "should_initialize_with_proper_cert_params" do
215
- assert Sepa::Client.new(@nordea_get_certificate_params)
216
- end
217
-
218
- test "should_send_proper_request_with_get_certificate" do
226
+ test 'should send proper request with nordea get certificate' do
219
227
  client = Sepa::Client.new(@nordea_get_certificate_params)
220
228
  response = client.send_request
221
229
 
@@ -227,6 +235,49 @@ class ClientTest < ActiveSupport::TestCase
227
235
  end
228
236
  end
229
237
 
238
+ test 'should send proper request with danske download file list' do
239
+ @danske_generic_params[:command] = :download_file_list
240
+ client = Sepa::Client.new(@danske_generic_params)
241
+ response = client.send_request
242
+
243
+ Dir.chdir(SCHEMA_PATH) do
244
+ xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
245
+ assert xsd.valid?(response.doc)
246
+ end
247
+ end
248
+
249
+ test 'should send proper request with danske download file' do
250
+ @danske_generic_params[:command] = :download_file
251
+ client = Sepa::Client.new(@danske_generic_params)
252
+ response = client.send_request
253
+
254
+ Dir.chdir(SCHEMA_PATH) do
255
+ xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
256
+ assert xsd.valid?(response.doc)
257
+ end
258
+ end
259
+
260
+ test 'should send proper request with danske upload file' do
261
+ client = Sepa::Client.new(@danske_generic_params)
262
+ response = client.send_request
263
+
264
+ Dir.chdir(SCHEMA_PATH) do
265
+ xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
266
+ assert xsd.valid?(response.doc)
267
+ end
268
+ end
269
+
270
+ test 'should send proper request with danske create certificate' do
271
+ client = Sepa::Client.new(@danske_create_certificate_params)
272
+ response = client.send_request
273
+
274
+ Dir.chdir(SCHEMA_PATH) do
275
+ xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
276
+ assert xsd.valid?(response.doc)
277
+ end
278
+ end
279
+
280
+
230
281
  test "should_check_signing_cert_request_with_create_certificate" do
231
282
  @danske_create_certificate_params[:command] = :create_certificate
232
283
  @danske_create_certificate_params.delete(:signing_csr)
@@ -246,17 +297,33 @@ class ClientTest < ActiveSupport::TestCase
246
297
  end
247
298
 
248
299
  test "should_check_pin_with_create_certificate" do
249
- @danske_create_certificate_params[:command] = :create_certificate
250
- @danske_create_certificate_params.delete(:pin)
300
+ invalid_pins = [nil, false, true]
251
301
 
252
- sepa = Sepa::Client.new(@danske_create_certificate_params)
253
- refute sepa.valid?
254
- assert_includes sepa.errors.messages.to_s, PIN_ERROR_MESSAGE
302
+ invalid_pins.each do |invalid_pin|
303
+ @danske_create_certificate_params[:command] = :create_certificate
304
+ @danske_create_certificate_params[:pin] = invalid_pin
305
+
306
+ sepa = Sepa::Client.new(@danske_create_certificate_params)
307
+ refute sepa.valid?
308
+ assert_includes sepa.errors.messages.to_s, PIN_ERROR_MESSAGE
309
+ end
310
+ end
311
+
312
+ test 'should check pin with get certificate' do
313
+ invalid_pins = [nil, false, true]
314
+
315
+ invalid_pins.each do |invalid_pin|
316
+ @nordea_get_certificate_params[:pin] = invalid_pin
317
+
318
+ sepa = Sepa::Client.new(@nordea_get_certificate_params)
319
+ refute sepa.valid?
320
+ assert_includes sepa.errors.messages.to_s, PIN_ERROR_MESSAGE
321
+ end
255
322
  end
256
323
 
257
324
  test "should_check_encryption_cert_with_create_certificate" do
258
325
  @danske_create_certificate_params[:command] = :create_certificate
259
- @danske_create_certificate_params.delete(:encryption_certificate)
326
+ @danske_create_certificate_params.delete(:bank_encryption_certificate)
260
327
 
261
328
  sepa = Sepa::Client.new(@danske_create_certificate_params)
262
329
  refute sepa.valid?
@@ -292,10 +359,42 @@ class ClientTest < ActiveSupport::TestCase
292
359
  refute client.valid?
293
360
  end
294
361
 
295
- test 'encryption certificate is checked when bank is danske' do
296
- @danske_generic_params.delete :encryption_certificate
362
+ test 'bank encryption certificate is checked when bank is danske' do
363
+ @danske_generic_params.delete :bank_encryption_certificate
364
+ client = Sepa::Client.new @danske_generic_params
365
+ refute client.valid?
366
+ end
367
+
368
+ test 'presence of encryption private key is checked when bank is danske' do
369
+ @danske_generic_params.delete :encryption_private_key
297
370
  client = Sepa::Client.new @danske_generic_params
298
371
  refute client.valid?
299
372
  end
300
373
 
374
+ test 'validity of encryption private key is checked when bank is danske' do
375
+ wrong_keys = [encode('kissa' * 1000), false]
376
+
377
+ wrong_keys.each do |wrong_key|
378
+ @danske_generic_params[:encryption_private_key] = wrong_key
379
+ client = Sepa::Client.new @danske_generic_params
380
+ refute client.valid?
381
+ refute_empty client.errors.messages
382
+ end
383
+ end
384
+
385
+ test 'validity of encryption certificate is checked when bank is danske' do
386
+ @danske_generic_params[:bank_encryption_certificate] = encode('kissa' * 1000)
387
+ client = Sepa::Client.new @danske_generic_params
388
+ refute client.valid?
389
+ refute_empty client.errors.messages
390
+ end
391
+
392
+ test 'signing csr is checked with nordea when command is get certificate' do
393
+ @nordea_get_certificate_params[:signing_csr] = encode('kissa' * 1000)
394
+ client = Sepa::Client.new @nordea_get_certificate_params
395
+
396
+ refute client.valid?
397
+ refute_empty client.errors.messages
398
+ end
399
+
301
400
  end
@@ -8,10 +8,10 @@ def danske_generic_params
8
8
  encryption_private_key = File.read encryption_private_key_path
9
9
 
10
10
  signing_certificate_path = "#{keys_path}/own_signing_cert.pem"
11
- signing_certificate = File.read signing_certificate_path
11
+ own_signing_certificate = File.read signing_certificate_path
12
12
 
13
13
  encryption_certificate_path = "#{keys_path}/own_enc_cert.pem"
14
- encryption_certificate = File.read encryption_certificate_path
14
+ bank_encryption_certificate = File.read encryption_certificate_path
15
15
 
16
16
  {
17
17
  bank: :danske,
@@ -20,8 +20,8 @@ def danske_generic_params
20
20
  command: :upload_file,
21
21
  customer_id: '360817',
22
22
  environment: 'test',
23
- encryption_certificate: encryption_certificate,
24
- signing_certificate: signing_certificate,
23
+ bank_encryption_certificate: bank_encryption_certificate,
24
+ own_signing_certificate: own_signing_certificate,
25
25
  language: 'FI',
26
26
  status: 'ALL',
27
27
  target_id: 'DABAFIHH',
@@ -32,7 +32,7 @@ def danske_generic_params
32
32
  end
33
33
 
34
34
  def nordea_generic_params
35
- signing_certificate = "-----BEGIN CERTIFICATE-----
35
+ own_signing_certificate = "-----BEGIN CERTIFICATE-----
36
36
  MIIDwTCCAqmgAwIBAgIEAX1JuTANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
37
37
  RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMR8wHQYDVQQDExZOb3Jk
38
38
  ZWEgQ29ycG9yYXRlIENBIDAxMRQwEgYDVQQFEws1MTY0MDYtMDEyMDAeFw0xMzA1
@@ -75,7 +75,7 @@ Sn4Uz7Zjk3UrBIbMYEv0u2mcCypwsb0nGE5/gzDPjGE9cxWW+rXARIs+sNQVClnh
75
75
  {
76
76
  bank: :nordea,
77
77
  signing_private_key: signing_private_key,
78
- signing_certificate: signing_certificate,
78
+ own_signing_certificate: own_signing_certificate,
79
79
  command: :download_file,
80
80
  customer_id: '11111111',
81
81
  environment: 'production',
@@ -229,11 +229,11 @@ bx1hmt5Eihy1lORQR4PE4xaOP5TCqtxP0+snuGqRuBHhrDk4mowWEJbvFWlONT5H
229
229
  CsajqZag/Aoxv/Y=
230
230
  -----END CERTIFICATE REQUEST-----"
231
231
 
232
- encryption_certificate = File.read "#{DANSKE_TEST_KEYS_PATH}own_enc_cert.pem"
232
+ bank_encryption_certificate = File.read "#{DANSKE_TEST_KEYS_PATH}own_enc_cert.pem"
233
233
 
234
234
  {
235
235
  bank: :danske,
236
- encryption_certificate: encryption_certificate,
236
+ bank_encryption_certificate: bank_encryption_certificate,
237
237
  command: :create_certificate,
238
238
  customer_id: '360817',
239
239
  environment: 'test',
@@ -4,7 +4,7 @@ class TestSepa < ActiveSupport::TestCase
4
4
 
5
5
  def test_version_must_be_defined
6
6
  refute_nil Sepa::VERSION
7
- assert_equal "0.1.3", Sepa::VERSION
7
+ assert_equal "0.1.4", Sepa::VERSION
8
8
  end
9
9
 
10
10
  end
data/test/test_helper.rb CHANGED
@@ -26,13 +26,17 @@ include Sepa::Utilities
26
26
  NORDEA_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/responses"
27
27
  DANSKE_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/responses/"
28
28
 
29
- # Test keys
29
+ # Danske Test keys
30
30
  DANSKE_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/keys/"
31
31
  DANSKE_BANK_SIGNING_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_signing_cert.pem"
32
32
  DANSKE_BANK_ENCRYPTION_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_encryption_cert.pem"
33
33
  DANSKE_BANK_ROOT_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_root_cert.pem"
34
34
  DANSKE_OWN_ENCRYPTION_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}own_enc_cert.pem"
35
35
 
36
+ # Nordea test keys
37
+ NORDEA_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/keys/"
38
+ NORDEA_SIGNING_CERTIFICATE = File.read "#{NORDEA_TEST_KEYS_PATH}nordea.crt"
39
+
36
40
  I18n.enforce_available_locales = true
37
41
 
38
42
  # Create an observer to fake sending requests to bank
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sepafm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joni Kanerva
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-07-31 00:00:00.000000000 Z
13
+ date: 2014-08-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
@@ -158,6 +158,8 @@ files:
158
158
  - lib/sepa/banks/danske/soap_danske.rb
159
159
  - lib/sepa/banks/nordea/nordea_response.rb
160
160
  - lib/sepa/banks/nordea/soap_nordea.rb
161
+ - lib/sepa/certificates/danske_root_certificate.cer
162
+ - lib/sepa/certificates/nordea_root_certificate.cer
161
163
  - lib/sepa/client.rb
162
164
  - lib/sepa/error_messages.rb
163
165
  - lib/sepa/response.rb
@@ -205,6 +207,7 @@ files:
205
207
  - test/sepa/banks/danske/danske_certificate_application_request_test.rb
206
208
  - test/sepa/banks/danske/danske_generic_soap_builder_test.rb
207
209
  - test/sepa/banks/danske/danske_get_bank_cert_test.rb
210
+ - test/sepa/banks/danske/danske_response_test.rb
208
211
  - test/sepa/banks/danske/keys/bank_encryption_cert.pem
209
212
  - test/sepa/banks/danske/keys/bank_root_cert.pem
210
213
  - test/sepa/banks/danske/keys/bank_signing_cert.pem
@@ -217,10 +220,11 @@ files:
217
220
  - test/sepa/banks/danske/keys/signing_pkcs.csr
218
221
  - test/sepa/banks/danske/keys/signing_private_key.pem
219
222
  - test/sepa/banks/danske/responses/create_cert.xml
223
+ - test/sepa/banks/danske/responses/download_file_list.xml
220
224
  - test/sepa/banks/danske/responses/get_bank_cert.xml
225
+ - test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml
221
226
  - test/sepa/banks/nordea/keys/nordea.crt
222
227
  - test/sepa/banks/nordea/keys/nordea.key
223
- - test/sepa/banks/nordea/keys/root_cert.cer
224
228
  - test/sepa/banks/nordea/keys/testcert.csr
225
229
  - test/sepa/banks/nordea/nordea_application_request_test.rb
226
230
  - test/sepa/banks/nordea/nordea_application_response_test.rb
@@ -231,9 +235,12 @@ files:
231
235
  - test/sepa/banks/nordea/responses/df_ktl.xml
232
236
  - test/sepa/banks/nordea/responses/df_tito.xml
233
237
  - test/sepa/banks/nordea/responses/dfl.xml
234
- - test/sepa/banks/nordea/responses/gbc.xml
238
+ - test/sepa/banks/nordea/responses/download_file_list_no_content.xml
235
239
  - test/sepa/banks/nordea/responses/gc.xml
236
240
  - test/sepa/banks/nordea/responses/gui.xml
241
+ - test/sepa/banks/nordea/responses/invalid/body_altered.xml
242
+ - test/sepa/banks/nordea/responses/invalid/timestamp_altered.xml
243
+ - test/sepa/banks/nordea/responses/not_ok_response_code.xml
237
244
  - test/sepa/banks/nordea/responses/uf.xml
238
245
  - test/sepa/client_test.rb
239
246
  - test/sepa/fixtures.rb
@@ -270,6 +277,7 @@ test_files:
270
277
  - test/sepa/banks/danske/danske_certificate_application_request_test.rb
271
278
  - test/sepa/banks/danske/danske_generic_soap_builder_test.rb
272
279
  - test/sepa/banks/danske/danske_get_bank_cert_test.rb
280
+ - test/sepa/banks/danske/danske_response_test.rb
273
281
  - test/sepa/banks/danske/keys/bank_encryption_cert.pem
274
282
  - test/sepa/banks/danske/keys/bank_root_cert.pem
275
283
  - test/sepa/banks/danske/keys/bank_signing_cert.pem
@@ -282,10 +290,11 @@ test_files:
282
290
  - test/sepa/banks/danske/keys/signing_pkcs.csr
283
291
  - test/sepa/banks/danske/keys/signing_private_key.pem
284
292
  - test/sepa/banks/danske/responses/create_cert.xml
293
+ - test/sepa/banks/danske/responses/download_file_list.xml
285
294
  - test/sepa/banks/danske/responses/get_bank_cert.xml
295
+ - test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml
286
296
  - test/sepa/banks/nordea/keys/nordea.crt
287
297
  - test/sepa/banks/nordea/keys/nordea.key
288
- - test/sepa/banks/nordea/keys/root_cert.cer
289
298
  - test/sepa/banks/nordea/keys/testcert.csr
290
299
  - test/sepa/banks/nordea/nordea_application_request_test.rb
291
300
  - test/sepa/banks/nordea/nordea_application_response_test.rb
@@ -296,9 +305,12 @@ test_files:
296
305
  - test/sepa/banks/nordea/responses/df_ktl.xml
297
306
  - test/sepa/banks/nordea/responses/df_tito.xml
298
307
  - test/sepa/banks/nordea/responses/dfl.xml
299
- - test/sepa/banks/nordea/responses/gbc.xml
308
+ - test/sepa/banks/nordea/responses/download_file_list_no_content.xml
300
309
  - test/sepa/banks/nordea/responses/gc.xml
301
310
  - test/sepa/banks/nordea/responses/gui.xml
311
+ - test/sepa/banks/nordea/responses/invalid/body_altered.xml
312
+ - test/sepa/banks/nordea/responses/invalid/timestamp_altered.xml
313
+ - test/sepa/banks/nordea/responses/not_ok_response_code.xml
302
314
  - test/sepa/banks/nordea/responses/uf.xml
303
315
  - test/sepa/client_test.rb
304
316
  - test/sepa/fixtures.rb
@@ -1,15 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:elem="http://danskebank.dk/PKI/PKIFactoryService/elements" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><GetBankCertificateOut xmlns="http://danskebank.dk/PKI/PKIFactoryService"><pkif:ResponseHeader xmlns=""><pkif:SenderId>360817</pkif:SenderId><pkif:CustomerId>360817</pkif:CustomerId><pkif:RequestId>203902</pkif:RequestId><pkif:Timestamp>2013-07-25T07:26:27Z</pkif:Timestamp><pkif:InterfaceVersion>1</pkif:InterfaceVersion></pkif:ResponseHeader><pkie:GetBankCertificateResponse xml:id="response" xmlns="" xmlns:pkie="http://danskebank.dk/PKI/PKIFactoryService/elements"><pkie:ReturnCode>00</pkie:ReturnCode><pkie:ReturnText>OK</pkie:ReturnText><pkie:BankEncryptionCert>MIIEATCCAumgAwIBAgIFAQjv8bMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENSWVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMHRGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURhbnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDMwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC/kHrOvHOueBsit9drxIHpaD7mXINypXS/l9PbbOZ0lZKVEfW9gtG8xk9XggsPXHJMF/PXpG6mveXvPu9WW/XpryAUqGfvYsC7Px3ixaJb2EMOL+2mJYd0v5HKg5RuYkQ82k3K01hMNEGYs0OotjNVAimQcTLtVPDGBjK5BUAiwady9LpI6afo7roJWnRmsvSvinDgBqswnfCvUfSfM8cZyhnLLC2uj1kBHAD/5xpllmS3aq1M8LqFkBYcCE5PdPmFWhGUumZ/Y5qLjDgcPMAPvUaKLqOsh22jvPCZ0pm17eV0bSQzWe5e0zkgCYAepuFRazSlkJQYBdS47Mp68dY5AgEDo1IwUDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUP6wHVNOmznu212c08M3oeYjeXW4wDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUAA4IBAQAvJBfPug+ixGL/zWUnKMweV80atZXMjHJEn4mOE+iUkCNONLImMMt6MXJysnJViL1gL5xMrka6A62PLLsVkl79kxDDbzXMPfGt5/mB9L7CMpyzaID0acDii3rsZwT3Wxpnate6wowN4zpmXgpCpTDGbxjuVRiOArsjQblerhfxnD/UAieZ1IWozIANs6SVms/TuOB+bODUr06ITxBkDJhizOJxjsXRIAtwZvvrH4qGjJz5qFcPb3nz4TxwswU8X6yvbtqF+q4aAKPA6ZydnGZFQSoSzNJtcF28T1ItxEHN3+xyQqXpTgFviiuL277LaAl9YUFFnSgeh7GiFitWJPfD</pkie:BankEncryptionCert><pkie:BankSigningCert>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</pkie:BankSigningCert><pkie:BankRootCert>MIIEPzCCAyegAwIBAgIEQjoxcjANBgkqhkiG9w0BAQsFADCBmDEQMA4GA1UEAxMHREJHUk9PVDELMAkGA1UEBhMCREsxEzARBgNVBAcTCkNvcGVuaGFnZW4xEDAOBgNVBAgTB0Rlbm1hcmsxGjAYBgNVBAoTEURhbnNrZSBCYW5rIEdyb3VwMRowGAYDVQQLExFEYW5za2UgQmFuayBHcm91cDEYMBYGA1UEBRMPNjExMjYyMjgxMTEwMDAyMB4XDTEwMTAyNzAwMDAwMFoXDTIwMTAyNzAwMDAwMFowgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKWRtTRCXNEn5Hj+tA0vVg8VKUi/HnFgioZW/eyaF4gWvR4PNXXJJOS31VNHnb2SQHPLt3ac+5icH7vLu/OtS5rvnDiDFMg+TomVDrur6RtlsZNLnihZiaSaooI49+ERTz6vcCjST7xbfhmC03LUhE8eBKI1U70cx/lQ55UQKZvIAIbCVaZEks95VS4uJpwnU4M8glNIVGSvJhIUj/LIkSIcqBiryq/t9FRVtRl1gVhwKdi8A5O9hp4t3dBIdOanaup2UEL4lp7izzgt2rkMeuyQ1ZjHsN7LmDsfjoFcYx/8CID9LBwRCN2p+YCuoWUjuorrdU/2eit2lNh6ypiF6WECAQOjgZAwgY0wHQYDVR0OBBYEFIT65b/ekUlm38WKUsOzt7MgHMdtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9vbmxpbmUuZGFuc2tlYmFuay5jb20vcGtpL0RCR1JPT1RfMTExMTExMDAwMi5jcmwwDQYJKoZIhvcNAQELBQADggEBAFjnBPCos7jMMLc3FqyQUMt/HJGKgJDrhYiPZBo9njGkH52Urryqw1sbT3wXA1NuzbjHE3xTUD+5jNPCncYqML9xqQjSQkBcb9eJfHZ+asiclsO38cSn2qriJPIrCREPOpRVqrGQRbZQhmDiB198hpAdLp38khJon/gXbR7u9e0rN8MIM4sXn+lFuQIWiPuv+3llGSoLlIxJnjiQQ9FDjhwN5U+N1N2aHaLc5AHu4X/qRutLCy7AYUJZMPBoakPLscYceW2Ztvx4VAyOXgHDdvmz0Bd58XWOs1A9bNMZFeYAB14D9yQRCkXYLhr6sm8HuyqaIkGChFpNb+Gf8gcPvtw=</pkie:BankRootCert><pkie:RequestId>203902</pkie:RequestId><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
3
- <SignedInfo>
4
- <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6
- <Reference URI="#response">
7
- <Transforms>
8
- <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
9
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
10
- </Transforms>
11
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
12
- <DigestValue>Y/T9RlEiXgEwlg92vm3pXZM6O3g=</DigestValue>
13
- </Reference>
14
- </SignedInfo>
15
- <SignatureValue>K/xPkz8D7qwP+Jd60vAEJ1Brg4zjTGs7SbKSnccDVWRha530p7nPLF3bQpTn9uA99wpFltzmUvGQ3TL1iHehbzCwiHG0VyA9r4k51j8i13HnrOL0ywBDeTc/nbeQSREmdaIGuaE3eehCpibhaTbYWJBA9EPbpQ9gpIBeOtcLxemC6YTW3b/p4wlVCQ3wIZgXtbUQhw/aKc9EeetYTgDqtW2RZOpFX8jkooXB9ljHMBZm+Lmu8Er6feuKOK9k6slSUFv51ymOZ9Y6ZnOI+sf0A+a9xpX9DKHKyMDpWAtofiJhfWE7IUJXkMAkdIRcoFy+sRzwv1sKJppmDoT8Q8rqGA==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</X509Certificate><X509IssuerSerial><X509IssuerName>serialNumber=611262281110002, OU=Danske Bank Group, O=Danske Bank Group, ST=Denmark, L=Copenhagen, C=DK, CN=DBGROOT</X509IssuerName><X509SerialNumber>3333910003</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature></pkie:GetBankCertificateResponse></GetBankCertificateOut></soapenv:Body></soapenv:Envelope>