bank_link 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/mac_fields.yml ADDED
@@ -0,0 +1,109 @@
1
+ VK_SERVICE:
2
+ "1001":
3
+ - :VK_SERVICE
4
+ - :VK_VERSION
5
+ - :VK_SND_ID
6
+ - :VK_STAMP
7
+ - :VK_AMOUNT
8
+ - :VK_CURR
9
+ - :VK_ACC
10
+ - :VK_NAME
11
+ - :VK_REF
12
+ - :VK_MSG
13
+ "1002":
14
+ - :VK_SERVICE
15
+ - :VK_VERSION
16
+ - :VK_SND_ID
17
+ - :VK_STAMP
18
+ - :VK_AMOUNT
19
+ - :VK_CURR
20
+ - :VK_REF
21
+ - :VK_MSG
22
+ "1101":
23
+ - :VK_SERVICE
24
+ - :VK_VERSION
25
+ - :VK_SND_ID
26
+ - :VK_REC_ID
27
+ - :VK_STAMP
28
+ - :VK_T_NO
29
+ - :VK_AMOUNT
30
+ - :VK_CURR
31
+ - :VK_REC_ACC
32
+ - :VK_REC_NAME
33
+ - :VK_SND_ACC
34
+ - :VK_SND_NAME
35
+ - :VK_REF
36
+ - :VK_MSG
37
+ - :VK_T_DATE
38
+ "1901":
39
+ - :VK_SERVICE
40
+ - :VK_VERSION
41
+ - :VK_SND_ID
42
+ - :VK_REC_ID
43
+ - :VK_STAMP
44
+ - :VK_REF
45
+ - :VK_MSG
46
+ "1902":
47
+ - :VK_SERVICE
48
+ - :VK_VERSION
49
+ - :VK_SND_ID
50
+ - :VK_REC_ID
51
+ - :VK_STAMP
52
+ - :VK_REF
53
+ - :VK_MSG
54
+ - :VK_ERROR_CODE
55
+ "3001":
56
+ - :VK_SERVICE
57
+ - :VK_VERSION
58
+ - :VK_USER
59
+ - :VK_DATE
60
+ - :VK_TIME
61
+ - :VK_SND_ID
62
+ "3002":
63
+ - :VK_SERVICE
64
+ - :VK_VERSION
65
+ - :VK_USER
66
+ - :VK_DATE
67
+ - :VK_TIME
68
+ - :VK_SND_ID
69
+ - :VK_INFO
70
+ "3003":
71
+ - :VK_SERVICE
72
+ - :VK_VERSION
73
+ - :VK_SND_ID
74
+ - :VK_REC_ID
75
+ - :VK_NONCE
76
+ - :VK_INFO
77
+ "4001":
78
+ - :VK_SERVICE
79
+ - :VK_VERSION
80
+ - :VK_SND_ID
81
+ - :VK_REPLY
82
+ - :VK_RETURN
83
+ - :VK_DATE
84
+ - :VK_TIME
85
+ "4002":
86
+ - :VK_SERVICE
87
+ - :VK_VERSION
88
+ - :VK_SND_ID
89
+ - :VK_REC_ID
90
+ - :VK_NONCE
91
+ - :VK_RETURN
92
+ SOLOPMT_VERSION:
93
+ "0002":
94
+ - :SOLOPMT_VERSION
95
+ - :SOLOPMT_STAMP
96
+ - :SOLOPMT_RCV_ID
97
+ - :SOLOPMT_AMOUNT
98
+ - :SOLOPMT_REF
99
+ - :SOLOPMT_DATE
100
+ - :SOLOPMT_CUR
101
+ "0003":
102
+ - :SOLOPMT_VERSION
103
+ - :SOLOPMT_STAMP
104
+ - :SOLOPMT_RCV_ID
105
+ - :SOLOPMT_AMOUNT
106
+ - :SOLOPMT_REF
107
+ - :SOLOPMT_DATE
108
+ - :SOLOPMT_CUR
109
+
@@ -0,0 +1,50 @@
1
+ describe BankLink::Bank do
2
+ subject {
3
+ BankLink::Bank.new :name do |bank|
4
+ end
5
+ }
6
+
7
+ describe ".settings" do
8
+ it "should return settings" do
9
+ expect(subject.settings).to be_a Hashie::Mash
10
+ end
11
+ context "given block" do
12
+ it "should allow to configure" do
13
+ subject.settings do |settings|
14
+ expect(settings).to eq(subject.settings)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ describe ".payment_link" do
21
+ it "should return payment link" do
22
+ subject.payment_link "some.url"
23
+ expect(subject.payment_link).to be_a BankLink::Link
24
+ expect(subject.payment_link.url).to eq("some.url")
25
+ end
26
+ context "given url" do
27
+ it "should define new payment link" do
28
+ expect(subject.payment_link).to be_nil
29
+ subject.payment_link "some.url"
30
+ expect(subject.payment_link).to be_a BankLink::Link
31
+ end
32
+ end
33
+ end
34
+
35
+ describe ".authorization_link" do
36
+ it "should return authorization link" do
37
+ subject.authorization_link "some.url"
38
+ expect(subject.authorization_link).to be_a BankLink::Link
39
+ expect(subject.authorization_link.url).to eq("some.url")
40
+ end
41
+ context "given url" do
42
+ it "should define new payment link" do
43
+ expect(subject.authorization_link).to be_nil
44
+ subject.authorization_link "some.url"
45
+ expect(subject.authorization_link).to be_a BankLink::Link
46
+ end
47
+ end
48
+ end
49
+
50
+ end
@@ -1,80 +1,38 @@
1
1
  describe BankLink::Configuration do
2
2
  subject { BankLink::Configuration.send(:new) }
3
- before do
4
- subject.links(:aaa, "url") do |data, form|
5
- data.bla = 5
6
- form.something = 17
7
- end
8
- end
9
- let(:test_link) do
10
- subject.links[:aaa]
11
- end
12
3
 
13
- describe "#links" do
14
- context "given arguments" do
15
- it "should add link" do
16
- expect(subject.links.count).to eq(1)
17
- subject.links(:bbb, "url")
18
- expect(subject.links.count).to eq(2)
19
- end
20
- end
21
- context "given block" do
22
- it "should insert new link" do
23
- expect(subject.links.count).to eq(1)
24
- subject.links(:ccc, "url") do |data, form|
25
- data.in_block = true
26
- form.x = "false"
4
+ describe "#banks" do
5
+ context "given name and block" do
6
+ it "should add bank" do
7
+ expect(subject.banks.count).to eq(0)
8
+ subject.banks :swed do |bank|
9
+ expect(bank).to be_a BankLink::Bank
10
+ expect(bank.name).to eq(:swed)
27
11
  end
28
- expect(subject.links.count).to eq(2)
29
- ccc = subject.links[:ccc]
30
- expect(ccc.name).to eq(:ccc)
31
- expect(ccc.url).to eq("url")
32
- expect(ccc.data.in_block).to be_true
33
- expect(ccc.form.x).to eq("false")
12
+ expect(subject.banks.count).to eq(1)
34
13
  end
35
14
  end
36
15
 
37
- context "without arguments" do
38
- specify { expect(subject.links).to be_a BankLink::EStruct }
39
- end
40
- end
41
-
42
- describe "#mac_fields" do
43
- context "given block" do
44
- specify do
45
- subject.mac_fields do |mf|
46
- expect(mf).to be_a BankLink::EStruct
16
+ context "given name" do
17
+ it "should return that bank" do
18
+ subject.banks :swed do |bank|
47
19
  end
20
+ expect(subject.banks(:swed)).to be_a BankLink::Bank
48
21
  end
49
22
  end
50
-
51
- context "without arguments" do
52
- specify { expect(subject.mac_fields).to be_a BankLink::EStruct }
53
- end
54
23
  end
55
24
 
56
- describe "#each" do
25
+ describe "#mac_fields" do
57
26
  context "given block" do
58
27
  specify do
59
- subject.each do |link|
60
- expect(link).to be_a BankLink::Link
28
+ subject.mac_fields do |mf|
29
+ expect(mf).to be_a Hashie::Mash
61
30
  end
62
31
  end
63
32
  end
64
33
 
65
34
  context "without arguments" do
66
- specify { expect(subject.each).to be_a Enumerator }
67
- end
68
- end
69
-
70
- describe "#default_encoding" do
71
- specify { expect(subject.default_encoding).to be_nil }
72
- end
73
-
74
- describe "#default_encoding=" do
75
- it "should set default_encoding" do
76
- subject.default_encoding = "bla"
77
- expect(subject.default_encoding).to_not be_nil
35
+ specify { expect(subject.mac_fields).to be_a Hashie::Mash }
78
36
  end
79
37
  end
80
- end
38
+ end
@@ -1,51 +1,54 @@
1
1
  describe BankLink::Link do
2
- describe "#new" do
3
- let(:link) do
4
- link = BankLink::Link.new :name, "url" do |data, form|
5
- data.bla = 5
6
- form.bla = 17
7
- end
8
- link
2
+ let :bank do
3
+ BankLink::Bank.new :name do |bank|
4
+ end
5
+ end
6
+
7
+ let :bank2 do
8
+ BankLink::Bank.new :name do |bank|
9
+ end
10
+ end
11
+
12
+ subject {
13
+ BankLink::Link.new bank, "some.url" do |form|
14
+ end
15
+ }
16
+
17
+ describe ".settings" do
18
+ it "should delegate to bank" do
19
+ expect(subject.bank).to receive(:settings)
20
+ subject.settings
9
21
  end
10
- specify { expect(link.data).to be_a BankLink::EStruct }
11
- specify { expect(link.form).to be_a BankLink::EStruct }
12
- specify { expect(link.name).to eq(:name) }
13
- specify { expect(link.url).to eq("url") }
14
- specify { expect(link.data.bla).to eq(5) }
15
- specify { expect(link.form.bla).to eq(17) }
16
22
  end
17
23
 
18
24
  describe ".processed_data" do
19
- let(:link) do
20
- BankLink::Link.new :name, "url" do |data, form|
25
+
26
+ before(:each) do
27
+ subject.form.value1 = 1
28
+ subject.form.value2 = 2
29
+ subject.form.value3 = Proc.new { 3 }
30
+ subject.form.value4 = Proc.new { |link, object| "aaaaa" }
31
+ bank.settings.encoding_key = "ENCODING_KEY"
32
+ bank.settings.encoding = "UTF8"
33
+
34
+ allow_any_instance_of(BankLink::Mac::VK).to receive(:generate).and_return { "aaaaaaaaaaa" }
35
+ end
36
+
37
+ let(:data) { subject.processed_data(nil) }
38
+
39
+ let(:link_without_encoding) do
40
+ BankLink::Link.new bank2, "url" do |form|
21
41
  form.value1 = 1
22
42
  form.value2 = 2
23
43
  form.value3 = Proc.new { 3 }
24
44
  form.value4 = Proc.new { |link, object| "aaaaa" }
25
- data.encoding_key = "ENCODING_KEY"
26
- data.encoding = "UTF8"
27
45
  end
28
46
  end
29
47
 
30
- let(:data) { link.processed_data(nil) }
31
-
32
- before(:each) do
33
- allow_any_instance_of(BankLink::Mac::VK).to receive(:generate).and_return { "aaaaaaaaaaa" }
34
- end
35
-
36
48
  context "encoding" do
37
- let(:link_without_encoding) do
38
- BankLink::Link.new :name, "url" do |data, form|
39
- form.value1 = 1
40
- form.value2 = 2
41
- form.value3 = Proc.new { 3 }
42
- form.value4 = Proc.new { |link, object| "aaaaa" }
43
- data.encoding_key = :ENCODING_KEY
44
- end
45
- end
46
49
  context "should set encoding" do
47
50
  it "when given encoding key and encoding" do
48
- data = link.processed_data(nil)
51
+ data = subject.processed_data(nil)
49
52
  expect(data[:ENCODING_KEY]).to eq("UTF8")
50
53
  end
51
54
  it "unless encoding is set" do
@@ -55,6 +58,7 @@ describe BankLink::Link do
55
58
  end
56
59
  end
57
60
  it "should calculate mac" do
61
+ data = link_without_encoding.processed_data(nil)
58
62
  expect(data[:VK_MAC]).to eq("aaaaaaaaaaa")
59
63
  end
60
64
  it "should calculate procs" do
@@ -62,4 +66,4 @@ describe BankLink::Link do
62
66
  expect(data.value4).to eq("aaaaa")
63
67
  end
64
68
  end
65
- end
69
+ end
@@ -1,24 +1,21 @@
1
1
  describe BankLink::Mac::Base do
2
- it { expect { BankLink::Mac::Base.query_key }.to raise_error(NotImplementedError) }
3
- it { expect { BankLink::Mac::Base.key }.to raise_error(NotImplementedError) }
4
- it { expect { BankLink::Mac::Base.default_algorithm }.to raise_error(NotImplementedError) }
5
-
6
- let(:link) { BankLink::Link.new(:aaa, "aaa") }
7
-
8
- let(:xx) { BankLink::EStruct.new(:x => 5) }
9
-
10
- subject { BankLink::Mac::Base.new(link, xx) }
11
-
12
- describe "#new" do
13
- specify { expect(subject.data).to be_a(BankLink::EStruct) }
14
- specify { expect(subject.link).to be_a(BankLink::Link) }
2
+ let :bank do
3
+ BankLink::Bank.new :name do |bank|
4
+ end
15
5
  end
16
6
 
17
- describe ".generate" do
18
- it { expect { subject.generate }.to raise_error(NotImplementedError) }
7
+ let :link do
8
+ BankLink::Link.new bank, "some.url" do |form|
9
+ end
19
10
  end
20
11
 
21
- describe ".key" do
22
- it { expect { subject.key }.to raise_error(NotImplementedError) }
12
+ subject do
13
+ BankLink::Mac::Base.new(link, Hashie::Mash.new)
23
14
  end
24
- end
15
+
16
+ it { expect { subject.key }.to raise_error(NotImplementedError) }
17
+ it { expect { subject.query_key }.to raise_error(NotImplementedError) }
18
+ it { expect { subject.generate }.to raise_error(NotImplementedError) }
19
+ it { expect { subject.verify }.to raise_error(NotImplementedError) }
20
+ it { expect { subject.keys("111") }.to raise_error(NotImplementedError) }
21
+ end
@@ -1,44 +1,33 @@
1
1
  describe BankLink::Mac::Solo do
2
- specify { expect(BankLink::Mac::Solo.query_key).to eq(:SOLOPMT_VERSION) }
3
- specify { expect(BankLink::Mac::Solo.key).to eq(:SOLOPMT_MAC) }
4
- specify { expect(BankLink::Mac::Solo.default_algorithm).to eq(OpenSSL::Digest::MD5) }
5
-
6
- let(:link_sha1) do
7
- BankLink::Link.new(:link, :url) do |data, form|
8
- data.algorithm = OpenSSL::Digest::SHA1
9
- data.mac_key = "SOMEKEY"
2
+
3
+ let :bank do
4
+ BankLink::Bank.new :name do |bank|
5
+ bank.settings.digest = OpenSSL::Digest::SHA1
6
+ bank.settings.private_key = "SOMEKEY"
10
7
  end
11
8
  end
12
9
 
13
- let(:link_md5) do
14
- BankLink::Link.new(:link, :url) do |data, form|
15
- data.mac_key = "SOMEKEY"
10
+ let :link do
11
+ BankLink::Link.new bank, "some.url" do |form|
16
12
  end
17
13
  end
18
14
 
19
- let(:data) { BankLink::EStruct.new(:SOLOPMT_VERSION => "0003") }
20
-
21
- let(:mac_sha1) { BankLink::Mac::Solo.new(link_sha1,data) }
22
- let(:mac_md5) { BankLink::Mac::Solo.new(link_md5,data) }
15
+ let(:data) { Hashie::Mash.new(:SOLOPMT_VERSION => "0003") }
23
16
 
17
+ subject do
18
+ BankLink::Mac::Solo.new(link, data)
19
+ end
24
20
 
25
- specify { expect(mac_sha1.key).to eq(BankLink::Mac::Solo.key) }
26
- specify { expect(mac_md5.key).to eq(BankLink::Mac::Solo.key) }
21
+ specify { expect(subject.query_key).to eq(:SOLOPMT_VERSION) }
22
+ specify { expect(subject.key).to eq(:SOLOPMT_MAC) }
27
23
 
28
- let(:sha1_result) { "08233F97B068D5CFF7EAD4F9C16779504E638301" }
29
- let(:md5_result) { "7990ACDD585F151ED8C9405B5838EEDC" }
24
+ let(:result) { "08233F97B068D5CFF7EAD4F9C16779504E638301" }
30
25
 
31
26
  describe ".generate" do
32
- context "algorithm is sha1" do
33
- specify { expect(mac_sha1.generate).to eq(sha1_result)}
34
- end
35
- context "algirithm is md5" do
36
- specify { expect(mac_md5.generate).to eq(md5_result)}
37
- end
27
+ specify { expect(subject.generate).to eq(result)}
38
28
  end
39
29
 
40
30
  describe ".request_data" do
41
- specify { expect(mac_sha1.instance_eval { request_data("0003") }).to eq(["0003&", "&", "&", "&", "&", "&", "&", "SOMEKEY&"]) }
42
- specify { expect(mac_md5.instance_eval { request_data("0003") }).to eq(["0003&", "&", "&", "&", "&", "&", "&", "SOMEKEY&"]) }
31
+ specify { expect(subject.instance_eval { request_data("0003") }).to eq(["0003&", "&", "&", "&", "&", "&", "&", "SOMEKEY&"]) }
43
32
  end
44
- end
33
+ end
@@ -1,19 +1,24 @@
1
1
  describe BankLink::Mac::VK do
2
- specify { expect(BankLink::Mac::VK.query_key).to eq(:VK_SERVICE) }
3
- specify { expect(BankLink::Mac::VK.key).to eq(:VK_MAC) }
4
- specify { expect(BankLink::Mac::VK.default_algorithm).to eq(OpenSSL::Digest::SHA1) }
5
2
 
6
- let(:link) do
7
- BankLink::Link.new(:link, :url) do |data, form|
8
- data.algorithm = OpenSSL::Digest::MD5
3
+ let :bank do
4
+ BankLink::Bank.new :name do |bank|
5
+ bank.settings.digest = OpenSSL::Digest::MD5
9
6
  end
10
7
  end
11
8
 
12
- let(:data) { BankLink::EStruct.new(:VK_SERVICE => "1001") }
9
+ let :link do
10
+ BankLink::Link.new bank, "some.url" do |form|
11
+ end
12
+ end
13
13
 
14
- subject { BankLink::Mac::VK.new(link,data) }
14
+ let(:data) { Hashie::Mash.new(:VK_SERVICE => "1001") }
15
+
16
+ subject do
17
+ BankLink::Mac::VK.new(link, data)
18
+ end
15
19
 
16
- specify { expect(subject.key).to eq(BankLink::Mac::VK.key) }
20
+ specify { expect(subject.query_key).to eq(:VK_SERVICE) }
21
+ specify { expect(subject.key).to eq(:VK_MAC) }
17
22
 
18
23
  let(:private_key) { double("Key") }
19
24
 
@@ -32,4 +37,4 @@ describe BankLink::Mac::VK do
32
37
  describe ".request_data" do
33
38
  specify { expect(subject.instance_eval { request_data("1001") }).to eq("0041001000000000000000000000000000") }
34
39
  end
35
- end
40
+ end
@@ -1,63 +1,70 @@
1
1
  class BLVHDummy
2
- include ActionView::Helpers::UrlHelper
3
- include ActionView::Helpers::TagHelper
4
- include ActionView::Helpers::CaptureHelper
5
- include ActionView::Helpers::FormTagHelper
6
- include ActionView::Context
7
- include BankLink::ViewHelpers
2
+ include ::ActionView::Helpers::UrlHelper
3
+ include ::ActionView::Helpers::TagHelper
4
+ include ::ActionView::Helpers::CaptureHelper
5
+ include ::ActionView::Helpers::FormTagHelper
6
+ include ::ActionView::Context
7
+ include ::BankLink::ViewHelpers
8
8
  end
9
9
 
10
10
  describe BankLink::ViewHelpers do
11
+
11
12
  subject { BLVHDummy.new }
12
13
  before(:all) do
13
14
  BankLink.configuration do |config|
14
- config.links(:dummy_link, "https://some.where.com") do |data, form|
15
- form[:SOLOPMT_VERSION] = "0003"
16
- form[:SOLOPMT_STAMP] = "555"
17
- form[:SOLOPMT_RCV_ID] = "99999999"
18
- form[:SOLOPMT_AMOUNT] = "55.12"
19
- form[:SOLOPMT_REF] = "55"
20
- form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
21
- form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
22
- form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
23
- form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
15
+ config.banks :dummy_bank do |bank|
16
+ bank.settings.mac_class = BankLink::Mac::Solo
17
+ bank.settings.private_key = "MY MAC KEY"
18
+ bank.settings.digest = OpenSSL::Digest::MD5
24
19
 
25
- form[:SOLOPMT_CONFIRM] = "YES"
26
- form[:SOLOPMT_KEYVERS] = "0001"
27
- form[:SOLOPMT_DATE] = "EXPRESS"
28
- form[:SOLOPMT_CUR] = "EUR"
29
- form[:SOLOPMT_LANGUAGE] = "3"
30
- data.mac_class = BankLink::Mac::Solo
31
- data.mac_key = "MY MAC KEY"
20
+ bank.payment_link "https://some.where.com" do |form|
21
+ form[:SOLOPMT_VERSION] = "0003"
22
+ form[:SOLOPMT_STAMP] = "555"
23
+ form[:SOLOPMT_RCV_ID] = "99999999"
24
+ form[:SOLOPMT_AMOUNT] = "55.12"
25
+ form[:SOLOPMT_REF] = "55"
26
+ form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
27
+ form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
28
+ form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
29
+ form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
30
+ form[:SOLOPMT_CONFIRM] = "YES"
31
+ form[:SOLOPMT_KEYVERS] = "0001"
32
+ form[:SOLOPMT_DATE] = "EXPRESS"
33
+ form[:SOLOPMT_CUR] = "EUR"
34
+ form[:SOLOPMT_LANGUAGE] = "3"
35
+ end
32
36
  end
33
37
 
34
- config.links(:dummy_link_w_encoding, "https://some.where.com") do |data, form|
35
- form[:SOLOPMT_VERSION] = "0003"
36
- form[:SOLOPMT_STAMP] = "555"
37
- form[:SOLOPMT_RCV_ID] = "99999999"
38
- form[:SOLOPMT_AMOUNT] = "55.12"
39
- data.encoding_key = "VK_ENCODING"
40
- data.encoding = "UTF-8"
41
- form[:SOLOPMT_REF] = "55"
42
- form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
43
- form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
44
- form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
45
- form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
38
+ config.banks :dummy_bank_w_encoding do |bank|
39
+ bank.settings.mac_class = BankLink::Mac::Solo
40
+ bank.settings.private_key = "MY MAC KEY"
41
+ bank.settings.encoding_key = "VK_ENCODING"
42
+ bank.settings.encoding = "UTF-8"
43
+ bank.settings.digest = OpenSSL::Digest::MD5
46
44
 
47
- form[:SOLOPMT_CONFIRM] = "YES"
48
- form[:SOLOPMT_KEYVERS] = "0001"
49
- form[:SOLOPMT_DATE] = "EXPRESS"
50
- form[:SOLOPMT_CUR] = "EUR"
51
- form[:SOLOPMT_LANGUAGE] = "3"
52
- data.mac_class = BankLink::Mac::Solo
53
- data.mac_key = "MY MAC KEY"
45
+ bank.payment_link "https://some.where.com" do |form|
46
+ form[:SOLOPMT_VERSION] = "0003"
47
+ form[:SOLOPMT_STAMP] = "555"
48
+ form[:SOLOPMT_RCV_ID] = "99999999"
49
+ form[:SOLOPMT_AMOUNT] = "55.12"
50
+ form[:SOLOPMT_REF] = "55"
51
+ form[:SOLOPMT_MSG] = Proc.new { |link, object| "message for payment" }
52
+ form[:SOLOPMT_RETURN] = Proc.new { |link, object| "http://some.where.else1.com" }
53
+ form[:SOLOPMT_CANCEL] = Proc.new { |link, object| "http://some.where.else2.com" }
54
+ form[:SOLOPMT_REJECT] = Proc.new { |link, object| "http://some.where.else3.com" }
55
+ form[:SOLOPMT_CONFIRM] = "YES"
56
+ form[:SOLOPMT_KEYVERS] = "0001"
57
+ form[:SOLOPMT_DATE] = "EXPRESS"
58
+ form[:SOLOPMT_CUR] = "EUR"
59
+ form[:SOLOPMT_LANGUAGE] = "3"
60
+ end
54
61
  end
55
62
  end
56
63
  end
57
64
 
58
- let(:dummy_link) { BankLink.configuration.links[:dummy_link] }
65
+ let(:dummy_link) { BankLink.configuration.banks[:dummy_bank].payment_link }
59
66
 
60
- let(:dummy_link_w_encoding) { BankLink.configuration.links[:dummy_link_w_encoding] }
67
+ let(:dummy_link_w_encoding) { BankLink.configuration.banks[:dummy_bank_w_encoding].payment_link }
61
68
 
62
69
  let(:result_plain) { subject.bank_link_tag(dummy_link) }
63
70
 
@@ -1,10 +1,9 @@
1
1
  describe BankLink do
2
- it { should respond_to :each }
3
2
  describe "#configuration" do
4
3
  context "given block" do
5
- it "should allow access to configuration" do
4
+ it "should allow to configure" do
6
5
  subject.configuration do |config|
7
- expect(config).to be_a BankLink::Configuration
6
+ expect(config).to eq subject.configuration
8
7
  end
9
8
  end
10
9
  end
@@ -14,4 +13,18 @@ describe BankLink do
14
13
  end
15
14
  end
16
15
  end
16
+
17
+ describe "#payment_links" do
18
+ it "should delegate to configuration" do
19
+ expect(BankLink.configuration).to receive(:payment_links)
20
+ subject.payment_links
21
+ end
22
+ end
23
+
24
+ describe "#authorization_links" do
25
+ it "should delegate to configuration" do
26
+ expect(BankLink.configuration).to receive(:authorization_links)
27
+ subject.authorization_links
28
+ end
29
+ end
17
30
  end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  require "bank_link"
2
2
 
3
- if RUBY_VERSION == "1.8.7"
4
- Enumerator = Enumerable
5
- end
6
3
  # This file was generated by the `rspec --init` command. Conventionally, all
7
4
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
8
5
  # Require this file using `require "spec_helper"` to ensure that it is only