bank_link 0.0.2 → 0.0.3

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.
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