sepafm 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/lib/sepa/application_request.rb +17 -8
  4. data/lib/sepa/attribute_checks.rb +23 -26
  5. data/lib/sepa/banks/danske/danske_response.rb +29 -41
  6. data/lib/sepa/banks/danske/soap_danske.rb +30 -23
  7. data/lib/sepa/client.rb +8 -11
  8. data/lib/sepa/response.rb +13 -23
  9. data/lib/sepa/utilities.rb +2 -6
  10. data/lib/sepa/version.rb +1 -1
  11. data/lib/sepa/xml_schemas/danske_pki.xsd +1 -1
  12. data/lib/sepa/xml_templates/application_request/danske/renew_certificate.xml +33 -0
  13. data/lib/sepa/xml_templates/soap/danske/renew_certificate.xml +17 -0
  14. data/readme.md +3 -3
  15. data/sepafm.gemspec +4 -4
  16. data/test/custom_assertions.rb +21 -0
  17. data/test/sepa/banks/danske/danske_cert_soap_builder_test.rb +1 -5
  18. data/test/sepa/banks/danske/danske_certificate_application_request_test.rb +6 -8
  19. data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +7 -23
  20. data/test/sepa/banks/danske/danske_get_bank_cert_test.rb +3 -13
  21. data/test/sepa/banks/danske/danske_renew_cert_application_request_test.rb +32 -0
  22. data/test/sepa/banks/danske/danske_renew_cert_request_soap_builder_test.rb +41 -0
  23. data/test/sepa/banks/nordea/nordea_application_request_test.rb +4 -16
  24. data/test/sepa/banks/nordea/nordea_cert_application_request_test.rb +1 -5
  25. data/test/sepa/banks/nordea/nordea_cert_request_soap_builder_test.rb +1 -4
  26. data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +7 -23
  27. data/test/sepa/banks/nordea/nordea_renew_cert_application_request_test.rb +1 -10
  28. data/test/sepa/banks/nordea/nordea_renew_cert_request_soap_builder_test.rb +1 -10
  29. data/test/sepa/banks/op/op_application_request_test.rb +3 -30
  30. data/test/sepa/banks/op/op_cert_application_request_test.rb +1 -10
  31. data/test/sepa/banks/op/op_cert_request_soap_builder_test.rb +1 -10
  32. data/test/sepa/banks/op/op_generic_soap_builder_test.rb +2 -20
  33. data/test/sepa/client_test.rb +42 -66
  34. data/test/sepa/fixtures.rb +72 -23
  35. data/test/sepa/sepa_test.rb +1 -1
  36. data/test_client/test_client.rb +23 -18
  37. metadata +16 -19
  38. data/.travis.yml +0 -16
  39. data/test/sepa/banks/danske/keys/danske_encryption.crt +0 -24
  40. data/test/sepa/banks/danske/keys/encryption_pkcs.csr +0 -0
  41. data/test/sepa/banks/danske/keys/signing_pkcs.csr +0 -0
  42. data/test/sepa/banks/danske/keys/signing_private_key.pem +0 -27
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService">
4
+ <env:Header/>
5
+ <env:Body>
6
+ <pkif:RenewCertificateIn>
7
+ <pkif:RequestHeader>
8
+ <pkif:SenderId/>
9
+ <pkif:CustomerId/>
10
+ <pkif:RequestId/>
11
+ <pkif:Timestamp/>
12
+ <pkif:InterfaceVersion>1</pkif:InterfaceVersion>
13
+ <pkif:Environment/>
14
+ </pkif:RequestHeader>
15
+ </pkif:RenewCertificateIn>
16
+ </env:Body>
17
+ </env:Envelope>
data/readme.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Devlab / SEPA
2
2
 
3
- [![Code Climate](https://codeclimate.com/github/devlab-oy/sepa/badges/gpa.svg)](https://codeclimate.com/github/devlab-oy/sepa)
4
- [![Test Coverage](https://codeclimate.com/github/devlab-oy/sepa/badges/coverage.svg)](https://codeclimate.com/github/devlab-oy/sepa)
5
- [![Build Status](https://travis-ci.org/devlab-oy/sepa.svg?branch=master)](https://travis-ci.org/devlab-oy/sepa)
3
+ [![Code Climate](https://codeclimate.com/repos/577f932c113b7263ba004849/badges/3728d42150003eafa174/gpa.svg)](https://codeclimate.com/repos/577f932c113b7263ba004849/feed)
4
+ [![Test Coverage](https://codeclimate.com/repos/577f932c113b7263ba004849/badges/3728d42150003eafa174/coverage.svg)](https://codeclimate.com/repos/577f932c113b7263ba004849/coverage)
5
+ [![Build Status](https://semaphoreci.com/api/v1/devlab/sepa/branches/master/badge.svg)](https://semaphoreci.com/devlab/sepa)
6
6
  [![Gem Version](https://badge.fury.io/rb/sepafm.svg)](http://badge.fury.io/rb/sepafm)
7
7
 
8
8
  This project aims to create an open source implementation of SEPA Financial Messages using Web Services. Project implementation is done in Ruby.
data/sepafm.gemspec CHANGED
@@ -16,16 +16,16 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.required_ruby_version = '>= 2.1.7'
19
+ spec.required_ruby_version = '>= 2.2.5'
20
20
 
21
21
  spec.add_dependency 'activemodel', '~> 4.2'
22
22
  spec.add_dependency 'nokogiri', '~> 1.6'
23
23
  spec.add_dependency 'savon', '~> 2.11'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.12'
26
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.5'
26
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.6'
27
27
  spec.add_development_dependency 'dotenv', '~> 2.1'
28
- spec.add_development_dependency 'minitest', '~> 5.8'
29
- spec.add_development_dependency 'rake', '~> 11.1'
28
+ spec.add_development_dependency 'minitest', '~> 5.9'
29
+ spec.add_development_dependency 'rake', '~> 11.2'
30
30
  spec.add_development_dependency 'rubyntlm', '~> 0.6'
31
31
  end
@@ -11,6 +11,27 @@ module Minitest::Assertions
11
11
  "Expected #{ expected.inspect } and #{ actual.inspect } would not have the same items"
12
12
  end
13
13
 
14
+ def assert_valid_against_schema(schema, document)
15
+ errors = []
16
+
17
+ Dir.chdir(SCHEMA_PATH) do
18
+ xsd = Nokogiri::XML::Schema(IO.read(schema))
19
+ xsd.validate(document).each do |error|
20
+ errors << error
21
+ end
22
+ end
23
+
24
+ assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
25
+ end
26
+
27
+ def refute_valid_against_schema(schema, document)
28
+ Dir.chdir(SCHEMA_PATH) do
29
+ xsd = Nokogiri::XML::Schema(IO.read(schema))
30
+
31
+ refute xsd.valid?(document)
32
+ end
33
+ end
34
+
14
35
  private
15
36
 
16
37
  def same_items(expected, actual)
@@ -90,10 +90,6 @@ class DanskeCertSoapBuilderTest < ActiveSupport::TestCase
90
90
  end
91
91
 
92
92
  def test_should_validate_against_schema
93
- Dir.chdir(SCHEMA_PATH) do
94
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
95
- assert xsd.valid?(@doc)
96
- end
93
+ assert_valid_against_schema 'soap.xsd', @doc
97
94
  end
98
-
99
95
  end
@@ -2,15 +2,13 @@ require 'test_helper'
2
2
 
3
3
  class DanskeCertificateApplicationRequestTest < ActiveSupport::TestCase
4
4
  setup do
5
- @danske_create_certificate_params = danske_create_certificate_params
6
- @danske_create_certificate_params[:environment] = :test
7
- @danske_create_certificate_application_request =
8
- Sepa::ApplicationRequest.new @danske_create_certificate_params
5
+ @params = danske_create_certificate_params
6
+ @ar = Sepa::ApplicationRequest.new(@params)
9
7
  end
10
8
 
11
- test 'should set environment to customertest when test in parameters' do
12
- environment_node =
13
- @danske_create_certificate_application_request.to_nokogiri.at('tns|Environment')
14
- assert_equal environment_node.content, 'customertest'
9
+ test 'environment is set to customertest when test in parameters' do
10
+ environment_node = @ar.to_nokogiri.at('tns|Environment')
11
+
12
+ assert_equal 'customertest', environment_node.content
15
13
  end
16
14
  end
@@ -223,41 +223,25 @@ class DanskeGenericSoapBuilderTest < ActiveSupport::TestCase
223
223
  end
224
224
 
225
225
  def test_should_validate_against_schema
226
- Dir.chdir(SCHEMA_PATH) do
227
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
228
- assert xsd.valid?(@doc)
229
- end
226
+ assert_valid_against_schema 'soap.xsd', @doc
230
227
  end
231
228
 
232
229
  def test_schema_validation_should_fail_with_wrong_must_understand_value
233
- wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
234
- security_node = @doc.at(
235
- '//wsse:Security', 'wsse' => wsse
236
- )
230
+ wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
231
+ security_node = @doc.at('//wsse:Security', 'wsse' => wsse)
237
232
 
238
233
  security_node['env:mustUnderstand'] = '3'
239
234
 
240
- Dir.chdir(SCHEMA_PATH) do
241
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
242
- refute xsd.valid?(@doc)
243
- end
235
+ refute_valid_against_schema 'soap.xsd', @doc
244
236
  end
245
237
 
246
238
  def test_should_validate_against_ws_security_schema
247
- wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
248
-
249
- ws_node = @doc.xpath(
250
- '//wsse:Security', 'wsse' => wsse
251
- )
252
-
239
+ wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
240
+ ws_node = @doc.xpath('//wsse:Security', 'wsse' => wsse)
253
241
  ws_node = ws_node.to_xml
254
-
255
242
  ws_node = Nokogiri::XML(ws_node)
256
243
 
257
- Dir.chdir(SCHEMA_PATH) do
258
- xsd = Nokogiri::XML::Schema IO.read 'oasis-200401-wss-wssecurity-secext-1.0.xsd'
259
- assert xsd.valid?(ws_node)
260
- end
244
+ assert_valid_against_schema 'oasis-200401-wss-wssecurity-secext-1.0.xsd', ws_node
261
245
  end
262
246
 
263
247
  test 'application request is encrypted' do
@@ -80,20 +80,14 @@ class DanskeGetBankCertTest < ActiveSupport::TestCase
80
80
  end
81
81
 
82
82
  def test_should_validate_against_soap_schema
83
- Dir.chdir(SCHEMA_PATH) do
84
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
85
- assert xsd.valid?(@doc)
86
- end
83
+ assert_valid_against_schema 'soap.xsd', @doc
87
84
  end
88
85
 
89
86
  def test_request_should_validate_against_pki_service_schema
90
87
  request = @doc.css('GetBankCertificateRequest', 'xmlns' => @elem).to_xml
91
88
  request = Nokogiri::XML(request)
92
89
 
93
- Dir.chdir(SCHEMA_PATH) do
94
- xsd = Nokogiri::XML::Schema(IO.read('PKIFactory.xsd'))
95
- assert xsd.valid?(request)
96
- end
90
+ assert_valid_against_schema 'PKIFactory.xsd', request
97
91
  end
98
92
 
99
93
  def test_invalid_bank_root_cert_serial_should_fail_schema_validation
@@ -102,10 +96,6 @@ class DanskeGetBankCertTest < ActiveSupport::TestCase
102
96
  request = @doc.css('GetBankCertificateRequest', 'xmlns' => @elem).to_xml
103
97
  request = Nokogiri::XML(request)
104
98
 
105
- Dir.chdir(SCHEMA_PATH) do
106
- xsd = Nokogiri::XML::Schema(IO.read('PKIFactory.xsd'))
107
- refute xsd.valid?(request)
108
- end
99
+ refute_valid_against_schema 'PKIFactory.xsd', request
109
100
  end
110
-
111
101
  end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class DanskeRenewCertApplicationRequestTest < ActiveSupport::TestCase
4
+ setup do
5
+ @params = danske_renew_cert_params
6
+
7
+ # Convert the keys here since the conversion is usually done by the client and these tests
8
+ # bypass the client
9
+ @params[:own_signing_certificate] = x509_certificate(@params[:own_signing_certificate])
10
+ @params[:signing_private_key] = rsa_key(@params[:signing_private_key])
11
+
12
+ @ar = Sepa::ApplicationRequest.new(@params)
13
+ @doc = @ar.to_nokogiri
14
+ end
15
+
16
+ test 'validates against schema' do
17
+ assert_valid_against_schema 'danske_pki.xsd', @doc
18
+ end
19
+
20
+ test 'signature is calculated correctly' do
21
+ sha1 = OpenSSL::Digest::SHA1.new
22
+ keys_path = File.expand_path('../keys', __FILE__)
23
+ private_key = rsa_key(File.read("#{keys_path}/signing_key.pem"))
24
+
25
+ signed_info_node = @doc.at("dsig|SignedInfo", dsig: 'http://www.w3.org/2000/09/xmldsig#')
26
+ actual_signature = encode(private_key.sign(sha1, signed_info_node.canonicalize))
27
+
28
+ calculated_signature = @doc.at("dsig|SignatureValue", dsig: 'http://www.w3.org/2000/09/xmldsig#').content
29
+
30
+ assert_equal actual_signature, calculated_signature
31
+ end
32
+ end
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+
3
+ class DanskeRenewCertRequestSoapBuilderTest < ActiveSupport::TestCase
4
+ setup do
5
+ @params = danske_renew_cert_params
6
+
7
+ # Convert the keys here since the conversion is usually done by the client and these tests
8
+ # bypass the client
9
+ @params[:own_signing_certificate] = x509_certificate(@params[:own_signing_certificate])
10
+ @params[:signing_private_key] = rsa_key(@params[:signing_private_key])
11
+
12
+ soap_builder = Sepa::SoapBuilder.new(@params)
13
+ @doc = Nokogiri::XML(soap_builder.to_xml)
14
+ end
15
+
16
+ test "validates against schema" do
17
+ assert_valid_against_schema 'soap.xsd', @doc
18
+ end
19
+
20
+ test 'validates against ws security schema' do
21
+ wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
22
+ ws_node = @doc.at('wsse|Security', 'wsse': wsse)
23
+ ws_node = ws_node.to_xml
24
+ ws_node = Nokogiri::XML(ws_node)
25
+
26
+ assert_valid_against_schema 'oasis-200401-wss-wssecurity-secext-1.0.xsd', ws_node
27
+ end
28
+
29
+ test 'signature is calculated correctly' do
30
+ sha1 = OpenSSL::Digest::SHA1.new
31
+ private_key = rsa_key(@params.fetch(:signing_private_key))
32
+
33
+ added_signature = @doc.at("dsig|SignatureValue", dsig: 'http://www.w3.org/2000/09/xmldsig#').content
34
+
35
+ signed_info_node = @doc.at("dsig|SignedInfo", dsig: 'http://www.w3.org/2000/09/xmldsig#')
36
+ signed_info_node = signed_info_node.canonicalize(Nokogiri::XML::XML_C14N_EXCLUSIVE_1_0)
37
+ actual_signature = encode(private_key.sign(sha1, signed_info_node)).gsub(/\s+/, "")
38
+
39
+ assert_equal actual_signature, added_signature
40
+ end
41
+ end
@@ -241,30 +241,18 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
241
241
  end
242
242
 
243
243
  test 'download file should validate against schema' do
244
- Dir.chdir(SCHEMA_PATH) do
245
- xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
246
- assert xsd.valid?(@doc_file)
247
- end
244
+ assert_valid_against_schema 'application_request.xsd', @doc_file
248
245
  end
249
246
 
250
247
  test 'upload file should validate against schema' do
251
- Dir.chdir(SCHEMA_PATH) do
252
- xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
253
- assert xsd.valid?(@doc_up)
254
- end
248
+ assert_valid_against_schema 'application_request.xsd', @doc_up
255
249
  end
256
250
 
257
251
  test 'download file list should validate against schema' do
258
- Dir.chdir(SCHEMA_PATH) do
259
- xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
260
- assert xsd.valid?(@doc_list)
261
- end
252
+ assert_valid_against_schema 'application_request.xsd', @doc_list
262
253
  end
263
254
 
264
255
  test 'get user info should validate against schema' do
265
- Dir.chdir(SCHEMA_PATH) do
266
- xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
267
- assert xsd.valid?(@doc_get)
268
- end
256
+ assert_valid_against_schema 'application_request.xsd', @doc_get
269
257
  end
270
258
  end
@@ -64,10 +64,6 @@ class NordeaCertApplicationRequestTest < ActiveSupport::TestCase
64
64
  end
65
65
 
66
66
  def test_should_validate_against_schema
67
- Dir.chdir(SCHEMA_PATH) do
68
- xsd = Nokogiri::XML::Schema(IO.read('cert_application_request.xsd'))
69
- assert xsd.valid?(@xml)
70
- end
67
+ assert_valid_against_schema 'cert_application_request.xsd', @xml
71
68
  end
72
-
73
69
  end
@@ -56,10 +56,7 @@ class NordeaCertRequestSoapBuilderTest < ActiveSupport::TestCase
56
56
  end
57
57
 
58
58
  def test_should_validate_against_schema
59
- Dir.chdir(SCHEMA_PATH) do
60
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
61
- assert xsd.valid?(@xml)
62
- end
59
+ assert_valid_against_schema 'soap.xsd', @xml
63
60
  end
64
61
 
65
62
  end
@@ -237,40 +237,24 @@ class NordeaGenericSoapBuilderTest < ActiveSupport::TestCase
237
237
  end
238
238
 
239
239
  def test_should_validate_against_schema
240
- Dir.chdir(SCHEMA_PATH) do
241
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
242
- assert xsd.valid?(@doc)
243
- end
240
+ assert_valid_against_schema 'soap.xsd', @doc
244
241
  end
245
242
 
246
243
  def test_schema_validation_should_fail_with_wrong_must_understand_value
247
- wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
248
- security_node = @doc.xpath(
249
- '//wsse:Security', 'wsse' => wsse
250
- ).first
244
+ wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
245
+ security_node = @doc.xpath('//wsse:Security', 'wsse' => wsse).first
251
246
 
252
247
  security_node['env:mustUnderstand'] = '3'
253
248
 
254
- Dir.chdir(SCHEMA_PATH) do
255
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
256
- refute xsd.valid?(@doc)
257
- end
249
+ refute_valid_against_schema 'soap.xsd', @doc
258
250
  end
259
251
 
260
252
  def test_should_validate_against_ws_security_schema
261
- wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
262
-
263
- ws_node = @doc.xpath(
264
- '//wsse:Security', 'wsse' => wsse
265
- )
266
-
253
+ wsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
254
+ ws_node = @doc.xpath('//wsse:Security', 'wsse' => wsse)
267
255
  ws_node = ws_node.to_xml
268
256
  ws_node = Nokogiri::XML(ws_node)
269
257
 
270
- Dir.chdir(SCHEMA_PATH) do
271
- xsd = Nokogiri::XML::Schema IO.read 'oasis-200401-wss-wssecurity-secext-1.0.xsd'
272
- assert xsd.valid?(ws_node)
273
- end
258
+ assert_valid_against_schema 'oasis-200401-wss-wssecurity-secext-1.0.xsd', ws_node
274
259
  end
275
-
276
260
  end
@@ -14,16 +14,7 @@ class NordeaRenewCertApplicationRequestTest < ActiveSupport::TestCase
14
14
  end
15
15
 
16
16
  test "validates against schema" do
17
- errors = []
18
-
19
- Dir.chdir(SCHEMA_PATH) do
20
- xsd = Nokogiri::XML::Schema(IO.read('cert_application_request.xsd'))
21
- xsd.validate(@doc).each do |error|
22
- errors << error
23
- end
24
- end
25
-
26
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
17
+ assert_valid_against_schema 'cert_application_request.xsd', @doc
27
18
  end
28
19
 
29
20
  test "customer id is set correctly" do
@@ -14,16 +14,7 @@ class NordeaRenewCertRequestSoapBuilderTest < ActiveSupport::TestCase
14
14
  end
15
15
 
16
16
  test "validates against schema" do
17
- errors = []
18
-
19
- Dir.chdir(SCHEMA_PATH) do
20
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
21
- xsd.validate(@doc).each do |error|
22
- errors << error
23
- end
24
- end
25
-
26
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
17
+ assert_valid_against_schema 'soap.xsd', @doc
27
18
  end
28
19
 
29
20
  test 'sender id is properly set' do
@@ -23,41 +23,14 @@ class OpApplicationRequestTest < ActiveSupport::TestCase
23
23
  end
24
24
 
25
25
  test 'download file validates against schema' do
26
- errors = []
27
-
28
- Dir.chdir(SCHEMA_PATH) do
29
- xsd = Nokogiri::XML::Schema(IO.read('op/ApplicationRequest_20080918.xsd'))
30
- xsd.validate(@doc_file).each do |error|
31
- errors << error
32
- end
33
- end
34
-
35
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
26
+ assert_valid_against_schema 'op/ApplicationRequest_20080918.xsd', @doc_file
36
27
  end
37
28
 
38
29
  test 'upload file validates against schema' do
39
- errors = []
40
-
41
- Dir.chdir(SCHEMA_PATH) do
42
- xsd = Nokogiri::XML::Schema(IO.read('op/ApplicationRequest_20080918.xsd'))
43
- xsd.validate(@doc_up).each do |error|
44
- errors << error
45
- end
46
- end
47
-
48
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
30
+ assert_valid_against_schema 'op/ApplicationRequest_20080918.xsd', @doc_up
49
31
  end
50
32
 
51
33
  test 'download file list validates against schema' do
52
- errors = []
53
-
54
- Dir.chdir(SCHEMA_PATH) do
55
- xsd = Nokogiri::XML::Schema(IO.read('op/ApplicationRequest_20080918.xsd'))
56
- xsd.validate(@doc_list).each do |error|
57
- errors << error
58
- end
59
- end
60
-
61
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
34
+ assert_valid_against_schema 'op/ApplicationRequest_20080918.xsd', @doc_list
62
35
  end
63
36
  end
@@ -63,15 +63,6 @@ class OpCertApplicationRequestTest < ActiveSupport::TestCase
63
63
  end
64
64
 
65
65
  test "validates against schema" do
66
- errors = []
67
-
68
- Dir.chdir(SCHEMA_PATH) do
69
- xsd = Nokogiri::XML::Schema(IO.read('op/CertApplicationRequest_200812.xsd'))
70
- xsd.validate(@xml).each do |error|
71
- errors << error
72
- end
73
- end
74
-
75
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
66
+ assert_valid_against_schema 'op/CertApplicationRequest_200812.xsd', @xml
76
67
  end
77
68
  end
@@ -48,15 +48,6 @@ class OpCertRequestSoapBuilderTest < ActiveSupport::TestCase
48
48
  end
49
49
 
50
50
  test "validates against schema" do
51
- errors = []
52
-
53
- Dir.chdir(SCHEMA_PATH) do
54
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
55
- xsd.validate(@xml).each do |error|
56
- errors << error
57
- end
58
- end
59
-
60
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
51
+ assert_valid_against_schema 'soap.xsd', @xml
61
52
  end
62
53
  end
@@ -19,16 +19,7 @@ class OpGenericSoapBuilderTest < ActiveSupport::TestCase
19
19
  end
20
20
 
21
21
  test 'validates against schema' do
22
- errors = []
23
-
24
- Dir.chdir(SCHEMA_PATH) do
25
- xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
26
- xsd.validate(@doc).each do |error|
27
- errors << error
28
- end
29
- end
30
-
31
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
22
+ assert_valid_against_schema 'soap.xsd', @doc
32
23
  end
33
24
 
34
25
  test 'validates against ws security schema' do
@@ -38,15 +29,6 @@ class OpGenericSoapBuilderTest < ActiveSupport::TestCase
38
29
  ws_node = ws_node.to_xml
39
30
  ws_node = Nokogiri::XML(ws_node)
40
31
 
41
- errors = []
42
-
43
- Dir.chdir(SCHEMA_PATH) do
44
- xsd = Nokogiri::XML::Schema(IO.read('oasis-200401-wss-wssecurity-secext-1.0.xsd'))
45
- xsd.validate(ws_node).each do |error|
46
- errors << error
47
- end
48
- end
49
-
50
- assert errors.empty?, "The following schema validations failed:\n#{errors.join("\n")}"
32
+ assert_valid_against_schema 'oasis-200401-wss-wssecurity-secext-1.0.xsd', ws_node
51
33
  end
52
34
  end