sepafm 0.1.3 → 0.1.4

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.
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>