spreedly 2.0.14 → 2.0.15
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.
- checksums.yaml +4 -4
- data/HISTORY.md +7 -0
- data/lib/spreedly.rb +1 -0
- data/lib/spreedly/environment.rb +14 -4
- data/lib/spreedly/gateway_class.rb +2 -1
- data/lib/spreedly/payment_methods/credit_card.rb +1 -1
- data/lib/spreedly/transactions/gateway_transaction.rb +1 -1
- data/lib/spreedly/transactions/store.rb +20 -0
- data/lib/spreedly/transactions/transaction.rb +2 -0
- data/lib/spreedly/urls.rb +4 -0
- data/lib/spreedly/version.rb +1 -1
- data/spreedly.gemspec +1 -0
- data/test/remote/remote_add_receiver_test.rb +7 -8
- data/test/remote/remote_gateway_options_test.rb +1 -1
- data/test/remote/remote_store_test.rb +47 -0
- data/test/unit/gateway_options_test.rb +2 -1
- data/test/unit/purchase_test.rb +1 -0
- data/test/unit/response_stubs/add_credit_card_stubs.rb +1 -0
- data/test/unit/response_stubs/add_gateway_stubs.rb +1 -0
- data/test/unit/response_stubs/authorization_stubs.rb +4 -0
- data/test/unit/response_stubs/capture_stubs.rb +2 -0
- data/test/unit/response_stubs/deliver_payment_method_stubs.rb +1 -0
- data/test/unit/response_stubs/find_gateway_stubs.rb +1 -0
- data/test/unit/response_stubs/find_payment_method_stubs.rb +2 -0
- data/test/unit/response_stubs/find_transaction_stubs.rb +2 -0
- data/test/unit/response_stubs/gateway_options_stubs.rb +2 -0
- data/test/unit/response_stubs/list_gateways_stubs.rb +1 -0
- data/test/unit/response_stubs/list_payment_methods_stubs.rb +2 -0
- data/test/unit/response_stubs/list_transactions_stubs.rb +3 -0
- data/test/unit/response_stubs/purchase_stubs.rb +4 -0
- data/test/unit/response_stubs/redact_payment_method_stubs.rb +1 -0
- data/test/unit/response_stubs/refund_stubs.rb +2 -0
- data/test/unit/response_stubs/retain_payment_method_stubs.rb +2 -0
- data/test/unit/response_stubs/store_stubs.rb +158 -0
- data/test/unit/response_stubs/update_credit_card_stubs.rb +1 -0
- data/test/unit/response_stubs/verification_stubs.rb +4 -0
- data/test/unit/response_stubs/void_stubs.rb +2 -0
- data/test/unit/store_test.rb +60 -0
- metadata +24 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a039097df66894fac8c6611d93ac56293888ace1
|
4
|
+
data.tar.gz: b177d6b3d261a0c7f54dbd51b03b73265ceaaa4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0091081a875551c012e21d69afdd0fba443c52a01c22a4e171b6752ddfdaa59f43241af0157460fc24f7d4d7b7b44ea01fe81b1e4ad39536159f709da613c607
|
7
|
+
data.tar.gz: 416efbaf986c32e256d733d171dd1796e02429984190cf930706ca351145c999e6cb8503c0be38ce01b0850ea7e47435cdde5f82424c2a1d76685bd989f2f37e
|
data/HISTORY.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
## Next Version
|
4
4
|
|
5
|
+
## 2.0.15
|
6
|
+
* Add support for supports_fraud_review gateway characteristic [markabe]
|
7
|
+
* Add support for the store API call [duff]
|
8
|
+
* Add support for company name property on credit card [duff]
|
9
|
+
* Deliver payment method uses talking to gateway timeout [duff]
|
10
|
+
* Fix issue creating production receiver [duff]
|
11
|
+
|
5
12
|
## 2.0.14
|
6
13
|
* Add support for gateway_specific_fields [duff]
|
7
14
|
|
data/lib/spreedly.rb
CHANGED
@@ -28,6 +28,7 @@ require 'spreedly/transactions/redact_payment_method'
|
|
28
28
|
require 'spreedly/transactions/redact_gateway'
|
29
29
|
require 'spreedly/transactions/recache_sensitive_data'
|
30
30
|
require 'spreedly/transactions/deliver_payment_method'
|
31
|
+
require 'spreedly/transactions/store'
|
31
32
|
require 'spreedly/gateway'
|
32
33
|
require 'spreedly/receiver'
|
33
34
|
require 'spreedly/gateway_class'
|
data/lib/spreedly/environment.rb
CHANGED
@@ -96,6 +96,11 @@ module Spreedly
|
|
96
96
|
Gateway.new_list_from(xml_doc)
|
97
97
|
end
|
98
98
|
|
99
|
+
def store_on_gateway(gateway_token, payment_method_token)
|
100
|
+
body = store_body(payment_method_token)
|
101
|
+
api_post(store_url(gateway_token), body)
|
102
|
+
end
|
103
|
+
|
99
104
|
def gateway_options
|
100
105
|
xml_doc = ssl_options(gateway_options_url)
|
101
106
|
GatewayClass.new_list_from(xml_doc)
|
@@ -129,8 +134,7 @@ module Spreedly
|
|
129
134
|
|
130
135
|
def deliver_to_receiver(receiver_token, payment_method_token, receiver_options)
|
131
136
|
body = deliver_to_receiver_body(payment_method_token, receiver_options)
|
132
|
-
|
133
|
-
DeliverPaymentMethod.new_from(xml_doc)
|
137
|
+
api_post(deliver_to_receiver_url(receiver_token), body)
|
134
138
|
end
|
135
139
|
|
136
140
|
private
|
@@ -202,11 +206,17 @@ module Spreedly
|
|
202
206
|
def add_receiver_body(receiver_type, host_names, credentials)
|
203
207
|
build_xml_request('receiver') do |doc|
|
204
208
|
doc.receiver_type receiver_type
|
205
|
-
doc.hostnames host_names
|
209
|
+
doc.hostnames(host_names) if host_names
|
206
210
|
add_credentials_to_doc(doc, credentials) if credentials && !credentials.empty?
|
207
211
|
end
|
208
212
|
end
|
209
213
|
|
214
|
+
def store_body(payment_method_token)
|
215
|
+
build_xml_request('transaction') do |doc|
|
216
|
+
doc.payment_method_token(payment_method_token)
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
210
220
|
def add_credentials_to_doc(doc, credentials)
|
211
221
|
doc.credentials do
|
212
222
|
credentials.each do |credential|
|
@@ -223,7 +233,7 @@ module Spreedly
|
|
223
233
|
doc.credit_card do
|
224
234
|
add_to_doc(doc, options, :number, :verification_value, :month, :first_name, :last_name,
|
225
235
|
:year, :address1, :address2, :city, :state, :zip, :country, :phone_number,
|
226
|
-
:eligible_for_card_updater)
|
236
|
+
:company, :eligible_for_card_updater)
|
227
237
|
end
|
228
238
|
end
|
229
239
|
end
|
@@ -8,7 +8,8 @@ module Spreedly
|
|
8
8
|
:supports_void, :supports_verify, :supports_reference_purchase,
|
9
9
|
:supports_purchase_via_preauthorization, :supports_offsite_purchase,
|
10
10
|
:supports_offsite_authorize, :supports_3dsecure_purchase, :supports_3dsecure_authorize,
|
11
|
-
:supports_store, :supports_remove, :supports_general_credit,
|
11
|
+
:supports_store, :supports_remove, :supports_general_credit,
|
12
|
+
:supports_fraud_review, type: :boolean
|
12
13
|
|
13
14
|
attr_reader :supported_countries, :payment_methods, :auth_modes, :regions
|
14
15
|
|
@@ -3,7 +3,7 @@ module Spreedly
|
|
3
3
|
class CreditCard < PaymentMethod
|
4
4
|
field :first_name, :last_name, :full_name, :month, :year
|
5
5
|
field :number, :last_four_digits, :first_six_digits, :card_type, :verification_value
|
6
|
-
field :address1, :address2, :city, :state, :zip, :country, :phone_number
|
6
|
+
field :address1, :address2, :city, :state, :zip, :country, :phone_number, :company
|
7
7
|
field :eligible_for_card_updater, type: :boolean
|
8
8
|
end
|
9
9
|
|
@@ -37,7 +37,7 @@ module Spreedly
|
|
37
37
|
class Response
|
38
38
|
include Fields
|
39
39
|
|
40
|
-
field :success, :pending, :cancelled, type: :boolean
|
40
|
+
field :success, :pending, :cancelled, :fraud_review, type: :boolean
|
41
41
|
field :created_at, :updated_at, type: :date_time
|
42
42
|
field :message, :avs_code, :avs_message, :cvv_code, :cvv_message, :error_code, :error_detail
|
43
43
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Spreedly
|
2
|
+
|
3
|
+
class Store < Transaction
|
4
|
+
|
5
|
+
attr_reader :payment_method, :basis_payment_method, :response
|
6
|
+
|
7
|
+
def initialize(xml_doc)
|
8
|
+
super
|
9
|
+
payment_method_xml_doc = xml_doc.at_xpath('.//payment_method')
|
10
|
+
@payment_method = payment_method_xml_doc ? PaymentMethod.new_from(xml_doc.at_xpath('.//payment_method')) : nil
|
11
|
+
|
12
|
+
@basis_payment_method = PaymentMethod.new_from(xml_doc.at_xpath('.//basis_payment_method'))
|
13
|
+
|
14
|
+
response_xml_doc = xml_doc.at_xpath('.//response')
|
15
|
+
@response = response_xml_doc ? Response.new(response_xml_doc) : nil
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/spreedly/urls.rb
CHANGED
@@ -54,6 +54,10 @@ module Spreedly
|
|
54
54
|
"#{base_url}/v1/gateways/#{gateway_token}/redact.xml"
|
55
55
|
end
|
56
56
|
|
57
|
+
def store_url(gateway_token)
|
58
|
+
"#{base_url}/v1/gateways/#{gateway_token}/store.xml"
|
59
|
+
end
|
60
|
+
|
57
61
|
def list_transactions_url(since_token, payment_method_token)
|
58
62
|
since_param = "?since_token=#{since_token}" if since_token
|
59
63
|
return "#{base_url}/v1/transactions.xml#{since_param}" unless payment_method_token
|
data/lib/spreedly/version.rb
CHANGED
data/spreedly.gemspec
CHANGED
@@ -25,16 +25,15 @@ class RemoteAddReceiverTest < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_add_test_receiver
|
28
|
-
receiver = @environment.add_receiver(:test, 'http://
|
28
|
+
receiver = @environment.add_receiver(:test, 'http://testserver.com')
|
29
29
|
assert_equal "test", receiver.receiver_type
|
30
|
-
assert_equal 'http://
|
30
|
+
assert_equal 'http://testserver.com', receiver.hostnames
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# end
|
33
|
+
def test_need_active_account
|
34
|
+
assert_raise_with_message(Spreedly::PaymentRequiredError, "Your account has not been activated for real transactions. Please update your subscription settings.") do
|
35
|
+
@environment.add_receiver(:braintree)
|
36
|
+
end
|
37
|
+
end
|
39
38
|
|
40
39
|
end
|
@@ -10,7 +10,7 @@ class RemoteGatewayOptionsTest < Test::Unit::TestCase
|
|
10
10
|
gateway_classes = @environment.gateway_options
|
11
11
|
braintree = gateway_classes.select { |each| each.name == "Braintree" }.first
|
12
12
|
assert_equal "http://www.braintreepaymentsolutions.com/", braintree.homepage
|
13
|
-
assert_equal %w(credit_card third_party_token), braintree.payment_methods
|
13
|
+
assert_equal %w(credit_card third_party_token apple_pay), braintree.payment_methods
|
14
14
|
assert_equal %w(asia_pacific europe north_america), braintree.regions
|
15
15
|
assert_equal %w(orange blue), braintree.auth_modes.map { |e| e.auth_mode_type }
|
16
16
|
assert_equal %w(login password), braintree.auth_modes.first.credentials.map { |e| e.name }
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RemoteStoreTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@environment = Spreedly::Environment.new(remote_test_environment_key, remote_test_access_secret)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_invalid_login
|
10
|
+
assert_invalid_login do |environment|
|
11
|
+
environment.store_on_gateway('gtoken', 'ptoken')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_payment_method_not_found
|
16
|
+
assert_raise_with_message(Spreedly::TransactionCreationError, "There is no payment method corresponding to the specified payment method token.") do
|
17
|
+
@environment.store_on_gateway('gateway_token', 'unknown_payment_method')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_gateway_not_found
|
22
|
+
card_token = create_card_on(@environment).token
|
23
|
+
assert_raise_with_message(Spreedly::NotFoundError, "Unable to find the specified gateway.") do
|
24
|
+
@environment.store_on_gateway('unknown_gateway', card_token)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_successful_store
|
29
|
+
gateway_token = @environment.add_gateway(:test).token
|
30
|
+
card_token = create_card_on(@environment).token
|
31
|
+
|
32
|
+
transaction = @environment.store_on_gateway(gateway_token, card_token)
|
33
|
+
assert transaction.succeeded?
|
34
|
+
assert_equal card_token, transaction.basis_payment_method.token
|
35
|
+
assert transaction.payment_method.third_party_token
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_failed_store
|
39
|
+
gateway_token = @environment.add_gateway(:test).token
|
40
|
+
card_token = create_card_on(@environment, number: "4217651111111119").token
|
41
|
+
|
42
|
+
transaction = @environment.store_on_gateway(gateway_token, card_token)
|
43
|
+
assert !transaction.succeeded?
|
44
|
+
assert_equal "Unable to store card", transaction.message
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -66,7 +66,8 @@ class GatewayOptionsTest < Test::Unit::TestCase
|
|
66
66
|
:supports_offsite_authorize,
|
67
67
|
:supports_3dsecure_purchase,
|
68
68
|
:supports_3dsecure_authorize,
|
69
|
-
:supports_store
|
69
|
+
:supports_store,
|
70
|
+
:supports_fraud_review
|
70
71
|
].each do |c|
|
71
72
|
assert gateway_class.send("#{c}?")
|
72
73
|
end
|
data/test/unit/purchase_test.rb
CHANGED
@@ -37,6 +37,7 @@ class PurchaseTest < Test::Unit::TestCase
|
|
37
37
|
assert_equal '31', t.response.cvv_code
|
38
38
|
assert_equal 'Rutabaga', t.response.cvv_message
|
39
39
|
assert !t.response.pending
|
40
|
+
assert !t.response.fraud_review
|
40
41
|
assert_equal '899', t.response.error_code
|
41
42
|
assert_equal 'The eagle lives!', t.response.error_detail
|
42
43
|
assert !t.response.cancelled
|
@@ -31,6 +31,7 @@ module AddCreditCardStubs
|
|
31
31
|
<zip>33221</zip>
|
32
32
|
<country>UK</country>
|
33
33
|
<phone_number>43</phone_number>
|
34
|
+
<company>Acme</company>
|
34
35
|
<full_name>Eland Venture</full_name>
|
35
36
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
36
37
|
<payment_method_type>credit_card</payment_method_type>
|
@@ -21,6 +21,7 @@ module AddGatewayStubs
|
|
21
21
|
<supports_3dsecure_authorize type="boolean">true</supports_3dsecure_authorize>
|
22
22
|
<supports_store type="boolean">true</supports_store>
|
23
23
|
<supports_remove type="boolean">true</supports_remove>
|
24
|
+
<supports_fraud_review type="boolean">true</supports_fraud_review>
|
24
25
|
</characteristics>
|
25
26
|
<state>retained</state>
|
26
27
|
<payment_methods>
|
@@ -39,6 +39,7 @@ module AuthorizationStubs
|
|
39
39
|
<cvv_code nil="true"/>
|
40
40
|
<cvv_message nil="true"/>
|
41
41
|
<pending type="boolean">false</pending>
|
42
|
+
<fraud_review type="boolean">false</fraud_review>
|
42
43
|
<error_code></error_code>
|
43
44
|
<error_detail nil="true"/>
|
44
45
|
<cancelled type="boolean">false</cancelled>
|
@@ -66,6 +67,7 @@ module AuthorizationStubs
|
|
66
67
|
<zip nil="true"/>
|
67
68
|
<country nil="true"/>
|
68
69
|
<phone_number nil="true"/>
|
70
|
+
<company>Acme</company>
|
69
71
|
<full_name>John Forthrast</full_name>
|
70
72
|
<payment_method_type>credit_card</payment_method_type>
|
71
73
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -110,6 +112,7 @@ module AuthorizationStubs
|
|
110
112
|
<cvv_code nil="true"/>
|
111
113
|
<cvv_message nil="true"/>
|
112
114
|
<pending type="boolean">false</pending>
|
115
|
+
<fraud_review type="boolean">false</fraud_review>
|
113
116
|
<error_code></error_code>
|
114
117
|
<error_detail>The eagle may have perished.</error_detail>
|
115
118
|
<cancelled type="boolean">false</cancelled>
|
@@ -137,6 +140,7 @@ module AuthorizationStubs
|
|
137
140
|
<zip nil="true"/>
|
138
141
|
<country nil="true"/>
|
139
142
|
<phone_number nil="true"/>
|
143
|
+
<company>Acme</company>
|
140
144
|
<full_name>Perrin Aybara</full_name>
|
141
145
|
<payment_method_type>credit_card</payment_method_type>
|
142
146
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -30,6 +30,7 @@ module CaptureStubs
|
|
30
30
|
<cvv_code nil="true"/>
|
31
31
|
<cvv_message nil="true"/>
|
32
32
|
<pending type="boolean">false</pending>
|
33
|
+
<fraud_review type="boolean">false</fraud_review>
|
33
34
|
<error_code></error_code>
|
34
35
|
<error_detail nil="true"/>
|
35
36
|
<cancelled type="boolean">false</cancelled>
|
@@ -73,6 +74,7 @@ module CaptureStubs
|
|
73
74
|
<cvv_code nil="true"/>
|
74
75
|
<cvv_message nil="true"/>
|
75
76
|
<pending type="boolean">false</pending>
|
77
|
+
<fraud_review type="boolean">false</fraud_review>
|
76
78
|
<error_code></error_code>
|
77
79
|
<error_detail>The eagle has hit the window.</error_detail>
|
78
80
|
<cancelled type="boolean">false</cancelled>
|
@@ -69,6 +69,7 @@ module DeliverPaymentMethodStubs
|
|
69
69
|
<zip nil="true"/>
|
70
70
|
<country nil="true"/>
|
71
71
|
<phone_number nil="true"/>
|
72
|
+
<company>Acme</company>
|
72
73
|
<eligible_for_card_updater>true</eligible_for_card_updater>
|
73
74
|
<verification_value></verification_value>
|
74
75
|
<number>XXXX-XXXX-XXXX-1111</number>
|
@@ -23,6 +23,7 @@ module FindGatewayStubs
|
|
23
23
|
<supports_3dsecure_authorize type="boolean">false</supports_3dsecure_authorize>
|
24
24
|
<supports_store type="boolean">false</supports_store>
|
25
25
|
<supports_remove type="boolean">false</supports_remove>
|
26
|
+
<supports_fraud_review type="boolean">false</supports_fraud_review>
|
26
27
|
</characteristics>
|
27
28
|
<credentials>
|
28
29
|
<credential>
|
@@ -25,6 +25,7 @@ module FindPaymentMethodStubs
|
|
25
25
|
<zip>02124</zip>
|
26
26
|
<country>USA</country>
|
27
27
|
<phone_number>201.344.7712</phone_number>
|
28
|
+
<company>Acme</company>
|
28
29
|
<full_name>Alcatraz Smedry</full_name>
|
29
30
|
<payment_method_type>credit_card</payment_method_type>
|
30
31
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -61,6 +62,7 @@ module FindPaymentMethodStubs
|
|
61
62
|
<zip nil="true"/>
|
62
63
|
<country nil="true"/>
|
63
64
|
<phone_number nil="true"/>
|
65
|
+
<company>Acme</company>
|
64
66
|
<full_name></full_name>
|
65
67
|
<payment_method_type>credit_card</payment_method_type>
|
66
68
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -32,6 +32,7 @@ module FindTransactionStubs
|
|
32
32
|
<zip nil="true"/>
|
33
33
|
<country nil="true"/>
|
34
34
|
<phone_number nil="true"/>
|
35
|
+
<company>Acme</company>
|
35
36
|
<full_name>Perrin Aybara</full_name>
|
36
37
|
<payment_method_type>credit_card</payment_method_type>
|
37
38
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -87,6 +88,7 @@ module FindTransactionStubs
|
|
87
88
|
<zip>10657</zip>
|
88
89
|
<country>United States</country>
|
89
90
|
<phone_number nil="true"/>
|
91
|
+
<company>Acme</company>
|
90
92
|
<full_name>Jonathan Phaedrus</full_name>
|
91
93
|
<payment_method_type>credit_card</payment_method_type>
|
92
94
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -78,6 +78,7 @@ module GatewayOptionsStubs
|
|
78
78
|
<supports_3dsecure_authorize type="boolean">true</supports_3dsecure_authorize>
|
79
79
|
<supports_store type="boolean">true</supports_store>
|
80
80
|
<supports_remove type="boolean">false</supports_remove>
|
81
|
+
<supports_fraud_review type="boolean">true</supports_fraud_review>
|
81
82
|
</characteristics>
|
82
83
|
<payment_methods>
|
83
84
|
<payment_method>credit_card</payment_method>
|
@@ -128,6 +129,7 @@ module GatewayOptionsStubs
|
|
128
129
|
<supports_3dsecure_authorize type="boolean">false</supports_3dsecure_authorize>
|
129
130
|
<supports_store type="boolean">false</supports_store>
|
130
131
|
<supports_remove type="boolean">false</supports_remove>
|
132
|
+
<supports_fraud_review type="boolean">false</supports_fraud_review>
|
131
133
|
</characteristics>
|
132
134
|
<payment_methods>
|
133
135
|
<payment_method>credit_card</payment_method>
|
@@ -22,6 +22,7 @@ module ListGatewaysStubs
|
|
22
22
|
<supports_3dsecure_authorize type="boolean">true</supports_3dsecure_authorize>
|
23
23
|
<supports_store type="boolean">true</supports_store>
|
24
24
|
<supports_remove type="boolean">true</supports_remove>
|
25
|
+
<supports_fraud_review type="boolean">true</supports_fraud_review>
|
25
26
|
</characteristics>
|
26
27
|
<credentials>
|
27
28
|
</credentials>
|
@@ -24,6 +24,7 @@ module ListPaymentMethodsStubs
|
|
24
24
|
<zip nil="true"/>
|
25
25
|
<country nil="true"/>
|
26
26
|
<phone_number nil="true"/>
|
27
|
+
<company>Acme</company>
|
27
28
|
<full_name>Perrin Aybara</full_name>
|
28
29
|
<payment_method_type>credit_card</payment_method_type>
|
29
30
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -53,6 +54,7 @@ module ListPaymentMethodsStubs
|
|
53
54
|
<zip nil="true"/>
|
54
55
|
<country nil="true"/>
|
55
56
|
<phone_number nil="true"/>
|
57
|
+
<company>Acme</company>
|
56
58
|
<full_name>Mat Cauthon</full_name>
|
57
59
|
<payment_method_type>credit_card</payment_method_type>
|
58
60
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -31,6 +31,7 @@ module ListTransactionsStubs
|
|
31
31
|
<cvv_code nil="true"/>
|
32
32
|
<cvv_message nil="true"/>
|
33
33
|
<pending type="boolean">false</pending>
|
34
|
+
<fraud_review type="boolean">false</fraud_review>
|
34
35
|
<error_code></error_code>
|
35
36
|
<error_detail nil="true"/>
|
36
37
|
<cancelled type="boolean">false</cancelled>
|
@@ -58,6 +59,7 @@ module ListTransactionsStubs
|
|
58
59
|
<zip nil="true"/>
|
59
60
|
<country nil="true"/>
|
60
61
|
<phone_number nil="true"/>
|
62
|
+
<company>Acme</company>
|
61
63
|
<full_name>Perrin Aybara</full_name>
|
62
64
|
<payment_method_type>credit_card</payment_method_type>
|
63
65
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -98,6 +100,7 @@ module ListTransactionsStubs
|
|
98
100
|
<cvv_code nil="true"/>
|
99
101
|
<cvv_message nil="true"/>
|
100
102
|
<pending type="boolean">false</pending>
|
103
|
+
<fraud_review type="boolean">false</fraud_review>
|
101
104
|
<error_code></error_code>
|
102
105
|
<error_detail nil="true"/>
|
103
106
|
<cancelled type="boolean">false</cancelled>
|
@@ -30,6 +30,7 @@ module PurchaseStubs
|
|
30
30
|
<cvv_code>31</cvv_code>
|
31
31
|
<cvv_message nil="true">Rutabaga</cvv_message>
|
32
32
|
<pending type="boolean">false</pending>
|
33
|
+
<fraud_review type="boolean">false</fraud_review>
|
33
34
|
<error_code>899</error_code>
|
34
35
|
<error_detail nil="true">The eagle lives!</error_detail>
|
35
36
|
<cancelled type="boolean">false</cancelled>
|
@@ -57,6 +58,7 @@ module PurchaseStubs
|
|
57
58
|
<zip nil="true"/>
|
58
59
|
<country nil="true"/>
|
59
60
|
<phone_number nil="true"/>
|
61
|
+
<company>Acme</company>
|
60
62
|
<full_name>Perrin Aybara</full_name>
|
61
63
|
<payment_method_type>credit_card</payment_method_type>
|
62
64
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -101,6 +103,7 @@ module PurchaseStubs
|
|
101
103
|
<cvv_code nil="true"/>
|
102
104
|
<cvv_message nil="true"/>
|
103
105
|
<pending type="boolean">false</pending>
|
106
|
+
<fraud_review type="boolean">false</fraud_review>
|
104
107
|
<error_code></error_code>
|
105
108
|
<error_detail nil="true">The eagle is dead Jim.</error_detail>
|
106
109
|
<cancelled type="boolean">false</cancelled>
|
@@ -128,6 +131,7 @@ module PurchaseStubs
|
|
128
131
|
<zip nil="true"/>
|
129
132
|
<country nil="true"/>
|
130
133
|
<phone_number nil="true"/>
|
134
|
+
<company>Acme</company>
|
131
135
|
<full_name>Perrin Aybara</full_name>
|
132
136
|
<payment_method_type>credit_card</payment_method_type>
|
133
137
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -36,6 +36,7 @@ module RedactPaymentMethodStubs
|
|
36
36
|
<zip nil="true"/>
|
37
37
|
<country nil="true"/>
|
38
38
|
<phone_number nil="true"/>
|
39
|
+
<company>Acme</company>
|
39
40
|
<full_name>Perrin Aybara</full_name>
|
40
41
|
<payment_method_type>credit_card</payment_method_type>
|
41
42
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -30,6 +30,7 @@ module RefundStubs
|
|
30
30
|
<cvv_code nil="true"/>
|
31
31
|
<cvv_message nil="true"/>
|
32
32
|
<pending type="boolean">false</pending>
|
33
|
+
<fraud_review type="boolean">false</fraud_review>
|
33
34
|
<error_code></error_code>
|
34
35
|
<error_detail nil="true"/>
|
35
36
|
<cancelled type="boolean">false</cancelled>
|
@@ -73,6 +74,7 @@ module RefundStubs
|
|
73
74
|
<cvv_code nil="true"/>
|
74
75
|
<cvv_message nil="true"/>
|
75
76
|
<pending type="boolean">false</pending>
|
77
|
+
<fraud_review type="boolean">false</fraud_review>
|
76
78
|
<error_code></error_code>
|
77
79
|
<error_detail>The eagle is actually a dead duck.</error_detail>
|
78
80
|
<cancelled type="boolean">false</cancelled>
|
@@ -31,6 +31,7 @@ module RetainPaymentMethodStubs
|
|
31
31
|
<zip nil="true"/>
|
32
32
|
<country nil="true"/>
|
33
33
|
<phone_number nil="true"/>
|
34
|
+
<company>Acme</company>
|
34
35
|
<full_name>Perrin Aybara</full_name>
|
35
36
|
<payment_method_type>credit_card</payment_method_type>
|
36
37
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -74,6 +75,7 @@ module RetainPaymentMethodStubs
|
|
74
75
|
<zip nil="true"/>
|
75
76
|
<country nil="true"/>
|
76
77
|
<phone_number nil="true"/>
|
78
|
+
<company>Acme</company>
|
77
79
|
<full_name>Perrin Aybara</full_name>
|
78
80
|
<payment_method_type>credit_card</payment_method_type>
|
79
81
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -0,0 +1,158 @@
|
|
1
|
+
module StoreStubs
|
2
|
+
|
3
|
+
def successful_store_response
|
4
|
+
StubResponse.succeeded <<-XML
|
5
|
+
<transaction>
|
6
|
+
<created_at type="dateTime">2015-03-20T17:32:04Z</created_at>
|
7
|
+
<updated_at type="dateTime">2015-03-20T17:32:04Z</updated_at>
|
8
|
+
<succeeded type="boolean">true</succeeded>
|
9
|
+
<token>1gOXWjBEiF83cylf5t4WLe4uULI</token>
|
10
|
+
<state>succeeded</state>
|
11
|
+
<gateway_specific_fields nil="true"/>
|
12
|
+
<gateway_specific_response_fields nil="true"/>
|
13
|
+
<transaction_type>Store</transaction_type>
|
14
|
+
<third_party_token nil="true"/>
|
15
|
+
<gateway_transaction_id nil="true"/>
|
16
|
+
<message key="messages.transaction_succeeded">Succeeded!</message>
|
17
|
+
<payment_method>
|
18
|
+
<token>McNbLlg7Ytmyyuh45PCsyfHas1r</token>
|
19
|
+
<created_at type="dateTime">2015-03-20T17:32:04Z</created_at>
|
20
|
+
<updated_at type="dateTime">2015-03-20T17:32:04Z</updated_at>
|
21
|
+
<gateway_type>test</gateway_type>
|
22
|
+
<storage_state>retained</storage_state>
|
23
|
+
<third_party_token>test_vault:5555555555554444</third_party_token>
|
24
|
+
<payment_method_type>third_party_token</payment_method_type>
|
25
|
+
<errors>
|
26
|
+
</errors>
|
27
|
+
</payment_method>
|
28
|
+
<basis_payment_method>
|
29
|
+
<token>GQzlYKsJho12S2VswhsY8Q9qCmM</token>
|
30
|
+
<created_at type="dateTime">2015-03-20T17:32:03Z</created_at>
|
31
|
+
<updated_at type="dateTime">2015-03-20T17:32:04Z</updated_at>
|
32
|
+
<email>perrin@wot.com</email>
|
33
|
+
<data nil="true"/>
|
34
|
+
<storage_state>retained</storage_state>
|
35
|
+
<test type="boolean">true</test>
|
36
|
+
<last_four_digits>4444</last_four_digits>
|
37
|
+
<first_six_digits>555555</first_six_digits>
|
38
|
+
<card_type>master</card_type>
|
39
|
+
<first_name>Perrin</first_name>
|
40
|
+
<last_name>Aybara</last_name>
|
41
|
+
<month type="integer">1</month>
|
42
|
+
<year type="integer">2019</year>
|
43
|
+
<address1 nil="true"/>
|
44
|
+
<address2 nil="true"/>
|
45
|
+
<city nil="true"/>
|
46
|
+
<state nil="true"/>
|
47
|
+
<zip nil="true"/>
|
48
|
+
<country nil="true"/>
|
49
|
+
<phone_number nil="true"/>
|
50
|
+
<company>Acme</company>
|
51
|
+
<full_name>Perrin Aybara</full_name>
|
52
|
+
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
53
|
+
<shipping_address1 nil="true"/>
|
54
|
+
<shipping_address2 nil="true"/>
|
55
|
+
<shipping_city nil="true"/>
|
56
|
+
<shipping_state nil="true"/>
|
57
|
+
<shipping_zip nil="true"/>
|
58
|
+
<shipping_country nil="true"/>
|
59
|
+
<shipping_phone_number nil="true"/>
|
60
|
+
<payment_method_type>credit_card</payment_method_type>
|
61
|
+
<errors>
|
62
|
+
</errors>
|
63
|
+
<verification_value/>
|
64
|
+
<number>XXXX-XXXX-XXXX-4444</number>
|
65
|
+
</basis_payment_method>
|
66
|
+
<response>
|
67
|
+
<success type="boolean">true</success>
|
68
|
+
<message>Successful store</message>
|
69
|
+
<avs_code nil="true"/>
|
70
|
+
<avs_message nil="true"/>
|
71
|
+
<cvv_code nil="true"/>
|
72
|
+
<cvv_message nil="true"/>
|
73
|
+
<pending type="boolean">false</pending>
|
74
|
+
<result_unknown type="boolean">false</result_unknown>
|
75
|
+
<error_code/>
|
76
|
+
<error_detail nil="true"/>
|
77
|
+
<cancelled type="boolean">false</cancelled>
|
78
|
+
<fraud_review nil="true"/>
|
79
|
+
<created_at type="dateTime">2015-03-20T17:32:04Z</created_at>
|
80
|
+
<updated_at type="dateTime">2015-03-20T17:32:04Z</updated_at>
|
81
|
+
</response>
|
82
|
+
</transaction>
|
83
|
+
XML
|
84
|
+
end
|
85
|
+
|
86
|
+
def failed_store_response
|
87
|
+
StubResponse.failed <<-XML
|
88
|
+
<transaction>
|
89
|
+
<created_at type="dateTime">2015-03-20T17:35:20Z</created_at>
|
90
|
+
<updated_at type="dateTime">2015-03-20T17:35:20Z</updated_at>
|
91
|
+
<succeeded type="boolean">false</succeeded>
|
92
|
+
<token>88PvId4mseKsO09KlkcoilsbfMW</token>
|
93
|
+
<state>gateway_processing_failed</state>
|
94
|
+
<gateway_specific_fields nil="true"/>
|
95
|
+
<gateway_specific_response_fields nil="true"/>
|
96
|
+
<transaction_type>Store</transaction_type>
|
97
|
+
<third_party_token nil="true"/>
|
98
|
+
<gateway_transaction_id nil="true"/>
|
99
|
+
<message>Unable to store card</message>
|
100
|
+
<basis_payment_method>
|
101
|
+
<token>E0iLmJB1eHtJJXf7rpmk2UimCVi</token>
|
102
|
+
<created_at type="dateTime">2015-03-20T17:35:19Z</created_at>
|
103
|
+
<updated_at type="dateTime">2015-03-20T17:35:19Z</updated_at>
|
104
|
+
<email>perrin@wot.com</email>
|
105
|
+
<data nil="true"/>
|
106
|
+
<storage_state>retained</storage_state>
|
107
|
+
<test type="boolean">true</test>
|
108
|
+
<last_four_digits>1119</last_four_digits>
|
109
|
+
<first_six_digits>421765</first_six_digits>
|
110
|
+
<card_type>visa</card_type>
|
111
|
+
<first_name>Perrin</first_name>
|
112
|
+
<last_name>Aybara</last_name>
|
113
|
+
<month type="integer">1</month>
|
114
|
+
<year type="integer">2019</year>
|
115
|
+
<address1 nil="true"/>
|
116
|
+
<address2 nil="true"/>
|
117
|
+
<city nil="true"/>
|
118
|
+
<state nil="true"/>
|
119
|
+
<zip nil="true"/>
|
120
|
+
<country nil="true"/>
|
121
|
+
<phone_number nil="true"/>
|
122
|
+
<company>Acme</company>
|
123
|
+
<full_name>Perrin Aybara</full_name>
|
124
|
+
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
125
|
+
<shipping_address1 nil="true"/>
|
126
|
+
<shipping_address2 nil="true"/>
|
127
|
+
<shipping_city nil="true"/>
|
128
|
+
<shipping_state nil="true"/>
|
129
|
+
<shipping_zip nil="true"/>
|
130
|
+
<shipping_country nil="true"/>
|
131
|
+
<shipping_phone_number nil="true"/>
|
132
|
+
<payment_method_type>credit_card</payment_method_type>
|
133
|
+
<errors>
|
134
|
+
</errors>
|
135
|
+
<verification_value/>
|
136
|
+
<number>XXXX-XXXX-XXXX-1119</number>
|
137
|
+
</basis_payment_method>
|
138
|
+
<response>
|
139
|
+
<success type="boolean">false</success>
|
140
|
+
<message>Unable to store card</message>
|
141
|
+
<avs_code nil="true"/>
|
142
|
+
<avs_message nil="true"/>
|
143
|
+
<cvv_code nil="true"/>
|
144
|
+
<cvv_message nil="true"/>
|
145
|
+
<pending type="boolean">false</pending>
|
146
|
+
<result_unknown type="boolean">false</result_unknown>
|
147
|
+
<error_code/>
|
148
|
+
<error_detail nil="true"/>
|
149
|
+
<cancelled type="boolean">false</cancelled>
|
150
|
+
<fraud_review nil="true"/>
|
151
|
+
<created_at type="dateTime">2015-03-20T17:35:20Z</created_at>
|
152
|
+
<updated_at type="dateTime">2015-03-20T17:35:20Z</updated_at>
|
153
|
+
</response>
|
154
|
+
</transaction>
|
155
|
+
XML
|
156
|
+
end
|
157
|
+
|
158
|
+
end
|
@@ -23,6 +23,7 @@ module UpdateCreditCardStubs
|
|
23
23
|
<zip nil="true"/>
|
24
24
|
<country nil="true"/>
|
25
25
|
<phone_number nil="true"/>
|
26
|
+
<company>Acme</company>
|
26
27
|
<full_name>Mat Cauthon</full_name>
|
27
28
|
<payment_method_type>credit_card</payment_method_type>
|
28
29
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
@@ -31,6 +31,7 @@ module VerificationStubs
|
|
31
31
|
<cvv_code nil="true"/>
|
32
32
|
<cvv_message nil="true"/>
|
33
33
|
<pending type="boolean">false</pending>
|
34
|
+
<fraud_review type="boolean">false</fraud_review>
|
34
35
|
<error_code/>
|
35
36
|
<error_detail nil="true"/>
|
36
37
|
<cancelled type="boolean">false</cancelled>
|
@@ -59,6 +60,7 @@ module VerificationStubs
|
|
59
60
|
<zip nil="true"/>
|
60
61
|
<country nil="true"/>
|
61
62
|
<phone_number nil="true"/>
|
63
|
+
<company>Acme</company>
|
62
64
|
<full_name>Perrin Aybara</full_name>
|
63
65
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
64
66
|
<payment_method_type>credit_card</payment_method_type>
|
@@ -100,6 +102,7 @@ module VerificationStubs
|
|
100
102
|
<cvv_code nil="true"/>
|
101
103
|
<cvv_message nil="true"/>
|
102
104
|
<pending type="boolean">false</pending>
|
105
|
+
<fraud_review type="boolean">false</fraud_review>
|
103
106
|
<error_code/>
|
104
107
|
<error_detail>What up with that?</error_detail>
|
105
108
|
<cancelled type="boolean">false</cancelled>
|
@@ -128,6 +131,7 @@ module VerificationStubs
|
|
128
131
|
<zip nil="true"/>
|
129
132
|
<country nil="true"/>
|
130
133
|
<phone_number nil="true"/>
|
134
|
+
<company>Acme</company>
|
131
135
|
<full_name>Perrin Aybara</full_name>
|
132
136
|
<eligible_for_card_updater type="boolean">true</eligible_for_card_updater>
|
133
137
|
<payment_method_type>credit_card</payment_method_type>
|
@@ -29,6 +29,7 @@ module VoidStubs
|
|
29
29
|
<cvv_code nil="true"/>
|
30
30
|
<cvv_message nil="true"/>
|
31
31
|
<pending type="boolean">false</pending>
|
32
|
+
<fraud_review type="boolean">false</fraud_review>
|
32
33
|
<error_code></error_code>
|
33
34
|
<error_detail nil="true"/>
|
34
35
|
<cancelled type="boolean">false</cancelled>
|
@@ -68,6 +69,7 @@ module VoidStubs
|
|
68
69
|
<cvv_code nil="true"/>
|
69
70
|
<cvv_message nil="true"/>
|
70
71
|
<pending type="boolean">false</pending>
|
72
|
+
<fraud_review type="boolean">false</fraud_review>
|
71
73
|
<error_code>10609</error_code>
|
72
74
|
<error_detail nil="true"/>
|
73
75
|
<cancelled type="boolean">false</cancelled>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'unit/response_stubs/store_stubs'
|
3
|
+
|
4
|
+
class StoreTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
include StoreStubs
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@environment = Spreedly::Environment.new("key", "secret")
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_successful_store
|
13
|
+
t = store_using(successful_store_response)
|
14
|
+
|
15
|
+
assert_kind_of(Spreedly::Store, t)
|
16
|
+
assert_equal '1gOXWjBEiF83cylf5t4WLe4uULI', t.token
|
17
|
+
assert_equal Time.parse("2015-03-20 17:32:04 UTC"), t.created_at
|
18
|
+
assert_equal Time.parse("2015-03-20 17:32:04 UTC"), t.updated_at
|
19
|
+
assert t.succeeded?
|
20
|
+
assert_equal 'succeeded', t.state
|
21
|
+
assert_equal 'McNbLlg7Ytmyyuh45PCsyfHas1r', t.payment_method.token
|
22
|
+
assert_equal "test_vault:5555555555554444", t.payment_method.third_party_token
|
23
|
+
assert_equal 'GQzlYKsJho12S2VswhsY8Q9qCmM', t.basis_payment_method.token
|
24
|
+
|
25
|
+
assert t.response.success
|
26
|
+
assert_equal 'Successful store', t.response.message
|
27
|
+
assert !t.response.pending
|
28
|
+
assert !t.response.fraud_review
|
29
|
+
assert !t.response.cancelled
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_failed_store
|
33
|
+
t = store_using(failed_store_response)
|
34
|
+
|
35
|
+
assert_kind_of(Spreedly::Store, t)
|
36
|
+
assert_equal '88PvId4mseKsO09KlkcoilsbfMW', t.token
|
37
|
+
assert !t.succeeded?
|
38
|
+
assert_equal 'gateway_processing_failed', t.state
|
39
|
+
|
40
|
+
assert_equal 'E0iLmJB1eHtJJXf7rpmk2UimCVi', t.basis_payment_method.token
|
41
|
+
assert_equal 'Unable to store card', t.message
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_request_body_params
|
45
|
+
body = get_request_body(successful_store_response) do
|
46
|
+
@environment.store_on_gateway("TheGatewayToken", "TheCardToken")
|
47
|
+
end
|
48
|
+
|
49
|
+
transaction = body.xpath('./transaction')
|
50
|
+
assert_xpaths_in transaction, [ './payment_method_token', 'TheCardToken' ]
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
private
|
55
|
+
def store_using(response)
|
56
|
+
@environment.stubs(:raw_ssl_request).returns(response)
|
57
|
+
@environment.store_on_gateway("IgnoredGatewayTokenSinceResponseIsStubbed", "IgnoredPaymentMethodTokenSinceResponseIsStubbed")
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spreedly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Spreedly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: test-unit
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: The Spreedly gem provides a convenient Ruby wrapper for the Spreedly
|
98
112
|
API.
|
99
113
|
email:
|
@@ -139,6 +153,7 @@ files:
|
|
139
153
|
- lib/spreedly/transactions/redact_payment_method.rb
|
140
154
|
- lib/spreedly/transactions/refund.rb
|
141
155
|
- lib/spreedly/transactions/retain_payment_method.rb
|
156
|
+
- lib/spreedly/transactions/store.rb
|
142
157
|
- lib/spreedly/transactions/transaction.rb
|
143
158
|
- lib/spreedly/transactions/verification.rb
|
144
159
|
- lib/spreedly/transactions/void.rb
|
@@ -170,6 +185,7 @@ files:
|
|
170
185
|
- test/remote/remote_redact_payment_method_test.rb
|
171
186
|
- test/remote/remote_refund_test.rb
|
172
187
|
- test/remote/remote_retain_test.rb
|
188
|
+
- test/remote/remote_store_test.rb
|
173
189
|
- test/remote/remote_update_credit_card_test.rb
|
174
190
|
- test/remote/remote_verify_test.rb
|
175
191
|
- test/remote/remote_void_test.rb
|
@@ -212,10 +228,12 @@ files:
|
|
212
228
|
- test/unit/response_stubs/redact_payment_method_stubs.rb
|
213
229
|
- test/unit/response_stubs/refund_stubs.rb
|
214
230
|
- test/unit/response_stubs/retain_payment_method_stubs.rb
|
231
|
+
- test/unit/response_stubs/store_stubs.rb
|
215
232
|
- test/unit/response_stubs/update_credit_card_stubs.rb
|
216
233
|
- test/unit/response_stubs/verification_stubs.rb
|
217
234
|
- test/unit/response_stubs/void_stubs.rb
|
218
235
|
- test/unit/retain_payment_method_test.rb
|
236
|
+
- test/unit/store_test.rb
|
219
237
|
- test/unit/timeout_test.rb
|
220
238
|
- test/unit/update_credit_card_test.rb
|
221
239
|
- test/unit/verify_test.rb
|
@@ -240,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
258
|
version: '0'
|
241
259
|
requirements: []
|
242
260
|
rubyforge_project:
|
243
|
-
rubygems_version: 2.
|
261
|
+
rubygems_version: 2.4.5
|
244
262
|
signing_key:
|
245
263
|
specification_version: 4
|
246
264
|
summary: Provides a Ruby wrapper for the Spreedly API.
|
@@ -270,6 +288,7 @@ test_files:
|
|
270
288
|
- test/remote/remote_redact_payment_method_test.rb
|
271
289
|
- test/remote/remote_refund_test.rb
|
272
290
|
- test/remote/remote_retain_test.rb
|
291
|
+
- test/remote/remote_store_test.rb
|
273
292
|
- test/remote/remote_update_credit_card_test.rb
|
274
293
|
- test/remote/remote_verify_test.rb
|
275
294
|
- test/remote/remote_void_test.rb
|
@@ -312,10 +331,12 @@ test_files:
|
|
312
331
|
- test/unit/response_stubs/redact_payment_method_stubs.rb
|
313
332
|
- test/unit/response_stubs/refund_stubs.rb
|
314
333
|
- test/unit/response_stubs/retain_payment_method_stubs.rb
|
334
|
+
- test/unit/response_stubs/store_stubs.rb
|
315
335
|
- test/unit/response_stubs/update_credit_card_stubs.rb
|
316
336
|
- test/unit/response_stubs/verification_stubs.rb
|
317
337
|
- test/unit/response_stubs/void_stubs.rb
|
318
338
|
- test/unit/retain_payment_method_test.rb
|
339
|
+
- test/unit/store_test.rb
|
319
340
|
- test/unit/timeout_test.rb
|
320
341
|
- test/unit/update_credit_card_test.rb
|
321
342
|
- test/unit/verify_test.rb
|