nordea-filetransfer 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: