braintree-rails 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -1
- data/braintree-rails.gemspec +2 -1
- data/coverage/index.html +960 -6640
- data/lib/braintree_rails/association.rb +34 -16
- data/lib/braintree_rails/transactions.rb +4 -18
- data/log/braintree_test.log +191325 -0
- data/test/fixtures/transaction_ids.xml +7 -0
- data/test/fixtures/transactions.xml +115 -0
- data/test/integration/braintree_rails/address_integration_test.rb +2 -3
- data/test/unit/braintree_rails/credit_cards_test.rb +2 -2
- data/test/unit/braintree_rails/transactions_test.rb +39 -0
- metadata +6 -4
@@ -0,0 +1,115 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<credit-card-transactions type="collection">
|
3
|
+
<current-page-number type="integer">1</current-page-number>
|
4
|
+
<page-size type="integer">50</page-size>
|
5
|
+
<total-items type="integer">1</total-items>
|
6
|
+
<transaction>
|
7
|
+
<id>transactionid</id>
|
8
|
+
<status>authorized</status>
|
9
|
+
<type>sale</type>
|
10
|
+
<currency-iso-code>USD</currency-iso-code>
|
11
|
+
<amount>9.00</amount>
|
12
|
+
<merchant-account-id>n3dbctrrrwc9vb3j</merchant-account-id>
|
13
|
+
<order-id nil="true"></order-id>
|
14
|
+
<created-at type="datetime">2013-02-02T04:38:56Z</created-at>
|
15
|
+
<updated-at type="datetime">2013-02-02T04:38:56Z</updated-at>
|
16
|
+
<customer>
|
17
|
+
<id>customer_id</id>
|
18
|
+
<first-name>Brain93</first-name>
|
19
|
+
<last-name>Tree33</last-name>
|
20
|
+
<company nil="true"></company>
|
21
|
+
<email nil="true"></email>
|
22
|
+
<website nil="true"></website>
|
23
|
+
<phone nil="true"></phone>
|
24
|
+
<fax nil="true"></fax>
|
25
|
+
</customer>
|
26
|
+
<billing>
|
27
|
+
<id>xh</id>
|
28
|
+
<first-name>Brain</first-name>
|
29
|
+
<last-name>Tree</last-name>
|
30
|
+
<company>Braintree</company>
|
31
|
+
<street-address>1350 Crane Avenue</street-address>
|
32
|
+
<extended-address>Suite 340</extended-address>
|
33
|
+
<locality>Menlo Park</locality>
|
34
|
+
<region>California</region>
|
35
|
+
<postal-code>63091</postal-code>
|
36
|
+
<country-name>United States of America</country-name>
|
37
|
+
<country-code-alpha2>US</country-code-alpha2>
|
38
|
+
<country-code-alpha3>USA</country-code-alpha3>
|
39
|
+
<country-code-numeric>840</country-code-numeric>
|
40
|
+
</billing>
|
41
|
+
<refund-id nil="true"></refund-id>
|
42
|
+
<refund-ids type="array"/>
|
43
|
+
<refunded-transaction-id nil="true"></refunded-transaction-id>
|
44
|
+
<settlement-batch-id nil="true"></settlement-batch-id>
|
45
|
+
<shipping>
|
46
|
+
<id nil="true"></id>
|
47
|
+
<first-name nil="true"></first-name>
|
48
|
+
<last-name nil="true"></last-name>
|
49
|
+
<company nil="true"></company>
|
50
|
+
<street-address nil="true"></street-address>
|
51
|
+
<extended-address nil="true"></extended-address>
|
52
|
+
<locality nil="true"></locality>
|
53
|
+
<region nil="true"></region>
|
54
|
+
<postal-code nil="true"></postal-code>
|
55
|
+
<country-name nil="true"></country-name>
|
56
|
+
<country-code-alpha2 nil="true"></country-code-alpha2>
|
57
|
+
<country-code-alpha3 nil="true"></country-code-alpha3>
|
58
|
+
<country-code-numeric nil="true"></country-code-numeric>
|
59
|
+
</shipping>
|
60
|
+
<custom-fields>
|
61
|
+
</custom-fields>
|
62
|
+
<avs-error-response-code nil="true"></avs-error-response-code>
|
63
|
+
<avs-postal-code-response-code>M</avs-postal-code-response-code>
|
64
|
+
<avs-street-address-response-code>M</avs-street-address-response-code>
|
65
|
+
<cvv-response-code>I</cvv-response-code>
|
66
|
+
<gateway-rejection-reason nil="true"></gateway-rejection-reason>
|
67
|
+
<processor-authorization-code>W05DGY</processor-authorization-code>
|
68
|
+
<processor-response-code>1000</processor-response-code>
|
69
|
+
<processor-response-text>Approved</processor-response-text>
|
70
|
+
<purchase-order-number nil="true"></purchase-order-number>
|
71
|
+
<tax-amount nil="true"></tax-amount>
|
72
|
+
<tax-exempt type="boolean">false</tax-exempt>
|
73
|
+
<credit-card>
|
74
|
+
<token>credit_card_id</token>
|
75
|
+
<bin>510510</bin>
|
76
|
+
<last-4>5100</last-4>
|
77
|
+
<card-type>MasterCard</card-type>
|
78
|
+
<expiration-month>01</expiration-month>
|
79
|
+
<expiration-year>2035</expiration-year>
|
80
|
+
<customer-location>US</customer-location>
|
81
|
+
<cardholder-name>Brain Tree</cardholder-name>
|
82
|
+
<prepaid>Unknown</prepaid>
|
83
|
+
<healthcare>Unknown</healthcare>
|
84
|
+
<debit>Unknown</debit>
|
85
|
+
<durbin-regulated>Unknown</durbin-regulated>
|
86
|
+
<commercial>Unknown</commercial>
|
87
|
+
<payroll>Unknown</payroll>
|
88
|
+
<issuing-bank>Unknown</issuing-bank>
|
89
|
+
<country-of-issuance>Unknown</country-of-issuance>
|
90
|
+
</credit-card>
|
91
|
+
<status-history type="array">
|
92
|
+
<status-event>
|
93
|
+
<timestamp type="datetime">2013-02-02T04:38:56Z</timestamp>
|
94
|
+
<status>authorized</status>
|
95
|
+
<amount>9.00</amount>
|
96
|
+
<user>linyang84</user>
|
97
|
+
<transaction-source>API</transaction-source>
|
98
|
+
</status-event>
|
99
|
+
</status-history>
|
100
|
+
<plan-id nil="true"></plan-id>
|
101
|
+
<subscription-id nil="true"></subscription-id>
|
102
|
+
<subscription>
|
103
|
+
<billing-period-end-date nil="true"></billing-period-end-date>
|
104
|
+
<billing-period-start-date nil="true"></billing-period-start-date>
|
105
|
+
</subscription>
|
106
|
+
<add-ons type="array"/>
|
107
|
+
<discounts type="array"/>
|
108
|
+
<descriptor>
|
109
|
+
<name nil="true"></name>
|
110
|
+
<phone nil="true"></phone>
|
111
|
+
</descriptor>
|
112
|
+
<recurring type="boolean">false</recurring>
|
113
|
+
<channel nil="true"></channel>
|
114
|
+
</transaction>
|
115
|
+
</credit-card-transactions>
|
@@ -11,7 +11,7 @@ describe 'Address Integration' do
|
|
11
11
|
customer.addresses.create!(attributes)
|
12
12
|
braintree_customer = Braintree::Customer.find(customer.id)
|
13
13
|
braintree_address = braintree_customer.addresses.first
|
14
|
-
|
14
|
+
|
15
15
|
attributes.each do |key, value|
|
16
16
|
braintree_address.send(key).must_equal value
|
17
17
|
end
|
@@ -42,5 +42,4 @@ describe 'Address Integration' do
|
|
42
42
|
address.persisted?.must_equal false
|
43
43
|
address.frozen?.must_equal true
|
44
44
|
end
|
45
|
-
|
46
|
-
end
|
45
|
+
end
|
@@ -10,7 +10,7 @@ describe BraintreeRails::CreditCards do
|
|
10
10
|
braintree_customer = Braintree::Customer.find('customer_id')
|
11
11
|
braintree_credit_cards = braintree_customer.credit_cards
|
12
12
|
credit_cards = BraintreeRails::CreditCards.new(braintree_customer, braintree_credit_cards)
|
13
|
-
|
13
|
+
|
14
14
|
credit_cards.size.must_equal braintree_credit_cards.size
|
15
15
|
|
16
16
|
braintree_credit_cards.each do |braintree_credit_card|
|
@@ -55,4 +55,4 @@ describe BraintreeRails::CreditCards do
|
|
55
55
|
braintree_customer.credit_cards.wont_include credit_card
|
56
56
|
end
|
57
57
|
end
|
58
|
-
end
|
58
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../unit_test_helper'))
|
2
|
+
|
3
|
+
describe BraintreeRails::Transactions do
|
4
|
+
|
5
|
+
before do
|
6
|
+
stub_braintree_request(:get, '/customers/customer_id', :body => fixture('customer.xml'))
|
7
|
+
stub_braintree_request(:get, '/payment_methods/credit_card_id', :body => fixture('credit_card.xml'))
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '#initialize' do
|
11
|
+
it 'should load an array of Braintree::Transaction' do
|
12
|
+
stub_braintree_request(:post, '/transactions/advanced_search_ids', :body => fixture('transaction_ids.xml'))
|
13
|
+
stub_braintree_request(:post, '/transactions/advanced_search', :body => fixture('transactions.xml'))
|
14
|
+
|
15
|
+
braintree_transactions = Braintree::Transaction.search do |search|
|
16
|
+
search.customer_id.is 'customer_id'
|
17
|
+
search.payment_method_token.is 'credit_card_id'
|
18
|
+
end
|
19
|
+
|
20
|
+
transactions = BraintreeRails::Transactions.new(BraintreeRails::Customer.new('customer_id'))
|
21
|
+
|
22
|
+
transactions.map(&:id).sort.must_equal braintree_transactions.map(&:id).sort
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#lazy_loading' do
|
27
|
+
it 'should not load if not necessary' do
|
28
|
+
lambda {BraintreeRails::Transactions.new(BraintreeRails::Customer.new('customer_id'))}.must_be_silent
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'load from Braintree when needed' do
|
32
|
+
transactions = BraintreeRails::Transactions.new(BraintreeRails::Customer.new('customer_id'))
|
33
|
+
stub_braintree_request(:post, '/transactions/advanced_search_ids', :body => fixture('transaction_ids.xml'))
|
34
|
+
stub_braintree_request(:post, '/transactions/advanced_search', :body => fixture('transactions.xml'))
|
35
|
+
|
36
|
+
transactions.find('transactionid').wont_be :blank?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braintree-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: braintree
|
@@ -228,6 +228,8 @@ files:
|
|
228
228
|
- test/fixtures/customer.xml
|
229
229
|
- test/fixtures/transaction.xml
|
230
230
|
- test/fixtures/transaction_error.xml
|
231
|
+
- test/fixtures/transaction_ids.xml
|
232
|
+
- test/fixtures/transactions.xml
|
231
233
|
- test/integration/braintree_rails/address_integration_test.rb
|
232
234
|
- test/integration/braintree_rails/credit_card_integration_test.rb
|
233
235
|
- test/integration/braintree_rails/customer_integration_test.rb
|
@@ -253,9 +255,9 @@ require_paths:
|
|
253
255
|
required_ruby_version: !ruby/object:Gem::Requirement
|
254
256
|
none: false
|
255
257
|
requirements:
|
256
|
-
- -
|
258
|
+
- - '='
|
257
259
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
260
|
+
version: 1.9.3
|
259
261
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
262
|
none: false
|
261
263
|
requirements:
|