sepafm 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +14 -30
- data/.ruby-version +1 -1
- data/.travis.yml +15 -0
- data/Gemfile +1 -1
- data/LICENSE +16 -4
- data/README.md +180 -319
- data/Rakefile +7 -2
- data/lib/sepa/application_request.rb +100 -131
- data/lib/sepa/application_response.rb +28 -84
- data/lib/sepa/attribute_checks.rb +169 -0
- data/lib/sepa/banks/danske/danske_response.rb +19 -0
- data/lib/sepa/banks/danske/soap_danske.rb +132 -0
- data/lib/sepa/banks/nordea/nordea_response.rb +20 -0
- data/lib/sepa/banks/nordea/soap_nordea.rb +51 -0
- data/lib/sepa/client.rb +72 -60
- data/lib/sepa/error_messages.rb +15 -0
- data/lib/sepa/response.rb +88 -85
- data/lib/sepa/soap_builder.rb +51 -341
- data/lib/sepa/utilities.rb +132 -0
- data/lib/sepa/version.rb +1 -1
- data/lib/sepa/xml_schemas/PKIFactory.xsd +334 -0
- data/lib/sepa/xml_schemas/xml_id.xsd +9 -0
- data/lib/sepa/xml_templates/application_request/create_certificate.xml +15 -10
- data/lib/sepa/xml_templates/application_request/danske_get_bank_certificate.xml +13 -9
- data/lib/sepa/xml_templates/application_request/download_file.xml +32 -30
- data/lib/sepa/xml_templates/application_request/download_file_list.xml +29 -27
- data/lib/sepa/xml_templates/application_request/encrypted_request.xml +22 -0
- data/lib/sepa/xml_templates/application_request/get_certificate.xml +9 -8
- data/lib/sepa/xml_templates/application_request/get_user_info.xml +26 -24
- data/lib/sepa/xml_templates/application_request/upload_file.xml +29 -27
- data/lib/sepa/xml_templates/soap/create_certificate.xml +17 -15
- data/lib/sepa/xml_templates/soap/danske_get_bank_certificate.xml +15 -13
- data/lib/sepa/xml_templates/soap/download_file.xml +19 -15
- data/lib/sepa/xml_templates/soap/download_file_list.xml +19 -15
- data/lib/sepa/xml_templates/soap/get_certificate.xml +2 -1
- data/lib/sepa/xml_templates/soap/get_user_info.xml +19 -15
- data/lib/sepa/xml_templates/soap/header.xml +48 -37
- data/lib/sepa/xml_templates/soap/upload_file.xml +19 -15
- data/lib/sepafm.rb +20 -18
- data/{sepa.gemspec → sepafm.gemspec} +10 -9
- data/test/sepa/banks/danske/danske_cert_response_test.rb +52 -0
- data/test/sepa/banks/danske/danske_cert_soap_builder_test.rb +100 -0
- data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +278 -0
- data/test/sepa/banks/danske/danske_get_bank_cert_test.rb +111 -0
- data/{lib/sepa/danske_testing/keys/danske_encryption.crt → test/sepa/banks/danske/keys/bank_encryption_cert.pem} +0 -0
- data/test/sepa/{danske_test_keys/danskeroot.pem → banks/danske/keys/bank_root_cert.pem} +1 -1
- data/test/sepa/banks/danske/keys/bank_signing_cert.pem +24 -0
- data/test/sepa/banks/danske/keys/danske_encryption.crt +24 -0
- data/test/sepa/banks/danske/keys/enc_private_key.pem +27 -0
- data/test/sepa/{danske_test_keys → banks/danske/keys}/encryption_pkcs.csr +0 -0
- data/test/sepa/banks/danske/keys/own_enc_cert.pem +21 -0
- data/test/sepa/banks/danske/keys/own_signing_cert.pem +22 -0
- data/test/sepa/{danske_test_keys → banks/danske/keys}/signing_key.pem +0 -0
- data/test/sepa/{danske_test_keys → banks/danske/keys}/signing_pkcs.csr +0 -0
- data/test/sepa/banks/danske/keys/signing_private_key.pem +27 -0
- data/test/sepa/banks/danske/responses/create_cert.xml +38 -0
- data/test/sepa/banks/danske/responses/get_bank_cert.xml +37 -0
- data/{lib/sepa/nordea_testing → test/sepa/banks/nordea}/keys/nordea.crt +0 -4
- data/test/sepa/{nordea_test_keys → banks/nordea/keys}/nordea.key +0 -3
- data/test/sepa/{nordea_test_keys → banks/nordea/keys}/root_cert.cer +0 -0
- data/test/sepa/{nordea_test_keys → banks/nordea/keys}/testcert.csr +0 -0
- data/test/sepa/banks/nordea/nordea_application_request_test.rb +252 -0
- data/test/sepa/{application_response_test.rb → banks/nordea/nordea_application_response_test.rb} +40 -46
- data/test/sepa/banks/nordea/nordea_cert_application_request_test.rb +72 -0
- data/test/sepa/banks/nordea/nordea_cert_request_soap_builder_test.rb +65 -0
- data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +280 -0
- data/test/sepa/banks/nordea/nordea_response_test.rb +116 -0
- data/test/sepa/banks/nordea/responses/df_ktl.xml +45 -0
- data/test/sepa/{test_files/test_responses/df.xml → banks/nordea/responses/df_tito.xml} +1 -1
- data/test/sepa/{test_files/test_responses → banks/nordea/responses}/dfl.xml +0 -0
- data/test/sepa/banks/nordea/responses/gbc.xml +15 -0
- data/test/sepa/banks/nordea/responses/gc.xml +49 -0
- data/test/sepa/{test_files/test_responses → banks/nordea/responses}/gui.xml +0 -0
- data/test/sepa/{test_files/test_responses → banks/nordea/responses}/uf.xml +0 -0
- data/test/sepa/client_test.rb +156 -302
- data/test/sepa/fixtures.rb +214 -0
- data/test/sepa/sepa_test.rb +3 -13
- data/test/sepa/test_files/{invalid.wsdl → invalid_wsdl.wsdl} +0 -0
- data/test/test_helper.rb +29 -3
- metadata +140 -116
- data/lib/danske_get_bank_certificate_test.rb +0 -15
- data/lib/sepa/custom_exceptions.rb +0 -2
- data/lib/sepa/filedescriptor.rb +0 -7
- data/lib/sepa/filetypeservice.rb +0 -6
- data/lib/sepa/nordea_testing/keys/CSR.csr +0 -0
- data/lib/sepa/nordea_testing/keys/nordea.key +0 -19
- data/lib/sepa/nordea_testing/response/content_053.xml +0 -998
- data/lib/sepa/nordea_testing/response/content_054.xml +0 -1
- data/lib/sepa/nordea_testing/response/download_file_response.xml +0 -14
- data/lib/sepa/nordea_testing/response/download_filelist_response.xml +0 -14
- data/lib/sepa/nordea_testing/response/get_user_info_response.xml +0 -14
- data/lib/sepa/nordea_testing/response/upload_file_response.xml +0 -14
- data/lib/sepa/payload.rb +0 -109
- data/lib/sepa/payment.rb +0 -97
- data/lib/sepa/sender_verifier.rb +0 -15
- data/lib/sepa/signature.rb +0 -7
- data/lib/sepa/soap_danske.rb +0 -47
- data/lib/sepa/soap_nordea.rb +0 -68
- data/lib/sepa/transaction.rb +0 -178
- data/lib/sepa/userfiletype.rb +0 -16
- data/lib/sepa/xml_parser.rb +0 -291
- data/lib/sepa_client_testing_mika.rb +0 -32
- data/lib/sepa_client_testing_tiere.rb +0 -257
- data/test/sepa/application_request_test.rb +0 -423
- data/test/sepa/cert_application_request_test.rb +0 -99
- data/test/sepa/nordea_cert_request_soap_builder_test.rb +0 -112
- data/test/sepa/nordea_generic_soap_builder_test.rb +0 -427
- data/test/sepa/nordea_test_keys/nordea.crt +0 -27
- data/test/sepa/payload_test.rb +0 -297
- data/test/sepa/payment_test.rb +0 -198
- data/test/sepa/response_test.rb +0 -269
- data/test/sepa/transaction_test.rb +0 -362
- data/test/sepa/user_file_type_test.rb +0 -21
- data/test/sepa/xml_parser_test.rb +0 -73
@@ -0,0 +1,49 @@
|
|
1
|
+
<soapenv:Envelope xmlns:mod="http://model.bxd.fi" xmlns:cer="http://bxd.fi/CertificateService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<soapenv:Header>
|
3
|
+
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
|
4
|
+
<wsu:Timestamp wsu:Id="Timestamp-dbe6014b-0fe9-43a5-a36b-f11a9e12d78f" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
|
5
|
+
<wsu:Created>2011-02-08T12:19:38Z</wsu:Created>
|
6
|
+
<wsu:Expires>2011-02-08T12:24:38Z</wsu:Expires>
|
7
|
+
</wsu:Timestamp>
|
8
|
+
<wsse:BinarySecurityToken wsu:Id="SecurityToken-9d25372f-3395-4fe6-ba56-735c6fa75788" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIID8TCCAtmgAwIBAgIEAPlwbDANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJTRTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSYwJAYDVQQDEx1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMTEUMBIGA1UEBRMLNTE2NDA2LTAxMjAwHhcNMTAwOTA4MTQzNzQ5WhcNMTIwOTA4MTQzNzQ5WjB+MQswCQYDVQQGEwJTRTEeMBwGA1UECgwVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSowKAYDVQQLDCFOZXRiYW5raW5nICYgSW50ZWdyYXRpb24gU2VydmljZXMxIzAhBgNVBAMMGkZpbGUgVHJhbnNmZXIgV2ViIFNlcnZpY2VzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYg2w5rYDRBz9PHKtJPjDc2BfGl7LNaLiYbi34+O2DIptQ2WzUSg/jv5F842NYwk5wx3WXY439zByJf6l3c/c3buLReMi+M421EQpWwLgF0vy+ut+pbV7M8S+cGVgobUCoj/Y6OFTRTFL/zLbvhlp9FZHYmXfcdZqCGvAGIRr9twIDAQABo4IBDDCCAQgwCQYDVR0TBAIwADARBgNVHQ4ECgQISfXSYMRA2HUwEwYDVR0jBAwwCoAIRMeT2dl7VsEwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5ub3JkZWEuc2UvU0NBMDEwDgYDVR0PAQH/BAQDAgWgMIGJBgNVHR8EgYEwfzB9oHugeYZ3bGRhcDovL2xkYXAubmIuc2UvY249Tm9yZGVhJTIwQ29ycG9yYXRlJTIwU2VydmVyJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAIdDDnXPolvbM9c+8CgYj7+A7RrRth7P1x6UgIFYpAzajyaKBi9qMYDb3/XcqOqWmkHcTJRwFOEOkHBBUKK2Od7xI54yokjaVWn+AukgAVwyW/vXgKeiTNRnkZDAnZhzXKVwEk2E2E7a3YgHhsg/9Laylej9I/mnFhgU9nNFZmHvEIFTKIGoJC1so6/N9vj8OpzQSJNjEWF9YEvAk1FZOkaK84drwckEWm3N9519+4kMEjB00trJ0cp8xtAhpyD+KgUeBCzma5IFWKkZphccutTaib7kiATD8oDXj+wmfYem+7Q8CoHl5kDvWPIBz4b/EwSnvwjWBx80nwS9ZqNc9RA=</wsse:BinarySecurityToken>
|
9
|
+
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
|
10
|
+
<SignedInfo>
|
11
|
+
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
12
|
+
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
|
13
|
+
<Reference URI="#Timestamp-dbe6014b-0fe9-43a5-a36b-f11a9e12d78f">
|
14
|
+
<Transforms>
|
15
|
+
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
16
|
+
</Transforms>
|
17
|
+
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
|
18
|
+
<DigestValue>nkU/8w4xkiHdcYTb3pFOSFPJtN0=</DigestValue>
|
19
|
+
</Reference>
|
20
|
+
<Reference URI="#Body-703877af-2b33-4592-a35f-c2e26707500f">
|
21
|
+
<Transforms>
|
22
|
+
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
23
|
+
</Transforms>
|
24
|
+
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
|
25
|
+
<DigestValue>/I7ZIYN0sudzvBiY3jXdTGC+f3g=</DigestValue>
|
26
|
+
</Reference>
|
27
|
+
</SignedInfo>
|
28
|
+
<SignatureValue>kaz3YW90QNZo/Ieo7t5gVZHvKHjUo091cDzLdYEMdMgRahNHwqvEl1MwcK2LK2gfJsnsgLHD1XUP1YZYDY1D1kuy+MUvP9Ui4ccWyUs97b0bQfP0c9wrV8hRVl0stEGfVLvkZbFWMaxMpgUQf25tI1HuhSegDn9BGE3xzQlHufI=</SignatureValue>
|
29
|
+
<KeyInfo>
|
30
|
+
<wsse:SecurityTokenReference xmlns="">
|
31
|
+
<wsse:Reference URI="#SecurityToken-9d25372f-3395-4fe6-ba56-735c6fa75788" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
|
32
|
+
</wsse:SecurityTokenReference>
|
33
|
+
</KeyInfo>
|
34
|
+
</Signature>
|
35
|
+
</wsse:Security>
|
36
|
+
</soapenv:Header>
|
37
|
+
<soapenv:Body wsu:Id="Body-703877af-2b33-4592-a35f-c2e26707500f" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
|
38
|
+
<cer:getCertificateout>
|
39
|
+
<cer:ResponseHeader>
|
40
|
+
<cer:SenderId>1</cer:SenderId>
|
41
|
+
<cer:RequestId>2</cer:RequestId>
|
42
|
+
<cer:Timestamp>2011-02-08T13:19:38+01:00</cer:Timestamp>
|
43
|
+
<cer:ResponseCode>00</cer:ResponseCode>
|
44
|
+
<cer:ResponseText>OK</cer:ResponseText>
|
45
|
+
</cer:ResponseHeader>
|
46
|
+
<cer:ApplicationResponse>PGJ4ZDpDZXJ0QXBwbGljYXRpb25SZXNwb25zZSB4bWxuczpieGQ9Imh0dHA6Ly9maWxldHJhbnNmZXIubm9yZGVhLmNvbS94bWxkYXRhLyI+PGJ4ZDpDdXN0b21lcklkPjQ4MjQzMDAwMzwvYnhkOkN1c3RvbWVySWQ+PGJ4ZDpUaW1lc3RhbXA+MjAxMS0wMi0wOFQxMzoxOTozOCswMTowMDwvYnhkOlRpbWVzdGFtcD48YnhkOlJlc3BvbnNlQ29kZT4wMDwvYnhkOlJlc3BvbnNlQ29kZT48YnhkOlJlc3BvbnNlVGV4dD5PSzwvYnhkOlJlc3BvbnNlVGV4dD48YnhkOkNlcnRpZmljYXRlcz48YnhkOkNlcnRpZmljYXRlPjxieGQ6TmFtZS8+PGJ4ZDpDZXJ0aWZpY2F0ZT5NSUlESXpDQ0FndWdBd0lCQWdJQ2F2RXdEUVlKS29aSWh2Y05BUUVGQlFBd1JqRWVNQndHQTFVRUNoTVZUbTl5WkdWaElFSmhibXNnUVVJZ0tIQjFZbXdwTVNRd0lnWURWUVFERXh0T2IzSmtaV0VnVkdWemRDQkRiM0p3YjNKaGRHVWdRMEVnTURFd0hoY05NVEF3TkRBeE1EYzBOVE0xV2hjTk1USXdOREF4TURjME5UTTFXakEzTVFzd0NRWURWUVFHRXdKR1NURVRNQkVHQTFVRUF3d0taV2xrSUc5dVptbHNaVEVUTUJFR0ExVUVCUk1LTWpBNU5ETTNNREF3TkRDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFPQmpRQXdnWWtDZ1lFQWdFczJLY2tnRmRKYnoxVzN2ako5VnJkWEx1TitqdmR6V01pcG4xeDdNc3YzRUpiS1RMYWtlVXpjOTB1aUkzVzFJbGUzQlo0VlI5dC9XbHRlSXllR2tVWFdvMHJXUkg1WXRCV0lKOC95WXZ1eDNqWTR3OGRkV084cFFudll2WEQ4U3c2TnJPZzJJZ1JGR3RleEJpblJZSVFJZy9LRDRLQ1d3cnAxaUlMN3JLRUNBd0VBQWFPQnJUQ0JxakFKQmdOVkhSTUVBakFBTUJFR0ExVWREZ1FLQkFoTG5OOHBhU2t4ZnpBVEJnTlZIU0FFRERBS01BZ0dCaXFGY0VjQkF6QVNCZ1lxaFhBaUFnRUVDQk1HVFVvNU5ETXdNQk1HQTFVZEl3UU1NQXFBQ0VxOTJXL0NYeVZOTUR3R0NDc0dBUVVGQndFQkJEQXdMakFzQmdnckJnRUZCUWN3QVlZZ2FIUjBjRG92TDI5amMzQXRkR1Z6ZEM1dWIzSmtaV0V1YzJVdlEwTkJNREV3RGdZRFZSMFBBUUgvQkFRREFnV2dNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJIRWJsOWx4YXM4NS81eTJBY1ozTnhVTWZQdm9tbWFBWTFUTnlwNFVaTlJMamZzbCttV1NJV09CMFNOKzJmbVl1ajJ5RlBzSFdkTnFrYnFNYXpQMS82amhIaGg4L3BZd2JUQmZFbTBFRHBCaFkvTkVOc2pka3dQWWZGVDJxZ3FLMk1GcDJrSW1iWWZ2RHVjazRPY1JsRzhCUW93K2FxN0RMbWU4TkNWYzNGVlhGNDRQT2RlZ25LZEplWDZDZlROK3g2QWZuNXBZL2d4VW0yQTZ3Qi9QTEs5d2kySEVsb2xxdTdrL0hWMFVreUNveG1mT2hNT1dTWTRzQXErT0NHWkhucEhVTVVoSFhyQWJHd3o1RVpiSXF5a25hSFZTc2lKL1l5bkJQZEpxc3NpZ2Q4Qk5JbzRyazRyODVYRm1hM1c1TnludDlrcHBLb1ZLMWhzUEFOdkhDbzwvYnhkOkNlcnRpZmljYXRlPjxieGQ6Q2VydGlmaWNhdGVGb3JtYXQ+WDUwOXYzPC9ieGQ6Q2VydGlmaWNhdGVGb3JtYXQ+PC9ieGQ6Q2VydGlmaWNhdGU+PC9ieGQ6Q2VydGlmaWNhdGVzPjxTaWduYXR1cmUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgo8U2lnbmVkSW5mbz4KICA8Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+CiAgPFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSIvPgogIDxSZWZlcmVuY2UgVVJJPSIiPgogICAgPFRyYW5zZm9ybXM+CiAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPgogICAgICA8VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiLz4KICAgIDwvVHJhbnNmb3Jtcz4KICAgIDxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPgogICAgPERpZ2VzdFZhbHVlPkZQalNaRUFWQnFTeGxMRnZiS1FsOXVxQ1Z0cz08L0RpZ2VzdFZhbHVlPgogIDwvUmVmZXJlbmNlPgo8L1NpZ25lZEluZm8+CiAgICA8U2lnbmF0dXJlVmFsdWU+WlVKQ1FCVE5vOWpndzlSTmtjSGo3Mzc1dmhUcmErUHFFTjBSQ3RXV2ZESUxDL3FXc3RRVkg4ZDAyTjhpb0dhWGFvTjVVVGJST3d0OTh4NzF2d3B1d3ZTSzIyQ0NPeTFvWDJIK0R6K0MxbFRaeEU5aXZHeE44RXJyRVJOcXJPNHhLSjk5SlB3SXdpL2hlNG1KSy82T2FCMnZsR3liZjlvdW5QRlBmRkFZeXJVPTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+TUlJRDhUQ0NBdG1nQXdJQkFnSUVBUGx3YkRBTkJna3Foa2lHOXcwQkFRVUZBREJyTVFzd0NRWURWUVFHRXdKVFJURWVNQndHQTFVRUNoTVZUbTl5WkdWaElFSmhibXNnUVVJZ0tIQjFZbXdwTVNZd0pBWURWUVFERXgxT2IzSmtaV0VnUTI5eWNHOXlZWFJsSUZObGNuWmxjaUJEUVNBd01URVVNQklHQTFVRUJSTUxOVEUyTkRBMkxUQXhNakF3SGhjTk1UQXdPVEE0TVRRek56UTVXaGNOTVRJd09UQTRNVFF6TnpRNVdqQitNUXN3Q1FZRFZRUUdFd0pUUlRFZU1Cd0dBMVVFQ2d3VlRtOXlaR1ZoSUVKaGJtc2dRVUlnS0hCMVltd3BNU293S0FZRFZRUUxEQ0ZPWlhSaVlXNXJhVzVuSUNZZ1NXNTBaV2R5WVhScGIyNGdVMlZ5ZG1salpYTXhJekFoQmdOVkJBTU1Ha1pwYkdVZ1ZISmhibk5tWlhJZ1YyVmlJRk5sY25acFkyVnpNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUNZZzJ3NXJZRFJCejlQSEt0SlBqRGMyQmZHbDdMTmFMaVliaTM0K08yRElwdFEyV3pVU2cvanY1Rjg0Mk5Zd2s1d3gzV1hZNDM5ekJ5SmY2bDNjL2MzYnVMUmVNaStNNDIxRVFwV3dMZ0YwdnkrdXQrcGJWN004UytjR1Znb2JVQ29qL1k2T0ZUUlRGTC96TGJ2aGxwOUZaSFltWGZjZFpxQ0d2QUdJUnI5dHdJREFRQUJvNElCRERDQ0FRZ3dDUVlEVlIwVEJBSXdBREFSQmdOVkhRNEVDZ1FJU2ZYU1lNUkEySFV3RXdZRFZSMGpCQXd3Q29BSVJNZVQyZGw3VnNFd053WUlLd1lCQlFVSEFRRUVLekFwTUNjR0NDc0dBUVVGQnpBQmhodG9kSFJ3T2k4dmIyTnpjQzV1YjNKa1pXRXVjMlV2VTBOQk1ERXdEZ1lEVlIwUEFRSC9CQVFEQWdXZ01JR0pCZ05WSFI4RWdZRXdmekI5b0h1Z2VZWjNiR1JoY0RvdkwyeGtZWEF1Ym1JdWMyVXZZMjQ5VG05eVpHVmhKVEl3UTI5eWNHOXlZWFJsSlRJd1UyVnlkbVZ5SlRJd1EwRWxNakF3TVN4dlBVNXZjbVJsWVNVeU1FSmhibXNsTWpCQlFpVXlNQ2h3ZFdKc0tTeGpQVk5GUDJObGNuUnBabWxqWVhSbGNtVjJiMk5oZEdsdmJteHBjM1F3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUlkRERuWFBvbHZiTTljKzhDZ1lqNytBN1JyUnRoN1AxeDZVZ0lGWXBBemFqeWFLQmk5cU1ZRGIzL1hjcU9xV21rSGNUSlJ3Rk9FT2tIQkJVS0syT2Q3eEk1NHlva2phVlduK0F1a2dBVnd5Vy92WGdLZWlUTlJua1pEQW5aaHpYS1Z3RWsyRTJFN2EzWWdIaHNnLzlMYXlsZWo5SS9tbkZoZ1U5bk5GWm1IdkVJRlRLSUdvSkMxc282L045dmo4T3B6UVNKTmpFV0Y5WUV2QWsxRlpPa2FLODRkcndja0VXbTNOOTUxOSs0a01FakIwMHRySjBjcDh4dEFocHlEK0tnVWVCQ3ptYTVJRldLa1pwaGNjdXRUYWliN2tpQVREOG9EWGord21mWWVtKzdROENvSGw1a0R2V1BJQno0Yi9Fd1NudndqV0J4ODBud1M5WnFOYzlSQT08L1g1MDlDZXJ0aWZpY2F0ZT48WDUwOUlzc3VlclNlcmlhbD48WDUwOUlzc3Vlck5hbWU+c2VyaWFsTnVtYmVyPTUxNjQwNi0wMTIwLCBDTj1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMSwgTz1Ob3JkZWEgQmFuayBBQiAocHVibCksIEM9U0U8L1g1MDlJc3N1ZXJOYW1lPjxYNTA5U2VyaWFsTnVtYmVyPjE2MzQ3MjQ0PC9YNTA5U2VyaWFsTnVtYmVyPjwvWDUwOUlzc3VlclNlcmlhbD48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48L2J4ZDpDZXJ0QXBwbGljYXRpb25SZXNwb25zZT4=</cer:ApplicationResponse>
|
47
|
+
</cer:getCertificateout>
|
48
|
+
</soapenv:Body>
|
49
|
+
</soapenv:Envelope>
|
File without changes
|
File without changes
|
data/test/sepa/client_test.rb
CHANGED
@@ -1,425 +1,279 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ClientTest < ActiveSupport::TestCase
|
4
|
+
include Sepa::ErrorMessages
|
2
5
|
|
3
|
-
class ClientTest < MiniTest::Test
|
4
6
|
def setup
|
5
|
-
@schemas_path = File.expand_path('../../../lib/sepa/xml_schemas',__FILE__)
|
6
|
-
|
7
|
-
wsdl_path = File.expand_path('../../../lib/sepa/wsdl/wsdl_nordea.xml',
|
8
|
-
__FILE__)
|
9
|
-
|
10
|
-
keys_path = File.expand_path('../nordea_test_keys', __FILE__)
|
11
|
-
|
12
|
-
danske_keys_path = File.expand_path('../danske_test_keys', __FILE__)
|
13
|
-
|
14
|
-
private_key = OpenSSL::PKey::RSA.new File.read "#{keys_path}/nordea.key"
|
15
|
-
cert = OpenSSL::X509::Certificate.new File.read "#{keys_path}/nordea.crt"
|
16
|
-
certplain = "-----BEGIN CERTIFICATE-----
|
17
|
-
MIIDwTCCAqmgAwIBAgIEAX1JuTANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
|
18
|
-
RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMR8wHQYDVQQDExZOb3Jk
|
19
|
-
ZWEgQ29ycG9yYXRlIENBIDAxMRQwEgYDVQQFEws1MTY0MDYtMDEyMDAeFw0xMzA1
|
20
|
-
MDIxMjI2MzRaFw0xNTA1MDIxMjI2MzRaMEQxCzAJBgNVBAYTAkZJMSAwHgYDVQQD
|
21
|
-
DBdOb3JkZWEgRGVtbyBDZXJ0aWZpY2F0ZTETMBEGA1UEBRMKNTc4MDg2MDIzODCB
|
22
|
-
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwtFEfAtbJuGzQwwRumZkvYh2BjGY
|
23
|
-
VsAMUeiKtOne3bZSeisfCq+TXqL1gI9LofyeAQ9I/sDm6tL80yrD5iaSUqVm6A73
|
24
|
-
9MsmpW/iyZcVf7ms8xAN51ESUgN6akwZCU9pH62ngJDj2gUsktY0fpsoVsARdrvO
|
25
|
-
Fk0fTSUXKWd6LbcCAwEAAaOCAR0wggEZMAkGA1UdEwQCMAAwEQYDVR0OBAoECEBw
|
26
|
-
2cj7+XMAMBMGA1UdIAQMMAowCAYGKoVwRwEDMBMGA1UdIwQMMAqACEALddbbzwun
|
27
|
-
MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Aubm9yZGVh
|
28
|
-
LnNlL0NDQTAxMA4GA1UdDwEB/wQEAwIFoDCBhQYDVR0fBH4wfDB6oHigdoZ0bGRh
|
29
|
-
cCUzQS8vbGRhcC5uYi5zZS9jbiUzRE5vcmRlYStDb3Jwb3JhdGUrQ0ErMDElMkNv
|
30
|
-
JTNETm9yZGVhK0JhbmsrQUIrJTI4cHVibCUyOSUyQ2MlM0RTRSUzRmNlcnRpZmlj
|
31
|
-
YXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBACLUPB1Gmq6286/s
|
32
|
-
ROADo7N+w3eViGJ2fuOTLMy4R0UHOznKZNsuk4zAbS2KycbZsE5py4L8o+IYoaS8
|
33
|
-
8YHtEeckr2oqHnPpz/0Eg7wItj8Ad+AFWJqzbn6Hu/LQhlnl5JEzXzl3eZj9oiiJ
|
34
|
-
1q/2CGXvFomY7S4tgpWRmYULtCK6jode0NhgNnAgOI9uy76pSS16aDoiQWUJqQgV
|
35
|
-
ydowAnqS9h9aQ6gedwbOdtkWmwKMDVXU6aRz9Gvk+JeYJhtpuP3OPNGbbC5L7NVd
|
36
|
-
no+B6AtwxmG3ozd+mPcMeVuz6kKLAmQyIiBSrRNa5OrTkq/CUzxO9WUgTnm/Sri7
|
37
|
-
zReR6mU=
|
38
|
-
-----END CERTIFICATE-----"
|
39
|
-
pkeyplain = "-----BEGIN PRIVATE KEY-----
|
40
|
-
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMLRRHwLWybhs0MM
|
41
|
-
EbpmZL2IdgYxmFbADFHoirTp3t22UnorHwqvk16i9YCPS6H8ngEPSP7A5urS/NMq
|
42
|
-
w+YmklKlZugO9/TLJqVv4smXFX+5rPMQDedRElIDempMGQlPaR+tp4CQ49oFLJLW
|
43
|
-
NH6bKFbAEXa7zhZNH00lFylnei23AgMBAAECgYEAqt912/7x4jaQTrxlSELLFVp9
|
44
|
-
eo1BesVTiPwXvPpsGbbyvGjZ/ztkXNs9zZbh1aCGzZMkiR2U7F5GlsiprlIif4cF
|
45
|
-
6Xz7rCjaAs7iDRt9PjhjVuqNGR2I+VIIlbQ9XWFJ3lJFW3v7TIZ8JbLnn0XOFz+Z
|
46
|
-
BBSSGTK1zTNh4TBQtjECQQDe5M3uu9m4RwSw9R6GaDw/IFQZgr0oWSv0WIjRwvwW
|
47
|
-
nFnSX2lbkNAjulP0daGsmn7vxIpqZxPxwcrU4wFqTF5dAkEA38DnbCm3YfogzwLH
|
48
|
-
Nre2hBmGqjWarhtxqtRarrkgnmOd8W0Z1Hb1dSHrliUSVSrINbK5ZdEV15Rpu7VD
|
49
|
-
OePzIwJAPMslS+8alANyyR0iJUC65fDYX1jkZOPldDDNqIDJJxWf/hwd7WaTDpuc
|
50
|
-
mHmZDi3ZX2Y45oqUywSzYNtFoIuR1QJAZYUZuyqmSK77SdGB36K1DfSi9AFEQDC1
|
51
|
-
fwPAbTwTv6mFFPAiYxLiRZXxVPtW+QtjMXH4ymh2V4y/+GnCqbZyLwJBAJQSDAME
|
52
|
-
Sn4Uz7Zjk3UrBIbMYEv0u2mcCypwsb0nGE5/gzDPjGE9cxWW+rXARIs+sNQVClnh
|
53
|
-
45nhdfYxOjgYff0=
|
54
|
-
-----END PRIVATE KEY-----"
|
55
|
-
csrplain = "-----BEGIN CERTIFICATE REQUEST-----
|
56
|
-
MIIBczCB3QIBADA0MRIwEAYDVQQDEwlEZXZsYWIgT3kxETAPBgNVBAUTCDExMTEx
|
57
|
-
MTExMQswCQYDVQQGEwJGSTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAo9wU
|
58
|
-
c2Ys5hSso4nEanbc+RIhL71aS6GBGiWAegXjhlyb6dpwigrZBFPw4u6UZV/Vq7Y7
|
59
|
-
Ku3uBq5rfZwk+lA+c/B634Eu0zWdI+EYfQxKVRrBrmhiGplKEtglHXbNmmMOn07e
|
60
|
-
LPUaB0Ipx/6h/UczJGBINdtcuIbYVu0r7ZfyWbUCAwEAAaAAMA0GCSqGSIb3DQEB
|
61
|
-
BQUAA4GBAIhh2o8mN4Byn+w1jdbhq6lxEXYqdqdh1F6GCajt2lQMUBgYP23I5cS/
|
62
|
-
Z+SYNhu8vbj52cGQPAwEDN6mm5yLpcXu40wYzgWyfStLXV9d/b4hMy9qLMW00Dzb
|
63
|
-
jo2ekdSDdw8qxKyxj1piv8oYzMd4fCjCpL+WDZtq7mdLErVZ92gH
|
64
|
-
-----END CERTIFICATE REQUEST-----"
|
65
|
-
@params = {
|
66
|
-
bank: :nordea,
|
67
|
-
private_key_plain: pkeyplain,
|
68
|
-
cert_plain: certplain,
|
69
|
-
command: :get_user_info,
|
70
|
-
customer_id: '11111111',
|
71
|
-
environment: 'PRODUCTION',
|
72
|
-
status: 'NEW',
|
73
|
-
target_id: '11111111A1',
|
74
|
-
language: 'FI',
|
75
|
-
file_type: 'TITO',
|
76
|
-
content: Base64.encode64("Kurppa"),
|
77
|
-
file_reference: "11111111A12006030329501800000014"
|
78
|
-
}
|
79
|
-
|
80
|
-
@certparams = {
|
81
|
-
bank: :nordea,
|
82
|
-
command: :get_certificate,
|
83
|
-
customer_id: '11111111',
|
84
|
-
environment: 'TEST',
|
85
|
-
pin: '1234567890',
|
86
|
-
csr_plain: csrplain,
|
87
|
-
service: 'service'
|
88
|
-
}
|
89
|
-
|
90
|
-
encryptpkcsplain = "-----BEGIN CERTIFICATE REQUEST-----
|
91
|
-
MIICZjCCAU4CAQAwITESMBAGA1UEAxMJRGV2bGFiIE95MQswCQYDVQQGEwJGSTCC
|
92
|
-
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKN2ceFGw+i4wAyg6WApu7/h
|
93
|
-
5Rpl8tp+QRX1eLbmftYpf6bbzj+JwspWNST/s8p8enGBRrK+HkNT8ayj7ZSubJwx
|
94
|
-
g/bAn+ewxk64A984hiMqd0GMJgwFcWhGpHhwH9QiqA5CAQYXY0T1fs2UXf1mIJ1Z
|
95
|
-
675yGRhU03ZyQgyIjhdTmXLznCluSLeIGypXPi7DCfHP5w0a6Dfpy31fowqi7n9A
|
96
|
-
gyoQ6JZuuXHAdEoQpNmxgpp9gBwxs9U+yBmDaBAvvB0DY3+0kMRFCn2oyCuQw5C4
|
97
|
-
mRo+0eOO+kA8Svd2bLXmcbe6js/5SgjvkHvvCgIqi9J6aPiJo0XCrLsB6BjQbpsC
|
98
|
-
AwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAXepnKWQWTCiTKXhuT+e52n0/x5YHd
|
99
|
-
bLB8nelPpyMf0hiNeoUdzNTZoMM2OArtzvOhh5HWZ32GbjR/RDCy+kMfAGDm/tlB
|
100
|
-
/4uJNcDotMFF+MUsEAHVrAUpZh5n00mBeYDl7m098VnAEayxUxJHbQMYY1J1QdTl
|
101
|
-
M62i5c2v3sNJlDlT4GidRtoGW9KAID2oCdOL94krWpwLAZDP4wLwG7ACCbOx3rST
|
102
|
-
f9gDE6jFUn7ONuiiYvOBAqjwckDpyOH+vx3WkZH4cwdcp4KVeLnjJzlJZaw7yTIo
|
103
|
-
z8BKfQ26LmOO/S4CFe3Vzq6FRNKl3D4nvCu06WoMi5tAAEi57tk05B32
|
104
|
-
-----END CERTIFICATE REQUEST-----"
|
105
|
-
signingpkcsplain = "-----BEGIN CERTIFICATE REQUEST-----
|
106
|
-
MIICZjCCAU4CAQAwITESMBAGA1UEAxMJRGV2bGFiIE95MQswCQYDVQQGEwJGSTCC
|
107
|
-
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3yym5CztvmJCxbzhy6tOph
|
108
|
-
wzamimFKlJt88cG0VLzwAh0EiAhFz9Yj/39n1HywL+4xOLizIAup794MzLBDs3TH
|
109
|
-
OAZe7iZSrb5y4PMh5l9jwhXLPu7/tkqswcvMtstI5HZGqEqdw0kAT0BuKJBXdo+e
|
110
|
-
8nOCVsiMPhrtk5ovLY54vWMzwfAQJeBkxbr1LH6Ib4k7IlsysKpQt7+VqQcTc/lL
|
111
|
-
IC+MnVfmKDA0qTXFKQsZC2hO353cu9ZfjdrnKpo5gutcPJRu+TBNS8HJNkI+3pNM
|
112
|
-
MTGPvweeY461tzgOpeSzL+FkmRFSWksOmPol1Q4DDZryYHaLDv7q6lELNDxEwQ8C
|
113
|
-
AwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAIw3tbNWTsayBm4bUzugNKCFreayTo
|
114
|
-
5npG3JUiA+n5jIdj3egqSXwxkXSJ5tdXcv0xqsFkV0wq3l5wEaeG7Jd7vLD6FX2y
|
115
|
-
MbtE49PHHcLwcY0U94qBj6qEleRwebGfyKwpMb2M90cAf3V/5IjZUJfvYyjOBQUT
|
116
|
-
H6Xhm3JG9g7AScHhFcM8r6PhmzcL1FubYBPTcUBuotDBYc4lbql7sbww/u8OyWvl
|
117
|
-
aIFd+oiwXGSYB7L8Fqg469jeIf0QtOZUtUEGOJWjM4JjTy+NnVmsj0jszMbuBZBW
|
118
|
-
7wOrp+GMBUZ9/vaY/zr7nvJTfvKz7CJQOgADeh/0imZqhIYfVKIpJxR5
|
119
|
-
-----END CERTIFICATE REQUEST-----"
|
120
|
-
danskebankencryptplain = "-----BEGIN CERTIFICATE-----
|
121
|
-
MIIEATCCAumgAwIBAgIFAQjv8bMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMT
|
122
|
-
B0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYD
|
123
|
-
VQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UE
|
124
|
-
CxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAe
|
125
|
-
Fw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENS
|
126
|
-
WVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMH
|
127
|
-
RGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURh
|
128
|
-
bnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDMwggEgMA0G
|
129
|
-
CSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC/kHrOvHOueBsit9drxIHpaD7mXINy
|
130
|
-
pXS/l9PbbOZ0lZKVEfW9gtG8xk9XggsPXHJMF/PXpG6mveXvPu9WW/XpryAUqGfv
|
131
|
-
YsC7Px3ixaJb2EMOL+2mJYd0v5HKg5RuYkQ82k3K01hMNEGYs0OotjNVAimQcTLt
|
132
|
-
VPDGBjK5BUAiwady9LpI6afo7roJWnRmsvSvinDgBqswnfCvUfSfM8cZyhnLLC2u
|
133
|
-
j1kBHAD/5xpllmS3aq1M8LqFkBYcCE5PdPmFWhGUumZ/Y5qLjDgcPMAPvUaKLqOs
|
134
|
-
h22jvPCZ0pm17eV0bSQzWe5e0zkgCYAepuFRazSlkJQYBdS47Mp68dY5AgEDo1Iw
|
135
|
-
UDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUP6wH
|
136
|
-
VNOmznu212c08M3oeYjeXW4wDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUA
|
137
|
-
A4IBAQAvJBfPug+ixGL/zWUnKMweV80atZXMjHJEn4mOE+iUkCNONLImMMt6MXJy
|
138
|
-
snJViL1gL5xMrka6A62PLLsVkl79kxDDbzXMPfGt5/mB9L7CMpyzaID0acDii3rs
|
139
|
-
ZwT3Wxpnate6wowN4zpmXgpCpTDGbxjuVRiOArsjQblerhfxnD/UAieZ1IWozIAN
|
140
|
-
s6SVms/TuOB+bODUr06ITxBkDJhizOJxjsXRIAtwZvvrH4qGjJz5qFcPb3nz4Txw
|
141
|
-
swU8X6yvbtqF+q4aAKPA6ZydnGZFQSoSzNJtcF28T1ItxEHN3+xyQqXpTgFviiuL
|
142
|
-
277LaAl9YUFFnSgeh7GiFitWJPfD
|
143
|
-
-----END CERTIFICATE-----"
|
144
|
-
@danskecertparams = {
|
145
|
-
bank: :danske,
|
146
|
-
command: :create_certificate,
|
147
|
-
customer_id: 'ABC123',
|
148
|
-
environment: 'customertest',
|
149
|
-
key_generator_type: 'software',
|
150
|
-
encryption_cert_pkcs10_plain: encryptpkcsplain,
|
151
|
-
signing_cert_pkcs10_plain: signingpkcsplain,
|
152
|
-
cert_plain: danskebankencryptplain,
|
153
|
-
pin: '1234'
|
154
|
-
}
|
155
7
|
|
8
|
+
# Get params hashes from fixtures for different banks and for different request types
|
9
|
+
@nordea_generic_params = nordea_generic_params
|
10
|
+
@nordea_cert_params = nordea_cert_params
|
11
|
+
|
12
|
+
@danske_cert_params = danske_cert_params
|
13
|
+
|
14
|
+
# Namespaces
|
15
|
+
@cor = 'http://bxd.fi/CorporateFileService'
|
16
|
+
|
17
|
+
# Create an observer to fake sending requests to bank
|
156
18
|
observer = Class.new {
|
157
19
|
def notify(operation_name, builder, globals, locals)
|
158
20
|
@operation_name = operation_name
|
159
21
|
@builder = builder
|
160
22
|
@globals = globals
|
161
23
|
@locals = locals
|
162
|
-
|
163
|
-
HTTPI::Response.new(200,
|
164
|
-
{ "Reponse is actually" => "the request, w0000t" },
|
165
|
-
locals[:xml])
|
24
|
+
HTTPI::Response.new(200, { "Reponse is actually" => "the request, w0000t" }, locals[:xml])
|
166
25
|
end
|
167
26
|
}.new
|
168
27
|
|
169
28
|
Savon.observers << observer
|
170
29
|
end
|
171
30
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@danskecertparams) }
|
31
|
+
test "should initialize class" do
|
32
|
+
assert Sepa::Client.new
|
176
33
|
end
|
177
34
|
|
178
|
-
|
179
|
-
|
180
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@params) }
|
35
|
+
test "should initialize with attributes" do
|
36
|
+
assert Sepa::Client.new @nordea_generic_params
|
181
37
|
end
|
182
38
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@certparams) }
|
39
|
+
test "should set attributes" do
|
40
|
+
a = Sepa::Client.new
|
41
|
+
assert a.attributes @nordea_generic_params
|
187
42
|
end
|
188
43
|
|
189
|
-
|
190
|
-
|
44
|
+
test "should be valid with required params" do
|
45
|
+
sepa = Sepa::Client.new @danske_cert_params
|
46
|
+
assert sepa.valid?, sepa.errors.messages
|
191
47
|
end
|
192
48
|
|
193
|
-
|
194
|
-
|
49
|
+
test "should not be valid with invalid bank" do
|
50
|
+
@nordea_generic_params[:bank] = :royal_bank_of_skopje
|
51
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
52
|
+
refute sepa.valid?, sepa.errors.messages
|
195
53
|
end
|
196
54
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
end
|
55
|
+
test "banks supported commands" do
|
56
|
+
@nordea_cert_params[:bank] = :danske
|
57
|
+
@nordea_cert_params[:command] = :get_certificate
|
58
|
+
sepa = Sepa::Client.new @nordea_cert_params
|
59
|
+
refute sepa.valid?, sepa.errors.messages
|
203
60
|
end
|
204
61
|
|
205
|
-
|
62
|
+
test "private keys are checked" do
|
206
63
|
wrong_pks = ['Im not a key', :leppakerttu, nil]
|
207
64
|
|
208
65
|
wrong_pks.each do |wrong_pk|
|
209
|
-
@
|
210
|
-
|
66
|
+
@nordea_generic_params[:private_key] = wrong_pk
|
67
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
68
|
+
refute sepa.valid?, sepa.errors.messages
|
211
69
|
end
|
212
70
|
end
|
213
71
|
|
214
|
-
|
72
|
+
test "certificates are checked" do
|
215
73
|
wrong_certs = ['Im not a cert', 99, :leppakerttu, nil]
|
216
74
|
|
217
75
|
wrong_certs.each do |wrong_cert|
|
218
|
-
@
|
219
|
-
|
76
|
+
@nordea_generic_params[:cert] = wrong_cert
|
77
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
78
|
+
refute sepa.valid?, sepa.errors.messages
|
220
79
|
end
|
221
80
|
end
|
222
81
|
|
223
|
-
|
224
|
-
|
225
|
-
nil]
|
226
|
-
|
227
|
-
wrong_commands.each do |wrong_command|
|
228
|
-
@params[:command] = wrong_command
|
229
|
-
|
230
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@params) }
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
def test_should_raise_error_if_customer_id_wrong_or_missing
|
235
|
-
wrong_ids = ["I'm a way too long a string and probably also not valid", nil]
|
82
|
+
test "customer id is correct" do
|
83
|
+
wrong_ids = ["a"*17, nil]
|
236
84
|
|
237
85
|
wrong_ids.each do |wrong_id|
|
238
|
-
@
|
239
|
-
|
240
|
-
|
86
|
+
@nordea_generic_params[:customer_id] = wrong_id
|
87
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
88
|
+
refute sepa.valid?, sepa.errors.messages
|
89
|
+
assert_includes sepa.errors.messages.to_s, CUSTOMER_ID_ERROR_MESSAGE
|
241
90
|
end
|
242
91
|
end
|
243
92
|
|
244
|
-
|
245
|
-
wrong_envs = ["not proper", 5, :protuction
|
93
|
+
test "environment is checked" do
|
94
|
+
wrong_envs = ["not proper", 5, :protuction]
|
246
95
|
|
247
96
|
wrong_envs.each do |wrong_env|
|
248
|
-
@
|
249
|
-
|
250
|
-
|
97
|
+
@nordea_generic_params[:environment] = wrong_env
|
98
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
99
|
+
refute sepa.valid?, sepa.errors.messages
|
100
|
+
assert_includes sepa.errors.messages.to_s, ENVIRONMENT_ERROR_MESSAGE
|
251
101
|
end
|
252
102
|
end
|
253
103
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
wrong_statuses = ["ready", 'steady', 5, :nipsu]
|
104
|
+
test 'environment defaults to production' do
|
105
|
+
@nordea_generic_params.delete :environment
|
106
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
107
|
+
assert sepa.environment == 'PRODUCTION'
|
108
|
+
assert sepa.valid?
|
109
|
+
end
|
261
110
|
|
262
|
-
|
263
|
-
|
111
|
+
test "status values are checked" do
|
112
|
+
wrong_statuses = ["ready", 'steady', 5, :nipsu]
|
264
113
|
|
265
|
-
|
266
|
-
|
114
|
+
wrong_statuses.each do |wrong_status|
|
115
|
+
@nordea_generic_params[:command] = :download_file_list
|
116
|
+
@nordea_generic_params[:status] = wrong_status
|
117
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
118
|
+
refute sepa.valid?, sepa.errors.messages
|
267
119
|
end
|
268
120
|
end
|
269
121
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
commands.each do |command|
|
274
|
-
@params[:command] = command
|
122
|
+
test "should not be valid without target id" do
|
123
|
+
wrong_ids = ["ready"*81, nil]
|
124
|
+
@nordea_generic_params[:command] = :upload_file
|
275
125
|
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@params) }
|
282
|
-
end
|
126
|
+
wrong_ids.each do |wrong_id|
|
127
|
+
@nordea_generic_params[:target_id] = wrong_id
|
128
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
129
|
+
refute sepa.valid?, sepa.errors.messages
|
130
|
+
assert_includes sepa.errors.messages.to_s, TARGET_ID_ERROR_MESSAGE
|
283
131
|
end
|
284
132
|
end
|
285
133
|
|
286
|
-
|
134
|
+
test "language values are valid" do
|
287
135
|
wrong_langs = ["Joo", 7, :protuction]
|
288
136
|
|
289
137
|
wrong_langs.each do |wrong_lang|
|
290
|
-
@
|
291
|
-
|
292
|
-
|
138
|
+
@nordea_generic_params[:language] = wrong_lang
|
139
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
140
|
+
refute sepa.valid?, sepa.errors.messages
|
293
141
|
end
|
294
142
|
end
|
295
143
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
commands.each do |command|
|
300
|
-
@params[:command] = command
|
301
|
-
|
302
|
-
wrong_types = ["kalle"*41, nil]
|
303
|
-
|
304
|
-
wrong_types.each do |wrong_type|
|
305
|
-
@params[:file_type] = wrong_type
|
144
|
+
test "file type is checked" do
|
145
|
+
wrong_types = ["kalle"*36, nil]
|
306
146
|
|
307
|
-
|
147
|
+
wrong_types.each do |wrong_type|
|
148
|
+
[:upload_file, :download_file_list].each do |command|
|
149
|
+
@nordea_generic_params[:command] = command
|
150
|
+
@nordea_generic_params[:file_type] = wrong_type
|
151
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
152
|
+
refute sepa.valid?, sepa.errors.messages
|
153
|
+
assert_includes sepa.errors.messages.to_s, FILE_TYPE_ERROR_MESSAGE
|
308
154
|
end
|
309
155
|
end
|
310
156
|
end
|
311
157
|
|
312
|
-
|
313
|
-
@
|
314
|
-
@
|
158
|
+
test "content is required for upload file" do
|
159
|
+
@nordea_generic_params[:command] = :upload_file
|
160
|
+
@nordea_generic_params.delete(:content)
|
161
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
162
|
+
refute sepa.valid?, sepa.errors.messages
|
163
|
+
assert_includes sepa.errors.messages.to_s, CONTENT_ERROR_MESSAGE
|
164
|
+
end
|
315
165
|
|
316
|
-
|
166
|
+
test 'file reference is required for download file' do
|
167
|
+
@nordea_generic_params.delete :file_reference
|
168
|
+
sepa = Sepa::Client.new @nordea_generic_params
|
169
|
+
refute sepa.valid?, sepa.errors.messages
|
170
|
+
assert_includes sepa.errors.messages.to_s, FILE_REFERENCE_ERROR_MESSAGE
|
317
171
|
end
|
318
172
|
|
319
|
-
# The response from savon will be the request to check that a proper request
|
320
|
-
# was made in the following four tests
|
173
|
+
# # The response from savon will be the request to check that a proper request
|
174
|
+
# # was made in the following four tests
|
321
175
|
def test_should_send_proper_request_with_get_user_info
|
322
|
-
|
323
|
-
|
176
|
+
@nordea_generic_params[:command] = :get_user_info
|
177
|
+
client = Sepa::Client.new(@nordea_generic_params)
|
178
|
+
response = client.send_request
|
324
179
|
|
325
|
-
|
180
|
+
assert response.soap.at_css('cor|getUserInfoin', cor: @cor)
|
326
181
|
|
327
|
-
Dir.chdir(
|
182
|
+
Dir.chdir(SCHEMA_PATH) do
|
328
183
|
xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
|
329
|
-
assert xsd.valid?(
|
184
|
+
assert xsd.valid?(response.soap)
|
330
185
|
end
|
331
186
|
end
|
332
187
|
|
333
188
|
def test_should_send_proper_request_with_download_file_list
|
334
|
-
@
|
335
|
-
client = Sepa::Client.new(@
|
336
|
-
response = client.
|
189
|
+
@nordea_generic_params[:command] = :download_file_list
|
190
|
+
client = Sepa::Client.new(@nordea_generic_params)
|
191
|
+
response = client.send_request
|
337
192
|
|
338
|
-
|
193
|
+
assert response.soap.at_css('cor|downloadFileListin', cor: @cor)
|
339
194
|
|
340
|
-
Dir.chdir(
|
195
|
+
Dir.chdir(SCHEMA_PATH) do
|
341
196
|
xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
|
342
|
-
assert xsd.valid?(
|
197
|
+
assert xsd.valid?(response.soap)
|
343
198
|
end
|
344
199
|
end
|
345
200
|
|
346
201
|
def test_should_send_proper_request_with_download_file
|
347
|
-
@
|
348
|
-
client = Sepa::Client.new(@
|
349
|
-
response = client.
|
202
|
+
@nordea_generic_params[:command] = :download_file
|
203
|
+
client = Sepa::Client.new(@nordea_generic_params)
|
204
|
+
response = client.send_request
|
350
205
|
|
351
|
-
|
206
|
+
assert response.soap.at_css('cor|downloadFilein', cor: @cor)
|
352
207
|
|
353
|
-
Dir.chdir(
|
208
|
+
Dir.chdir(SCHEMA_PATH) do
|
354
209
|
xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
|
355
|
-
assert xsd.valid?(
|
210
|
+
assert xsd.valid?(response.soap)
|
356
211
|
end
|
357
212
|
end
|
358
213
|
|
359
214
|
def test_should_send_proper_request_with_upload_file
|
360
|
-
@
|
361
|
-
client = Sepa::Client.new(@
|
362
|
-
response = client.
|
215
|
+
@nordea_generic_params[:command] = :upload_file
|
216
|
+
client = Sepa::Client.new(@nordea_generic_params)
|
217
|
+
response = client.send_request
|
363
218
|
|
364
|
-
|
219
|
+
assert response.soap.at_css('cor|uploadFilein', cor: @cor)
|
365
220
|
|
366
|
-
Dir.chdir(
|
221
|
+
Dir.chdir(SCHEMA_PATH) do
|
367
222
|
xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
|
368
|
-
assert xsd.valid?(
|
223
|
+
assert xsd.valid?(response.soap)
|
369
224
|
end
|
370
225
|
end
|
371
226
|
|
372
227
|
def test_should_initialize_with_proper_cert_params
|
373
|
-
assert Sepa::Client.new(@
|
228
|
+
assert Sepa::Client.new(@nordea_cert_params)
|
374
229
|
end
|
375
230
|
|
376
231
|
def test_should_send_proper_request_with_get_certificate
|
377
|
-
client = Sepa::Client.new(@
|
378
|
-
response = client.
|
232
|
+
client = Sepa::Client.new(@nordea_cert_params)
|
233
|
+
response = client.send_request
|
379
234
|
|
380
|
-
|
235
|
+
assert response.soap.at_css('cer|getCertificatein')
|
381
236
|
|
382
|
-
Dir.chdir(
|
237
|
+
Dir.chdir(SCHEMA_PATH) do
|
383
238
|
xsd = Nokogiri::XML::Schema(IO.read('soap.xsd'))
|
384
|
-
assert xsd.valid?(
|
239
|
+
assert xsd.valid?(response.soap)
|
385
240
|
end
|
386
241
|
end
|
387
242
|
|
388
|
-
def
|
389
|
-
@
|
390
|
-
@
|
243
|
+
def test_should_check_signing_cert_request_with_create_certificate
|
244
|
+
@danske_cert_params[:command] = :create_certificate
|
245
|
+
@danske_cert_params.delete(:signing_cert_pkcs10)
|
391
246
|
|
392
|
-
|
247
|
+
sepa = Sepa::Client.new(@danske_cert_params)
|
248
|
+
refute sepa.valid?
|
249
|
+
assert_includes sepa.errors.messages.to_s, SIGNING_CERT_REQUEST_ERROR_MESSAGE
|
393
250
|
end
|
394
251
|
|
395
|
-
def
|
396
|
-
@
|
397
|
-
@
|
398
|
-
@danskecertparams.delete(:signing_cert_pkcs10_path)
|
252
|
+
def test_should_check_encryption_cert_request_with_create_certificate
|
253
|
+
@danske_cert_params[:command] = :create_certificate
|
254
|
+
@danske_cert_params.delete(:encryption_cert_pkcs10)
|
399
255
|
|
400
|
-
|
256
|
+
sepa = Sepa::Client.new(@danske_cert_params)
|
257
|
+
refute sepa.valid?
|
258
|
+
assert_includes sepa.errors.messages.to_s, ENCRYPTION_CERT_REQUEST_ERROR_MESSAGE
|
401
259
|
end
|
402
260
|
|
403
|
-
def
|
404
|
-
@
|
405
|
-
@
|
406
|
-
@danskecertparams.delete(:encryption_cert_pkcs10_path)
|
261
|
+
def test_should_check_pin_with_create_certificate
|
262
|
+
@danske_cert_params[:command] = :create_certificate
|
263
|
+
@danske_cert_params.delete(:pin)
|
407
264
|
|
408
|
-
|
265
|
+
sepa = Sepa::Client.new(@danske_cert_params)
|
266
|
+
refute sepa.valid?
|
267
|
+
assert_includes sepa.errors.messages.to_s, PIN_ERROR_MESSAGE
|
409
268
|
end
|
410
269
|
|
411
|
-
def
|
412
|
-
@
|
413
|
-
@
|
270
|
+
def test_should_check_encryption_cert_with_create_certificate
|
271
|
+
@danske_cert_params[:command] = :create_certificate
|
272
|
+
@danske_cert_params.delete(:enc_cert)
|
414
273
|
|
415
|
-
|
274
|
+
sepa = Sepa::Client.new(@danske_cert_params)
|
275
|
+
refute sepa.valid?
|
276
|
+
assert_includes sepa.errors.messages.to_s, ENCRYPTION_CERT_ERROR_MESSAGE
|
416
277
|
end
|
417
278
|
|
418
|
-
def test_should_raise_error_if_cert_plain_and_cert_path_missing_with_create_certificate
|
419
|
-
@danskecertparams[:command] = :create_certificate
|
420
|
-
@danskecertparams.delete(:cert_plain)
|
421
|
-
@danskecertparams.delete(:cert_path)
|
422
|
-
|
423
|
-
assert_raises(ArgumentError) { Sepa::Client.new(@danskecertparams) }
|
424
|
-
end
|
425
279
|
end
|