nordea-filetransfer 0.2.1

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.
@@ -0,0 +1,92 @@
1
+ Bag Attributes
2
+ localKeyID: 4B 45 59 34 64 64 32 36 62 64 31 30 30 30 30 34 65 31 38 00
3
+ subject=/C=SE/CN=Nordea Demo Certificate/SN=Certificate/GN=Nordea Demo/serialNumber=009557243772
4
+ issuer=/C=SE/O=Nordea Bank AB (publ)/CN=Nordea role-certificates CA 01/serialNumber=516406-0120
5
+ -----BEGIN CERTIFICATE-----
6
+ MIID+jCCAuKgAwIBAgIEASJt3DANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJT
7
+ RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMScwJQYDVQQDEx5Ob3Jk
8
+ ZWEgcm9sZS1jZXJ0aWZpY2F0ZXMgQ0EgMDExFDASBgNVBAUTCzUxNjQwNi0wMTIw
9
+ MB4XDTExMDUxNzEyMzQzNVoXDTEzMDUxNzEyMzQzNVowcjELMAkGA1UEBhMCU0Ux
10
+ IDAeBgNVBAMMF05vcmRlYSBEZW1vIENlcnRpZmljYXRlMRQwEgYDVQQEDAtDZXJ0
11
+ aWZpY2F0ZTEUMBIGA1UEKgwLTm9yZGVhIERlbW8xFTATBgNVBAUTDDAwOTU1NzI0
12
+ Mzc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAkR32vnJetMM5pG7VL1lO
13
+ hREmPr6QIVNTkmTe0gQWiL923Jjti2wY/QCbssAKJUQK0apgbHWpTI3ZBjuuVvcT
14
+ 4tZaiYtP6sRy8TZqBv2OxDkDf08eErW9nkevOMvvgI0NNSO5qwif2C4+G+n8+AY3
15
+ 4QNpbuA9hWD65wImutrkepsCAwEAAaOCASAwggEcMAkGA1UdEwQCMAAwEQYDVR0O
16
+ BAoECEHToLxoFFavMBMGA1UdIAQMMAowCAYGKoVwRwEDMBMGA1UdIwQMMAqACEIF
17
+ jfLBeTpRMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Au
18
+ bm9yZGVhLnNlL1JDQTAxMA4GA1UdDwEB/wQEAwIFoDCBiAYDVR0fBIGAMH4wfKB6
19
+ oHiGdmxkYXA6Ly9sZGFwLm5iLnNlL2NuPU5vcmRlYSUyMHJvbGUtY2VydGlmaWNh
20
+ dGVzJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNF
21
+ P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAAAp
22
+ 0wveJnANl6aA/fOKFGwDXkkLYlnX+dlP69YAIWVbpl2zkSbc/KJD8qDzpNX1mT0r
23
+ 0ECpyc+9Tn2bzvcZnw8Gj5jav/ePQhZPBavaELEBI7HTIDtFI6yDQSAjsHkgsvo2
24
+ 7cFnAJMIXlbODeWQlUL2rR8A5AcMBEww0a/NbL7g4wU/ysfSeTWUyPpVqngVDCSd
25
+ FrVpNJijVOF+WdDNfOLl8o8JuoJ1tU0NrdoeIpWtzj1WcEOcbFE87pe2iBdnWeIT
26
+ NjufVlr78x7lheXr1zOOCPn4K+mXhm1/PkyMBc+7E0e2upolksK3q6CCW3VbK68p
27
+ LNnwuUPhdDiQO98rdW8=
28
+ -----END CERTIFICATE-----
29
+ Bag Attributes
30
+ localKeyID: 4B 45 59 34 64 64 32 36 62 64 32 30 30 30 30 32 63 38 38 00
31
+ subject=/C=SE/CN=Nordea Demo Certificate/SN=Certificate/GN=Nordea Demo/serialNumber=009557243772
32
+ issuer=/C=SE/O=Nordea Bank AB (publ)/CN=Nordea role-certificates CA 01/serialNumber=516406-0120
33
+ -----BEGIN CERTIFICATE-----
34
+ MIID+jCCAuKgAwIBAgIEASJt3TANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJT
35
+ RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMScwJQYDVQQDEx5Ob3Jk
36
+ ZWEgcm9sZS1jZXJ0aWZpY2F0ZXMgQ0EgMDExFDASBgNVBAUTCzUxNjQwNi0wMTIw
37
+ MB4XDTExMDUxNzEyMzQzNVoXDTEzMDUxNzEyMzQzNVowcjELMAkGA1UEBhMCU0Ux
38
+ IDAeBgNVBAMMF05vcmRlYSBEZW1vIENlcnRpZmljYXRlMRQwEgYDVQQEDAtDZXJ0
39
+ aWZpY2F0ZTEUMBIGA1UEKgwLTm9yZGVhIERlbW8xFTATBgNVBAUTDDAwOTU1NzI0
40
+ Mzc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAm7v1bIMiwb5YO/9uQV9q
41
+ ptloVeq2gslA5xCFesUgPq5DX6X17VwYU1MNyUVIZ/+UlYjd3HxqrKvgOILfZJO+
42
+ Rp5A5sdUZo86JN3Ttxh7l65cRgprA2IKInSkEYaFB+ur2TxFbTV4Abp4g0pm7fks
43
+ 73J+szNeYPsi5usrhfoRfDMCAwEAAaOCASAwggEcMAkGA1UdEwQCMAAwEQYDVR0O
44
+ BAoECEALP/E+/hw4MBMGA1UdIAQMMAowCAYGKoVwRwEDMBMGA1UdIwQMMAqACEIF
45
+ jfLBeTpRMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Au
46
+ bm9yZGVhLnNlL1JDQTAxMA4GA1UdDwEB/wQEAwIGQDCBiAYDVR0fBIGAMH4wfKB6
47
+ oHiGdmxkYXA6Ly9sZGFwLm5iLnNlL2NuPU5vcmRlYSUyMHJvbGUtY2VydGlmaWNh
48
+ dGVzJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNF
49
+ P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAFvg
50
+ pxTEaEnPZpcZ8sybkzCESa50sNV4KfFyozz2pkCa9cp1+VprmvpWMsAVBCTRGNc/
51
+ 0fs5rTf+RVsfy04kGvI5s7+Jk/778mdSPTjOYIqmHidejlCKN6BcwBXmoS2Huypq
52
+ FetDDK/IrLqd9pKpUQLCmeNbz/qqT8YOpE313XkYFvEV/PmSa4JKtJjSmuLykn0t
53
+ BHWtqEEN6OuwP/stXdHFuXPbhacQbA3JrOHDoYr0oUG9aFj11pyF6r2UjNSxP2wL
54
+ SrfAkTELQJZIFZ59NGZBgd/52husYLbwmlHNrIcWG1OFTQnHFOQ+FPiAyX9Tk7Ep
55
+ 8vllBrRoKeG3HLakr/c=
56
+ -----END CERTIFICATE-----
57
+ Bag Attributes
58
+ localKeyID: 4B 45 59 34 64 64 32 36 62 64 31 30 30 30 30 34 65 31 38 00
59
+ Key Attributes: <No Attributes>
60
+ -----BEGIN RSA PRIVATE KEY-----
61
+ MIICXAIBAAKBgQCRHfa+cl60wzmkbtUvWU6FESY+vpAhU1OSZN7SBBaIv3bcmO2L
62
+ bBj9AJuywAolRArRqmBsdalMjdkGO65W9xPi1lqJi0/qxHLxNmoG/Y7EOQN/Tx4S
63
+ tb2eR684y++AjQ01I7mrCJ/YLj4b6fz4BjfhA2lu4D2FYPrnAia62uR6mwIDAQAB
64
+ AoGAMTODkRad3ZPDW2johuE0qhEicmuR2nqx/xSMJ5CTQ1IHLsv63iaMYltubrCF
65
+ wBTNxkCJ6LwL5pTBXEen2Hx1FRJRrW2xnc/WcbGZ+wM40NL3El07mhpUT1wMIZYK
66
+ 4PwYhYoj8wyGkCKJDari948ZR2b43G+2xgbf0qaf0Xg97mECQQCdhjlry0W96Xo1
67
+ PNqXRfM7Uemwpmg93nf+Wgx32FLCMQpMTGFTKO0rWbEK9AFxND6FBlKwFG/O77jo
68
+ i7g7DVltAkEA69Yc+fheaDu/oidcFVDVpedZkTfwQ6FI2IYBB61Jo6u2rXkGmqu5
69
+ LmHnTOS2aJQ4LHIYLBFsPJTdAk3o3MVnJwJAPL5dtiuUoT8/WPg2cs8OlHlp3CzP
70
+ VcxMCVFALZbFkwzGI9XwUdkeW/EiTE77n2O+GB3wFOZMl0fpzgLS8DKdoQJBAN1Q
71
+ D98wiX+tWjdUUmCae/P1eCMD6I++wfqXPk4y+yEB2itOoLjzH5N8Qq/xDZB0T4a+
72
+ BxsLupPbas9nx3euNA8CQD4a5BI25z05LrbyGc6RXCmRgBbuMh0sQ+zaY7ynDUKN
73
+ x6FRMfRYowZjojp/mZvd6G0hNpc+s+NsoxwT+CulAGc=
74
+ -----END RSA PRIVATE KEY-----
75
+ Bag Attributes
76
+ localKeyID: 4B 45 59 34 64 64 32 36 62 64 32 30 30 30 30 32 63 38 38 00
77
+ Key Attributes: <No Attributes>
78
+ -----BEGIN RSA PRIVATE KEY-----
79
+ MIICXQIBAAKBgQCbu/VsgyLBvlg7/25BX2qm2WhV6raCyUDnEIV6xSA+rkNfpfXt
80
+ XBhTUw3JRUhn/5SViN3cfGqsq+A4gt9kk75GnkDmx1Rmjzok3dO3GHuXrlxGCmsD
81
+ YgoidKQRhoUH66vZPEVtNXgBuniDSmbt+Szvcn6zM15g+yLm6yuF+hF8MwIDAQAB
82
+ AoGAVWaugJItJjfepRA/AyRzFQpWF/99lJ0OtWeu+xNMynK/yZz2DvMY9+Csx7nx
83
+ qe5TKemDWNz1lrkuXW8PWFVY2v4BLp+F7dAfvDxCAa+/v23jT9ago0xhu/l0j+Zo
84
+ 2/iAH7phewPZD3zqEaS3p0iCX+6wWIKzjISWczfm6PtSnXECQQCubsR0CdVIDGf0
85
+ V/NNw91Zggfu2K9tx9stOsMdrYhpPo8TRdxLwS+vyB+nl+l4WBCyrKt9ysAaYYc0
86
+ EeKrxfnbAkEA5I7O9S7ZSwOfhZfm2plq3ir8XkiukWc1p6RGzVvUb8VH3OZeWasr
87
+ 82KXzPCuhnm7pVPMfnMwGk+W7n8HtJYyiQJAGDUJEG146tnF53P5MPaYll5kSXJK
88
+ zjppIVrBTzIQ90IWSv9r9htmScfFFNYRMYFPN+yclAV6KW8Ve1VsFpiP9wJBALd8
89
+ Ym95dd6AAR/Z6+4QfjfvoHz8spBuoCd+fYy9rRUx9thDZPltrrIMs7tGeYXh0qAO
90
+ XzwgszxcKto6xu/WKKkCQQCY6bDuLp0+JlOk/8rrlmLVrItqTJKvPQlV1eCR0CUy
91
+ ptFV8AgAwhcV5EVBh6sW3juLokNGkK7OFOZK1xP0xifp
92
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,122 @@
1
+ require "spec_helper"
2
+
3
+ describe Nordea::FileTransfer::Client do
4
+ subject :client do
5
+ Savon.configure do |config|
6
+ config.log = false
7
+ end
8
+ Nordea::FileTransfer::Client.new(
9
+ :cert_file => cert_file,
10
+ :private_key_file => cert_file,
11
+ :sender_id => 11111111
12
+ )
13
+ end
14
+
15
+ let :cert_file do
16
+ File.expand_path('../../../certs/WSNDEA1234.pem', __FILE__)
17
+ end
18
+
19
+ describe "GetUserInfo" do
20
+ it "should send a request and return response" do
21
+ response = VCR.use_cassette('get_user_info') do
22
+ client.get_user_info do |header, request|
23
+ header.receiver_id = 123456789
24
+ request.customer_id = 162355330
25
+ end
26
+ end
27
+ response.application_response.user_file_types.size.should be > 0
28
+ response.application_response.user_file_types.each do |user_file_type|
29
+ user_file_type.file_type_services.size.should be > 0
30
+ end
31
+ end
32
+ end
33
+
34
+ describe "DownloadFileList" do
35
+ it "should send a request and return response" do
36
+ response = VCR.use_cassette('download_file_list') do
37
+ client.download_file_list do |header, request|
38
+ header.receiver_id = 123456789
39
+ request.customer_id = 162355330
40
+ request.status = "ALL"
41
+ request.target_id = "11111111A1"
42
+ request.file_type = "NDCORPAYL"
43
+ end
44
+ end
45
+ response.application_response.file_descriptors.size.should be > 0
46
+ end
47
+ end
48
+
49
+ describe "DownloadFile" do
50
+ # http://www.nordea.fi/sitemod/upload/root/fi_org/liite/e/yritys/pdf/kurssi_aineisto.pdf
51
+ it "send a request and return response with exchange rates" do
52
+ response = VCR.use_cassette('download_file') do
53
+ client.download_file do |header, request|
54
+ header.receiver_id = 123456789
55
+ request.customer_id = 162355330
56
+ request.file_references = ["1320120312210394"]
57
+ request.target_id = "11111111A1"
58
+ request.software_id = "Ruby"
59
+ request.file_type = "VKEUR"
60
+ end
61
+ end
62
+ response.application_response.content.should include("VK01")
63
+ end
64
+
65
+ it "should raise error #29 when file references are not present" do
66
+ lambda {
67
+ response = VCR.use_cassette('download_file_error') do
68
+ client.download_file do |header, request|
69
+ header.receiver_id = 123456789
70
+ request.customer_id = 162355330
71
+ request.target_id = "11111111A1"
72
+ request.software_id = "Ruby"
73
+ request.file_type = "VKEUR"
74
+ end
75
+ end
76
+ }.should raise_error(
77
+ Nordea::FileTransfer::Error,
78
+ "Invalid parameters: At least one FileReference required for downloading (#29)"
79
+ )
80
+ end
81
+ end
82
+
83
+ # http://www.nordea.fi/sitemod/upload/root/fi_org/liite/ApplicationRequest_UploadFile.xml
84
+ describe "UploadFile" do
85
+ it "should upload file and return status OK" do
86
+ pending "Couldn't find a good test case"
87
+ response = VCR.use_cassette('upload_file') do
88
+ response = client.upload_file do |header, request|
89
+ header.receiver_id = 11111111
90
+ request.customer_id = 679155330
91
+ request.target_id = "11111111A1"
92
+ # request.service_id = "111111111" #"NDEAFIHHXXX-FI1-EUR-111111111"
93
+ request.file_type = "CNFTC000S"
94
+ request.user_filename = "T.TXT"
95
+ request.content = Base64.decode64("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhLS1TRVBBIENUIGFuZCBvdGhlciBwYXltZW50cyBzYW1wbGUgZmlsZSwgZWRpdGVkIGJ5IE5vcmRlYSBKdWx5IDIwMDkgSksgLS0+DQo8RG9jdW1lbnQgeG1sbnM9InVybjppc286c3RkOmlzbzoyMDAyMjp0ZWNoOnhzZDpwYWluLjAwMS4wMDEuMDIiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOmlzbzpzdGQ6aXNvOjIwMDIyOnRlY2g6eHNkOnBhaW4uMDAxLjAwMS4wMiYjeEQ7JiN4QTtwYWluLjAwMS4wMDEuMDIueHNkIj4NCiAgPHBhaW4uMDAxLjAwMS4wMj4NCiAgICA8R3JwSGRyPg0KICAgICAgPE1zZ0lkPjIwMTAxMDIxLTAwMDAwMDI8L01zZ0lkPg0KICAgICAgPENyZUR0VG0+MjAxMC0wOS0wNlQxMDozMDowMDwvQ3JlRHRUbT4NCiAgICAgIDxCdGNoQm9va2c+dHJ1ZTwvQnRjaEJvb2tnPg0KICAgICAgPE5iT2ZUeHM+MTwvTmJPZlR4cz4NCiAgICAgIDxDdHJsU3VtPjEwMC4wMTwvQ3RybFN1bT4NCiAgICAgIDxHcnBnPk1JWEQ8L0dycGc+DQogICAgICA8SW5pdGdQdHk+DQogICAgICAgIDxObT5Hcm91cCBGaW5hbmNlPC9ObT4NCiAgICAgICAgPFBzdGxBZHI+DQogICAgICAgICAgPEFkckxpbmU+QWxla3NhbnRlcmlua2F0dSAyMzwvQWRyTGluZT4NCiAgICAgICAgICA8QWRyTGluZT5GSS0wMDEwMCBIZWxzaW5raTwvQWRyTGluZT4NCiAgICAgICAgICA8Q3RyeT5GSTwvQ3RyeT4NCiAgICAgICAgPC9Qc3RsQWRyPg0KICAgICAgPC9Jbml0Z1B0eT4NCiAgICA8L0dycEhkcj4NCiAgICA8IS0tDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpFbnNpbW3DpGluZW4gUGF5bWVudCBJbmZvcm1hdGlvbiAtZXLDpA0KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLS0+DQogICAgPFBtdEluZj4NCiAgICAgIDxQbXRJbmZJZD4yMDEwMTAyMS0xMjM0NTYtMDI8L1BtdEluZklkPg0KICAgICAgPFBtdE10ZD5UUkY8L1BtdE10ZD4NCiAgICAgIDxSZXFkRXhjdG5EdD4yMDEwLTA5LTI0PC9SZXFkRXhjdG5EdD4NCiAgICAgIDxEYnRyPg0KICAgICAgICA8Tm0+T3kgQ29tcGFueSBBYiA8L05tPg0KICAgICAgICA8UHN0bEFkcj4NCiAgICAgICAgICA8QWRyTGluZT5NYW5uZXJoZWltaW50aWUgNjY8L0FkckxpbmU+DQogICAgICAgICAgPEFkckxpbmU+RkktMDAyNjAgSGVsc2lua2k8L0FkckxpbmU+DQogICAgICAgICAgPEN0cnk+Rkk8L0N0cnk+DQogICAgICAgIDwvUHN0bEFkcj4NCiAgICAgICAgPElkPg0KICAgICAgICAgIDxPcmdJZD4NCiAgICAgICAgICAgIDxCa1B0eUlkPjA5ODc2NTQzMjE8L0JrUHR5SWQ+DQogICAgICAgICAgPC9PcmdJZD4NCiAgICAgICAgPC9JZD4NCiAgICAgIDwvRGJ0cj4NCiAgICAgIDxEYnRyQWNjdD4NCiAgICAgICAgPElkPg0KICAgICAgICAgIDxJQkFOPkZJODUyOTUwMTgwMDAzMDU3NDwvSUJBTj4NCiAgICAgICAgPC9JZD4NCiAgICAgIDwvRGJ0ckFjY3Q+DQogICAgICA8RGJ0ckFndD4NCiAgICAgICAgPEZpbkluc3RuSWQ+DQogICAgICAgICAgPEJJQz5OREVBRklISDwvQklDPg0KICAgICAgICA8L0Zpbkluc3RuSWQ+DQogICAgICA8L0RidHJBZ3Q+DQogICAgICA8Q2hyZ0JyPlNMRVY8L0NocmdCcj4NCiAgICAgIDwhLS0NCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCjEuIFNFUEEgVmlpdHRlZWxsaW5lbiBTRVBBLXRpbGlzaWlydG8NCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0tPg0KICAgICAgPENkdFRyZlR4SW5mPg0KICAgICAgICA8UG10SWQ+DQogICAgICAgICAgPEVuZFRvRW5kSWQ+MjAwOTA4MjEtRTAwMDAwMjwvRW5kVG9FbmRJZD4NCiAgICAgICAgPC9QbXRJZD4NCiAgICAgICAgPEFtdD4NCiAgICAgICAgICA8SW5zdGRBbXQgQ2N5PSJFVVIiPjEwMC4wMTwvSW5zdGRBbXQ+DQogICAgICAgIDwvQW10Pg0KICAgICAgICA8Q2R0ckFndD4NCiAgICAgICAgICA8RmluSW5zdG5JZD4NCiAgICAgICAgICAgIDxCSUM+QkFOS0ZJSEg8L0JJQz4NCiAgICAgICAgICA8L0Zpbkluc3RuSWQ+DQogICAgICAgIDwvQ2R0ckFndD4NCiAgICAgICAgPENkdHI+DQogICAgICAgICAgPE5tPkNyZWRpdG9yIENvbXBhbnk8L05tPg0KICAgICAgICAgIDxQc3RsQWRyPg0KICAgICAgICAgICAgPEFkckxpbmU+TGlubmFua2F0dSAyMjwvQWRyTGluZT4NCiAgICAgICAgICAgIDxBZHJMaW5lPjIwMTAwIFR1cmt1PC9BZHJMaW5lPg0KICAgICAgICAgICAgPEN0cnk+Rkk8L0N0cnk+DQogICAgICAgICAgPC9Qc3RsQWRyPg0KICAgICAgICA8L0NkdHI+DQogICAgICAgIDxDZHRyQWNjdD4NCiAgICAgICAgICA8SWQ+DQogICAgICAgICAgICA8SUJBTj5GSTYzMjk1MDE4MDAwMjA1ODI8L0lCQU4+DQogICAgICAgICAgPC9JZD4NCiAgICAgICAgPC9DZHRyQWNjdD4NCiAgICAgICAgPFJtdEluZj4NCiAgICAgICAgICA8U3RyZD4NCiAgICAgICAgICAgIDxDZHRyUmVmSW5mPg0KICAgICAgICAgICAgICA8Q2R0clJlZlRwPg0KICAgICAgICAgICAgICAgIDxDZD5TQ09SPC9DZD4NCiAgICAgICAgICAgICAgPC9DZHRyUmVmVHA+DQogICAgICAgICAgICAgIDxDZHRyUmVmPjAwMDAwMDAwMDAwMDAwMDAwMTIzPC9DZHRyUmVmPg0KICAgICAgICAgICAgPC9DZHRyUmVmSW5mPg0KICAgICAgICAgIDwvU3RyZD4NCiAgICAgICAgPC9SbXRJbmY+DQogICAgICA8L0NkdFRyZlR4SW5mPg0KICAgIDwvUG10SW5mPg0KICA8L3BhaW4uMDAxLjAwMS4wMj4NCjwvRG9jdW1lbnQ+")
96
+ end
97
+ end
98
+ response.application_response.transaction_count.should == 1
99
+ response.response_header.response_code.should == "00"
100
+ response.response_header.response_text.should == "OK."
101
+ end
102
+
103
+ it "should raise error #23 when ServiceId is not present" do
104
+ lambda {
105
+ response = VCR.use_cassette('upload_file_error') do
106
+ response = client.upload_file do |header, request|
107
+ header.receiver_id = 123456789
108
+ request.customer_id = 162355330
109
+ request.target_id = "11111111A1"
110
+ # request.service_id = "111111111"
111
+ request.file_type = "CNFTC000S"
112
+ request.user_filename = "TEST.TXT"
113
+ request.content = "TEST"
114
+ end
115
+ end
116
+ }.should raise_error(
117
+ Nordea::FileTransfer::Error,
118
+ "Content processing error. Download feedback. (#23)"
119
+ )
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,35 @@
1
+ $:.unshift File.dirname(__FILE__) + '/../lib'
2
+
3
+ require "bundler/setup"
4
+ require "nordea/file_transfer"
5
+ require "vcr"
6
+ require "simplecov"
7
+ require "awesome_print"
8
+
9
+ SimpleCov.start
10
+
11
+ VCR.configure do |c|
12
+ c.cassette_library_dir = "spec/cassettes"
13
+ c.hook_into :fakeweb
14
+ c.ignore_localhost = true
15
+ c.default_cassette_options = { :record => :new_episodes }
16
+ end
17
+
18
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+ RSpec.configure do |config|
20
+ config.treat_symbols_as_metadata_keys_with_true_values = true
21
+ config.run_all_when_everything_filtered = true
22
+ config.filter_run :focus
23
+ config.extend VCR::RSpec::Macros
24
+ end
25
+
26
+ Savon.configure do |config|
27
+ config.pretty_print_xml = true
28
+ end
29
+
30
+ Nordea::FileTransfer.configure do |config|
31
+ config.language = "EN"
32
+ config.environment = "PRODUCTION"
33
+ config.user_agent = "Ruby"
34
+ config.software_id = "Ruby"
35
+ end
metadata ADDED
@@ -0,0 +1,294 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nordea-filetransfer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Edgars Beigarts
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ type: :development
16
+ name: rake
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.9.2.2
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: 0.9.2.2
29
+ prerelease: false
30
+ - !ruby/object:Gem::Dependency
31
+ type: :development
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '2.11'
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: '2.11'
45
+ prerelease: false
46
+ - !ruby/object:Gem::Dependency
47
+ type: :development
48
+ name: simplecov
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ type: :development
64
+ name: vcr
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ prerelease: false
78
+ - !ruby/object:Gem::Dependency
79
+ type: :development
80
+ name: fakeweb
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ prerelease: false
94
+ - !ruby/object:Gem::Dependency
95
+ type: :development
96
+ name: yard
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ prerelease: false
110
+ - !ruby/object:Gem::Dependency
111
+ type: :development
112
+ name: redcarpet
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ prerelease: false
126
+ - !ruby/object:Gem::Dependency
127
+ type: :development
128
+ name: awesome_print
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ prerelease: false
142
+ - !ruby/object:Gem::Dependency
143
+ type: :development
144
+ name: debugger
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ prerelease: false
158
+ - !ruby/object:Gem::Dependency
159
+ type: :runtime
160
+ name: activesupport
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '3.0'
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '3.0'
173
+ prerelease: false
174
+ - !ruby/object:Gem::Dependency
175
+ type: :runtime
176
+ name: savon
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ version: 1.0.0
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ~>
187
+ - !ruby/object:Gem::Version
188
+ version: 1.0.0
189
+ prerelease: false
190
+ - !ruby/object:Gem::Dependency
191
+ type: :runtime
192
+ name: virtus
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: 0.5.1
199
+ version_requirements: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ~>
203
+ - !ruby/object:Gem::Version
204
+ version: 0.5.1
205
+ prerelease: false
206
+ - !ruby/object:Gem::Dependency
207
+ type: :runtime
208
+ name: signer
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ~>
213
+ - !ruby/object:Gem::Version
214
+ version: 1.1.1
215
+ version_requirements: !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - ~>
219
+ - !ruby/object:Gem::Version
220
+ version: 1.1.1
221
+ prerelease: false
222
+ description: Ruby client for Nordea FileTransfer Web Services
223
+ email:
224
+ - edgars.beigarts@makit.lv
225
+ executables: []
226
+ extensions: []
227
+ extra_rdoc_files: []
228
+ files:
229
+ - lib/nordea/file_transfer/application_request.rb
230
+ - lib/nordea/file_transfer/application_response.rb
231
+ - lib/nordea/file_transfer/attributes.rb
232
+ - lib/nordea/file_transfer/client.rb
233
+ - lib/nordea/file_transfer/config.rb
234
+ - lib/nordea/file_transfer/error.rb
235
+ - lib/nordea/file_transfer/file_descriptor.rb
236
+ - lib/nordea/file_transfer/file_type_service.rb
237
+ - lib/nordea/file_transfer/request.rb
238
+ - lib/nordea/file_transfer/request_header.rb
239
+ - lib/nordea/file_transfer/response.rb
240
+ - lib/nordea/file_transfer/response_header.rb
241
+ - lib/nordea/file_transfer/user_file_type.rb
242
+ - lib/nordea/file_transfer/version.rb
243
+ - lib/nordea/file_transfer.rb
244
+ - lib/nordea-filetransfer.rb
245
+ - README.md
246
+ - LICENSE
247
+ - spec/cassettes/download_file.yml
248
+ - spec/cassettes/download_file_error.yml
249
+ - spec/cassettes/download_file_list.yml
250
+ - spec/cassettes/get_user_info.yml
251
+ - spec/cassettes/upload_file_error.yml
252
+ - spec/certs/WSNDEA1234.pem
253
+ - spec/nordea/file_transfer/client_spec.rb
254
+ - spec/spec_helper.rb
255
+ homepage:
256
+ licenses: []
257
+ post_install_message:
258
+ rdoc_options: []
259
+ require_paths:
260
+ - lib
261
+ required_ruby_version: !ruby/object:Gem::Requirement
262
+ none: false
263
+ requirements:
264
+ - - ! '>='
265
+ - !ruby/object:Gem::Version
266
+ segments:
267
+ - 0
268
+ version: '0'
269
+ hash: -1379709764222290832
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
+ none: false
272
+ requirements:
273
+ - - ! '>='
274
+ - !ruby/object:Gem::Version
275
+ segments:
276
+ - 0
277
+ version: '0'
278
+ hash: -1379709764222290832
279
+ requirements: []
280
+ rubyforge_project:
281
+ rubygems_version: 1.8.25
282
+ signing_key:
283
+ specification_version: 3
284
+ summary: Ruby client for Nordea FileTransfer Web Services
285
+ test_files:
286
+ - spec/cassettes/download_file.yml
287
+ - spec/cassettes/download_file_error.yml
288
+ - spec/cassettes/download_file_list.yml
289
+ - spec/cassettes/get_user_info.yml
290
+ - spec/cassettes/upload_file_error.yml
291
+ - spec/certs/WSNDEA1234.pem
292
+ - spec/nordea/file_transfer/client_spec.rb
293
+ - spec/spec_helper.rb
294
+ has_rdoc: