wirecard 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/README.md +2 -0
- data/README.rdoc +3 -0
- data/circle.yml +7 -0
- data/lib/wirecard.rb +22 -0
- data/lib/wirecard/backend/approve_reversal.rb +9 -0
- data/lib/wirecard/backend/base.rb +20 -0
- data/lib/wirecard/backend/deposit.rb +9 -0
- data/lib/wirecard/backend/deposit_reversal.rb +9 -0
- data/lib/wirecard/backend/generate_order_number.rb +12 -0
- data/lib/wirecard/backend/get_order_details.rb +9 -0
- data/lib/wirecard/backend/recur_payment.rb +9 -0
- data/lib/wirecard/backend/refund.rb +9 -0
- data/lib/wirecard/backend/refund_reversal.rb +9 -0
- data/lib/wirecard/backend/transfer_fund/base.rb +15 -0
- data/lib/wirecard/backend/transfer_fund/existing_order.rb +11 -0
- data/lib/wirecard/base.rb +26 -11
- data/lib/wirecard/callback.rb +3 -8
- data/lib/wirecard/configuration.rb +4 -0
- data/lib/wirecard/data_storage/init.rb +1 -3
- data/lib/wirecard/fingerprint/base.rb +13 -2
- data/lib/wirecard/payment_process/init.rb +11 -0
- data/lib/wirecard/request.rb +2 -6
- data/lib/wirecard/response.rb +0 -4
- data/lib/wirecard/version.rb +1 -1
- data/spec/spec_helper.rb +10 -1
- data/spec/unit_tests/backend/approve_reversal_spec.rb +54 -0
- data/spec/unit_tests/backend/deposit_reversal_spec.rb +91 -0
- data/spec/unit_tests/backend/deposit_spec.rb +79 -0
- data/spec/unit_tests/backend/generate_order_number_spec.rb +37 -0
- data/spec/unit_tests/backend/get_order_details_spec.rb +233 -0
- data/spec/unit_tests/backend/recur_payment_spec.rb +86 -0
- data/spec/unit_tests/backend/refund_reversal.rb +60 -0
- data/spec/unit_tests/backend/refund_spec.rb +66 -0
- data/spec/unit_tests/backend/transfer_fund/existing_order_spec.rb +88 -0
- data/spec/unit_tests/callback_spec.rb +101 -0
- data/spec/unit_tests/data_storage/init_spec.rb +39 -25
- data/spec/unit_tests/data_storage/read_spec.rb +47 -0
- data/spec/unit_tests/fingerprint/sha_512_spec.rb +69 -0
- data/spec/unit_tests/payment_process/init_spec.rb +94 -0
- data/spec/unit_tests/support/shared_context.rb +235 -0
- data/spec/unit_tests/support/shared_examples.rb +7 -33
- data/spec/unit_tests/support/webserver.rb +29 -0
- data/spec/wirecard_spec.rb +133 -133
- data/wirecard.gemspec +5 -0
- metadata +115 -4
- data/spec/unit_tests/base_shared.rb +0 -34
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
+
require 'dotenv'
|
2
|
+
Dotenv.load
|
3
|
+
|
4
|
+
require "codeclimate-test-reporter"
|
5
|
+
CodeClimate::TestReporter.start if ENV['CODECLIMATE_REPO_TOKEN']
|
6
|
+
|
1
7
|
require 'pry'
|
2
|
-
require '
|
8
|
+
require 'wirecard'
|
9
|
+
|
10
|
+
require 'webmock/rspec'
|
11
|
+
WebMock.disable_net_connect!(allow_localhost: true, allow: 'codeclimate.com')
|
3
12
|
|
4
13
|
Dir["./spec/unit_tests/support/**/*.rb"].sort.each { |f| require f}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Wirecard::Backend::ApproveReversal do
|
4
|
+
|
5
|
+
let(:approve_reversal) { Wirecard::Backend::ApproveReversal.new(options) }
|
6
|
+
let(:options) { Hash.new.merge(order_number) }
|
7
|
+
let(:order_number) { { order_number: '23473341' } }
|
8
|
+
|
9
|
+
include_context 'configuration'
|
10
|
+
|
11
|
+
it { is_expected.to be_a_kind_of(Wirecard::Backend::ApproveReversal) }
|
12
|
+
|
13
|
+
describe '#implicit_fingerprint_order' do
|
14
|
+
subject { approve_reversal.implicit_fingerprint_order }
|
15
|
+
|
16
|
+
it { is_expected.to eq([:customer_id, :shop_id, :password, :secret, :language, :order_number]) }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#defaults' do
|
20
|
+
subject { approve_reversal.defaults }
|
21
|
+
|
22
|
+
include_examples 'Wirecard::Base#defaults'
|
23
|
+
include_examples 'Wirecard::Backend::Base#defaults'
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#url' do
|
27
|
+
subject { approve_reversal.url }
|
28
|
+
|
29
|
+
it { is_expected.to eq('https://checkout.wirecard.com/seamless/backend/approvereversal') }
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#post' do
|
33
|
+
subject { approve_reversal.post.response }
|
34
|
+
include_context 'stub requests'
|
35
|
+
|
36
|
+
context 'when order number is 23473341' do
|
37
|
+
let(:order_number) { { order_number: '23473341' } }
|
38
|
+
|
39
|
+
#it { is_expected.to eq({ status: '0' }) }
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when order number is not given' do
|
43
|
+
let(:order_number) { { } }
|
44
|
+
|
45
|
+
it { is_expected.to eq({
|
46
|
+
:"error.1.consumer_message" => "Order number is missing.",
|
47
|
+
:"error.1.error_code" => "11011",
|
48
|
+
:"error.1.message" => "Order number is missing.",
|
49
|
+
errors: "1",
|
50
|
+
status: "1"
|
51
|
+
}) }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Wirecard::Backend::DepositReversal do
|
4
|
+
|
5
|
+
let(:deposit_reversal) { Wirecard::Backend::DepositReversal.new(options) }
|
6
|
+
let(:options) { Hash.new.merge(order_number).merge(payment_number) }
|
7
|
+
let(:order_number) { { order_number: '23473341' } }
|
8
|
+
let(:payment_number) { { payment_number: '23473341'} }
|
9
|
+
|
10
|
+
include_context 'configuration'
|
11
|
+
|
12
|
+
it { is_expected.to be_a_kind_of(Wirecard::Backend::DepositReversal) }
|
13
|
+
|
14
|
+
describe '#implicit_fingerprint_order' do
|
15
|
+
subject { deposit_reversal.implicit_fingerprint_order }
|
16
|
+
|
17
|
+
it { is_expected.to eq([:customer_id, :shop_id, :password, :secret, :language, :order_number, :payment_number]) }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#defaults' do
|
21
|
+
subject { deposit_reversal.defaults }
|
22
|
+
|
23
|
+
include_examples 'Wirecard::Base#defaults'
|
24
|
+
include_examples 'Wirecard::Backend::Base#defaults'
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#url' do
|
28
|
+
subject { deposit_reversal.url }
|
29
|
+
|
30
|
+
it { is_expected.to eq('https://checkout.wirecard.com/seamless/backend/depositreversal') }
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#post' do
|
34
|
+
subject { deposit_reversal.post.response }
|
35
|
+
include_context 'stub requests'
|
36
|
+
|
37
|
+
context 'when order number is 23473341' do
|
38
|
+
let(:order_number) { { order_number: '23473341' } }
|
39
|
+
|
40
|
+
context 'when payment_number is given' do
|
41
|
+
let(:payment_number) { { payment_number: '23473341'} }
|
42
|
+
|
43
|
+
it { is_expected.to eq({ status: '0' }) }
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when payment_number is not given' do
|
47
|
+
let(:payment_number) { { } }
|
48
|
+
|
49
|
+
it { is_expected.to eq({
|
50
|
+
:"error.1.consumer_message" => "Payment number is missing.",
|
51
|
+
:"error.1.error_code" => "11012",
|
52
|
+
:"error.1.message" => "Payment number is missing.",
|
53
|
+
errors: "1",
|
54
|
+
status: "1"
|
55
|
+
}) }
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'when order number is not given' do
|
60
|
+
let(:order_number) { { } }
|
61
|
+
|
62
|
+
|
63
|
+
context 'when payment_number is given' do
|
64
|
+
let(:payment_number) { { payment_number: '23473341'} }
|
65
|
+
|
66
|
+
it { is_expected.to eq({
|
67
|
+
:"error.1.consumer_message" => "Order number is missing.",
|
68
|
+
:"error.1.error_code" => "11011",
|
69
|
+
:"error.1.message" => "Order number is missing.",
|
70
|
+
errors: "1",
|
71
|
+
status: "1"
|
72
|
+
}) }
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'when payment_number is not given' do
|
76
|
+
let(:payment_number) { { } }
|
77
|
+
|
78
|
+
it { is_expected.to eq({
|
79
|
+
:"error.1.consumer_message" => "Order number is missing.",
|
80
|
+
:"error.1.error_code" => "11011",
|
81
|
+
:"error.1.message" => "Order number is missing.",
|
82
|
+
:"error.2.consumer_message" => "Payment number is missing.",
|
83
|
+
:"error.2.error_code" => "11012",
|
84
|
+
:"error.2.message" => "Payment number is missing.",
|
85
|
+
errors: "2",
|
86
|
+
status: "1"
|
87
|
+
}) }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Wirecard::Backend::Deposit do
|
4
|
+
|
5
|
+
let(:deposit) { Wirecard::Backend::Deposit.new(options) }
|
6
|
+
let(:options) { Hash.new.merge(order_number).merge(amount).merge(currency) }
|
7
|
+
let(:order_number) { { order_number: '23473341' } }
|
8
|
+
let(:amount) { { amount: '1000'} }
|
9
|
+
let(:currency) { { currency: 'EUR' } }
|
10
|
+
|
11
|
+
include_context 'configuration'
|
12
|
+
|
13
|
+
it { is_expected.to be_a_kind_of(Wirecard::Backend::Deposit) }
|
14
|
+
|
15
|
+
describe '#implicit_fingerprint_order' do
|
16
|
+
subject { deposit.implicit_fingerprint_order }
|
17
|
+
|
18
|
+
it { is_expected.to eq([:customer_id, :shop_id, :password, :secret, :language, :order_number, :amount, :currency]) }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#defaults' do
|
22
|
+
subject { deposit.defaults }
|
23
|
+
|
24
|
+
include_examples 'Wirecard::Base#defaults'
|
25
|
+
include_examples 'Wirecard::Backend::Base#defaults'
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#url' do
|
29
|
+
subject { deposit.url }
|
30
|
+
|
31
|
+
it { is_expected.to eq('https://checkout.wirecard.com/seamless/backend/deposit') }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#post' do
|
35
|
+
subject { deposit.post.response }
|
36
|
+
include_context 'stub requests'
|
37
|
+
|
38
|
+
context 'when order number is 23473341' do
|
39
|
+
let(:order_number) { { order_number: '23473341' } }
|
40
|
+
|
41
|
+
it { is_expected.to eq({ payment_number: "23473341", status: "0" }) }
|
42
|
+
|
43
|
+
context 'when amount is not given' do
|
44
|
+
let(:amount) { {} }
|
45
|
+
|
46
|
+
it { is_expected.to eq({
|
47
|
+
:"error.1.consumer_message" => "Amount is missing.",
|
48
|
+
:"error.1.error_code" => "11017",
|
49
|
+
:"error.1.message" => "Amount is missing.",
|
50
|
+
errors: "1",
|
51
|
+
status: "1"
|
52
|
+
}) }
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when currency is not given' do
|
56
|
+
let(:currency) { {} }
|
57
|
+
|
58
|
+
it { is_expected.to eq({
|
59
|
+
:"error.1.consumer_message" => "Currency is missing.",
|
60
|
+
:"error.1.error_code" => "11019",
|
61
|
+
:"error.1.message" => "Currency is missing.",
|
62
|
+
errors: "1",
|
63
|
+
status: "1"
|
64
|
+
}) }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
context 'when order number is not given' do
|
68
|
+
let(:order_number) { {} }
|
69
|
+
|
70
|
+
it { is_expected.to eq({
|
71
|
+
:"error.1.consumer_message" => "Order number is missing.",
|
72
|
+
:"error.1.error_code" => "11011",
|
73
|
+
:"error.1.message" => "Order number is missing.",
|
74
|
+
errors: "1",
|
75
|
+
status: "1"
|
76
|
+
}) }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Wirecard::Backend::GenerateOrderNumber do
|
4
|
+
|
5
|
+
let(:generate_order_number) { Wirecard::Backend::GenerateOrderNumber.new(options) }
|
6
|
+
let(:options) { Hash.new }
|
7
|
+
|
8
|
+
include_context 'configuration'
|
9
|
+
|
10
|
+
it { is_expected.to be_a_kind_of(Wirecard::Backend::GenerateOrderNumber) }
|
11
|
+
|
12
|
+
describe '#implicit_fingerprint_order' do
|
13
|
+
subject { generate_order_number.implicit_fingerprint_order }
|
14
|
+
|
15
|
+
it { is_expected.to eq([:customer_id, :shop_id, :password, :secret, :language]) }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#defaults' do
|
19
|
+
subject { generate_order_number.defaults }
|
20
|
+
|
21
|
+
include_examples 'Wirecard::Base#defaults'
|
22
|
+
include_examples 'Wirecard::Backend::Base#defaults'
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#url' do
|
26
|
+
subject { generate_order_number.url }
|
27
|
+
|
28
|
+
it { is_expected.to eq('https://checkout.wirecard.com/seamless/backend/generateordernumber') }
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#post' do
|
32
|
+
subject { generate_order_number.post.response }
|
33
|
+
include_context 'stub requests'
|
34
|
+
|
35
|
+
it { is_expected.to eq({ order_number: '1113051', status: '0' }) }
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,233 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Wirecard::Backend::GetOrderDetails do
|
4
|
+
|
5
|
+
let(:get_order_details) { Wirecard::Backend::GetOrderDetails.new(options) }
|
6
|
+
let(:options) { { order_number: '23473341' } }
|
7
|
+
|
8
|
+
include_context 'configuration'
|
9
|
+
|
10
|
+
it { is_expected.to be_a_kind_of(Wirecard::Backend::GetOrderDetails) }
|
11
|
+
|
12
|
+
describe '#implicit_fingerprint_order' do
|
13
|
+
subject { get_order_details.implicit_fingerprint_order }
|
14
|
+
|
15
|
+
it { is_expected.to eq([:customer_id, :shop_id, :password, :secret, :language, :order_number]) }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#defaults' do
|
19
|
+
subject { get_order_details.defaults }
|
20
|
+
|
21
|
+
include_examples 'Wirecard::Base#defaults'
|
22
|
+
include_examples 'Wirecard::Backend::Base#defaults'
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#url' do
|
26
|
+
subject { get_order_details.url }
|
27
|
+
|
28
|
+
it { is_expected.to eq('https://checkout.wirecard.com/seamless/backend/getorderdetails') }
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#post' do
|
32
|
+
subject { get_order_details.post.response }
|
33
|
+
include_context 'stub requests'
|
34
|
+
|
35
|
+
context 'when order_number is given' do
|
36
|
+
context 'when order number refers is 23473341 (VISA)' do
|
37
|
+
let(:options) { { order_number: '23473341' } }
|
38
|
+
|
39
|
+
it { is_expected.to eq ( {
|
40
|
+
objects_total: "1",
|
41
|
+
:"order.1.acquirer" => "card complete",
|
42
|
+
:"order.1.amount" => "1.00",
|
43
|
+
:"order.1.approve_amount" => "1.00",
|
44
|
+
:"order.1.brand" => "VISA",
|
45
|
+
:"order.1.contract_number" => "0815DemoContract",
|
46
|
+
:"order.1.credits" => "0",
|
47
|
+
:"order.1.currency" => "EUR",
|
48
|
+
:"order.1.customer_statement" => "Danke für den Einkauf!",
|
49
|
+
:"order.1.deposit_amount" => "0",
|
50
|
+
:"order.1.merchant_number" => "1",
|
51
|
+
:"order.1.order_description" => "Lisa Kaufrausch, K-Nr: 54435",
|
52
|
+
:"order.1.order_number" => "23473341",
|
53
|
+
:"order.1.order_reference" => "OR-23473341",
|
54
|
+
:"order.1.payment_type" => "VPG",
|
55
|
+
:"order.1.payments" => "1",
|
56
|
+
:"order.1.refund_amount" => "0",
|
57
|
+
:"order.1.state" => "ORDERED",
|
58
|
+
:"order.1.time_created" => "30.07.2015 10:52:53",
|
59
|
+
:"order.1.time_modified" => "30.07.2015 10:52:53",
|
60
|
+
orders: "1",
|
61
|
+
:"payment.1.1.approval_code" => "123456",
|
62
|
+
:"payment.1.1.approve_amount" => "1.00",
|
63
|
+
:"payment.1.1.currency" => "EUR",
|
64
|
+
:"payment.1.1.deposit_amount" => "0.00",
|
65
|
+
:"payment.1.1.merchant_number" => "1",
|
66
|
+
:"payment.1.1.operations_allowed" => "DEPOSIT,APPROVEREVERSAL",
|
67
|
+
:"payment.1.1.order_number" => "23473341",
|
68
|
+
:"payment.1.1.payment_number" => "23473341",
|
69
|
+
:"payment.1.1.payment_type" => "VPG",
|
70
|
+
:"payment.1.1.state" => "payment_approved",
|
71
|
+
:"payment.1.1.time_created" => "30.07.2015 10:52:53",
|
72
|
+
:"payment.1.1.time_modified" => "30.07.2015 10:52:53",
|
73
|
+
status: "0"
|
74
|
+
}) }
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'when order number refers is 56453412 (Mastercard)' do
|
78
|
+
let(:options) { { order_number: '56453412' } }
|
79
|
+
|
80
|
+
it { is_expected.to eq ( {
|
81
|
+
objects_total: "1",
|
82
|
+
:"order.1.acquirer" => "PayLife",
|
83
|
+
:"order.1.amount" => "1.00",
|
84
|
+
:"order.1.approve_amount" => "1.00",
|
85
|
+
:"order.1.brand" => "MasterCard",
|
86
|
+
:"order.1.contract_number" => "0815DemoContract",
|
87
|
+
:"order.1.credits" => "0",
|
88
|
+
:"order.1.currency" => "EUR",
|
89
|
+
:"order.1.customer_statement" => "Danke für den Einkauf!",
|
90
|
+
:"order.1.deposit_amount" => "0",
|
91
|
+
:"order.1.merchant_number" => "1",
|
92
|
+
:"order.1.order_description" => "Max Mustermann, K-Nr: 12345",
|
93
|
+
:"order.1.order_number" => "56453412",
|
94
|
+
:"order.1.order_reference" => "OR-56453412",
|
95
|
+
:"order.1.payment_type" => "APG",
|
96
|
+
:"order.1.payments" => "1",
|
97
|
+
:"order.1.refund_amount" => "0",
|
98
|
+
:"order.1.state" => "ORDERED",
|
99
|
+
:"order.1.time_created" => "30.07.2015 11:20:53",
|
100
|
+
:"order.1.time_modified" => "30.07.2015 11:20:53",
|
101
|
+
orders: "1",
|
102
|
+
:"payment.1.1.approval_code" => "123456",
|
103
|
+
:"payment.1.1.approve_amount" => "1.00",
|
104
|
+
:"payment.1.1.currency" => "EUR",
|
105
|
+
:"payment.1.1.deposit_amount" => "0.00",
|
106
|
+
:"payment.1.1.merchant_number" => "1",
|
107
|
+
:"payment.1.1.operations_allowed" => "DEPOSIT,APPROVEREVERSAL",
|
108
|
+
:"payment.1.1.order_number" => "56453412",
|
109
|
+
:"payment.1.1.payment_number" => "56453412",
|
110
|
+
:"payment.1.1.payment_type" => "APG",
|
111
|
+
:"payment.1.1.state" => "payment_approved",
|
112
|
+
:"payment.1.1.time_created" => "30.07.2015 11:20:53",
|
113
|
+
:"payment.1.1.time_modified" => "30.07.2015 11:20:53",
|
114
|
+
status: "0"
|
115
|
+
}) }
|
116
|
+
end
|
117
|
+
|
118
|
+
context 'when order number is 543132154 (Sofortüberweisung)' do
|
119
|
+
let(:options) { { order_number: '543132154' } }
|
120
|
+
|
121
|
+
it { is_expected.to eq ( {
|
122
|
+
objects_total: "1",
|
123
|
+
:"order.1.amount" => "1.00",
|
124
|
+
:"order.1.approve_amount" => "0",
|
125
|
+
:"order.1.brand" => "sofortueberweisung",
|
126
|
+
:"order.1.contract_number" => "1234/1234",
|
127
|
+
:"order.1.credits" => "0",
|
128
|
+
:"order.1.currency" => "EUR",
|
129
|
+
:"order.1.customer_statement" => "Danke für den Einkauf!",
|
130
|
+
:"order.1.deposit_amount" => "1.00",
|
131
|
+
:"order.1.merchant_number" => "1",
|
132
|
+
:"order.1.order_description" => "F. Realtime, K-Nr: 12111",
|
133
|
+
:"order.1.order_number" => "543132154",
|
134
|
+
:"order.1.order_reference" => "OR-543132154",
|
135
|
+
:"order.1.payment_type" => "SUE",
|
136
|
+
:"order.1.payments" => "1",
|
137
|
+
:"order.1.refund_amount" => "0",
|
138
|
+
:"order.1.state" => "ORDERED",
|
139
|
+
:"order.1.time_created" => "30.07.2015 11:32:49",
|
140
|
+
:"order.1.time_modified" => "30.07.2015 11:32:49",
|
141
|
+
orders: "1",
|
142
|
+
:"payment.1.1.approval_code" => "00000-00000-AAAAAAAA-BBBB",
|
143
|
+
:"payment.1.1.approve_amount" => "1.00",
|
144
|
+
:"payment.1.1.batch_number" => "131",
|
145
|
+
:"payment.1.1.currency" => "EUR",
|
146
|
+
:"payment.1.1.deposit_amount" => "1.00",
|
147
|
+
:"payment.1.1.merchant_number" => "1",
|
148
|
+
:"payment.1.1.order_number" => "543132154",
|
149
|
+
:"payment.1.1.payment_number" => "543132154",
|
150
|
+
:"payment.1.1.payment_type" => "SUE",
|
151
|
+
:"payment.1.1.security_criteria" => "1",
|
152
|
+
:"payment.1.1.sender_account_number" => "1234567890",
|
153
|
+
:"payment.1.1.sender_account_owner" => "Test Consumer",
|
154
|
+
:"payment.1.1.sender_b_i_c" => "PNAGDE00000",
|
155
|
+
:"payment.1.1.sender_bank_name" => "Test Bank",
|
156
|
+
:"payment.1.1.sender_bank_number" => "1234578",
|
157
|
+
:"payment.1.1.sender_country" => "DE",
|
158
|
+
:"payment.1.1.sender_i_b_a_n" => "DE0000000000000000",
|
159
|
+
:"payment.1.1.state" => "payment_deposited",
|
160
|
+
:"payment.1.1.time_created" => "30.07.2015 11:32:49",
|
161
|
+
:"payment.1.1.time_modified" => "30.07.2015 11:32:49",
|
162
|
+
status: "0"
|
163
|
+
}) }
|
164
|
+
end
|
165
|
+
|
166
|
+
context 'when order number is 3485464 (PayPal)' do
|
167
|
+
let(:options) { { order_number: '3485464' } }
|
168
|
+
|
169
|
+
it { is_expected.to eq({
|
170
|
+
objects_total: "1",
|
171
|
+
:"order.1.amount" => "1.00",
|
172
|
+
:"order.1.approve_amount" => "0",
|
173
|
+
:"order.1.brand" => "PayPal",
|
174
|
+
:"order.1.contract_number" => "mail@shop.com",
|
175
|
+
:"order.1.credits" => "0",
|
176
|
+
:"order.1.currency" => "EUR",
|
177
|
+
:"order.1.customer_statement" => "Danke für den Einkauf!",
|
178
|
+
:"order.1.deposit_amount" => "1.00",
|
179
|
+
:"order.1.merchant_number" => "1",
|
180
|
+
:"order.1.order_description" => "E. Bay, K-Nr: 55266",
|
181
|
+
:"order.1.order_number" => "3485464",
|
182
|
+
:"order.1.order_reference" => "OR-3485464",
|
183
|
+
:"order.1.payment_type" => "PPL",
|
184
|
+
:"order.1.payments" => "1",
|
185
|
+
:"order.1.refund_amount" => "0",
|
186
|
+
:"order.1.state" => "ORDERED",
|
187
|
+
:"order.1.time_created" => "30.07.2015 11:41:37",
|
188
|
+
:"order.1.time_modified" => "30.07.2015 11:41:37",
|
189
|
+
orders: "1",
|
190
|
+
:"payment.1.1.approval_code" => "4PW61566G53703003",
|
191
|
+
:"payment.1.1.approve_amount" => "1.00",
|
192
|
+
:"payment.1.1.batch_number" => "129",
|
193
|
+
:"payment.1.1.currency" => "EUR",
|
194
|
+
:"payment.1.1.deposit_amount" => "1.00",
|
195
|
+
:"payment.1.1.merchant_number" => "1",
|
196
|
+
:"payment.1.1.order_number" => "3485464",
|
197
|
+
:"payment.1.1.payment_number" => "3485464",
|
198
|
+
:"payment.1.1.payment_type" => "PPL",
|
199
|
+
:"payment.1.1.paypal_payer_address_city" => "Musterstadt",
|
200
|
+
:"payment.1.1.paypal_payer_address_country" => "AT",
|
201
|
+
:"payment.1.1.paypal_payer_address_state" => "Musterland",
|
202
|
+
:"payment.1.1.paypal_payer_address_status" => "unverified",
|
203
|
+
:"payment.1.1.paypal_payer_address_z_i_p" => "1234",
|
204
|
+
:"payment.1.1.paypal_payer_email" => "buyer@paypal.com",
|
205
|
+
:"payment.1.1.paypal_payer_first_name" => "Test",
|
206
|
+
:"payment.1.1.paypal_payer_i_d" => "PAYER123456ID",
|
207
|
+
:"payment.1.1.paypal_payer_last_name" => "Consumer",
|
208
|
+
:"payment.1.1.paypal_protection_eligibility" => "ExtendedCustomerProtection",
|
209
|
+
:"payment.1.1.state" => "payment_deposited",
|
210
|
+
:"payment.1.1.time_created" => "30.07.2015 11:41:37",
|
211
|
+
:"payment.1.1.time_modified" => "30.07.2015 11:41:37",
|
212
|
+
status: "0"
|
213
|
+
}) }
|
214
|
+
end
|
215
|
+
|
216
|
+
context 'when order number is 123456789 (non-existing order)' do
|
217
|
+
let(:options) { { order_number: '123456789' } }
|
218
|
+
|
219
|
+
it { is_expected.to eq ({ objects_total: "0", orders: "0", status: "0" }) }
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
context 'when order_number is missing' do
|
224
|
+
let(:options) { Hash.new }
|
225
|
+
|
226
|
+
it { is_expected.to eq ({:"error.1.consumer_message" => "Order number is missing.",
|
227
|
+
:"error.1.error_code" => "11011",
|
228
|
+
:"error.1.message" => "Order number is missing.",
|
229
|
+
errors: "1",
|
230
|
+
status: "1"}) }
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|