braintree 2.18.0 → 2.19.0

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/lib/braintree.rb CHANGED
@@ -30,6 +30,8 @@ require "braintree/configuration"
30
30
  require "braintree/credit_card"
31
31
  require "braintree/credit_card_gateway"
32
32
  require "braintree/credit_card_verification"
33
+ require "braintree/credit_card_verification_gateway"
34
+ require "braintree/credit_card_verification_search"
33
35
  require "braintree/customer"
34
36
  require "braintree/customer_gateway"
35
37
  require "braintree/customer_search"
@@ -1,7 +1,7 @@
1
1
  module Braintree
2
2
  # See http://www.braintreepayments.com/docs/ruby
3
3
  class Configuration
4
- API_VERSION = "2" # :nodoc:
4
+ API_VERSION = "3" # :nodoc:
5
5
  DEFAULT_ENDPOINT = "www" # :nodoc:
6
6
 
7
7
  class << self
@@ -12,7 +12,7 @@ module Braintree
12
12
 
13
13
  attr_reader :avs_error_response_code, :avs_postal_code_response_code, :avs_street_address_response_code,
14
14
  :cvv_response_code, :merchant_account_id, :processor_response_code, :processor_response_text, :status,
15
- :gateway_rejection_reason
15
+ :id, :gateway_rejection_reason, :credit_card, :billing, :created_at
16
16
 
17
17
  def initialize(attributes) # :nodoc:
18
18
  set_instance_variables_from_hash(attributes)
@@ -23,7 +23,7 @@ module Braintree
23
23
  :status, :processor_response_code, :processor_response_text,
24
24
  :cvv_response_code, :avs_error_response_code,
25
25
  :avs_postal_code_response_code, :avs_street_address_response_code,
26
- :merchant_account_id, :gateway_rejection_reason
26
+ :merchant_account_id, :gateway_rejection_reason, :id, :credit_card, :billing, :created_at
27
27
  ]
28
28
  formatted_attrs = attr_order.map do |attr|
29
29
  "#{attr}: #{send(attr).inspect}"
@@ -38,5 +38,18 @@ module Braintree
38
38
  def self._new(*args) # :nodoc:
39
39
  self.new *args
40
40
  end
41
+
42
+ def self.find(id)
43
+ Configuration.gateway.verification.find(id)
44
+ end
45
+
46
+ def self.search(&block)
47
+ Configuration.gateway.verification.search(&block)
48
+ end
49
+
50
+ def ==(other)
51
+ return false unless other.is_a?(CreditCardVerification)
52
+ id == other.id
53
+ end
41
54
  end
42
55
  end
@@ -0,0 +1,31 @@
1
+ module Braintree
2
+ class CreditCardVerificationGateway
3
+ def initialize(gateway)
4
+ @gateway = gateway
5
+ @config = gateway.config
6
+ end
7
+
8
+ def find(id)
9
+ raise ArgumentError if id.nil? || id.strip.to_s == ""
10
+ response = @config.http.get "/verifications/#{id}"
11
+ CreditCardVerification._new(response[:verification])
12
+ rescue NotFoundError
13
+ raise NotFoundError, "verification with id #{id.inspect} not found"
14
+ end
15
+
16
+ def search(&block)
17
+ search = CreditCardVerificationSearch.new
18
+ block.call(search) if block
19
+
20
+ response = @config.http.post "/verifications/advanced_search_ids", {:search => search.to_hash}
21
+ ResourceCollection.new(response) { |ids| _fetch_verifications(search, ids) }
22
+ end
23
+
24
+ def _fetch_verifications(search, ids)
25
+ search.ids.in ids
26
+ response = @config.http.post "/verifications/advanced_search", {:search => search.to_hash}
27
+ attributes = response[:credit_card_verifications]
28
+ Util.extract_attribute_as_array(attributes, :verification).map { |attrs| CreditCardVerification._new(attrs) }
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,15 @@
1
+ module Braintree
2
+ class CreditCardVerificationSearch < AdvancedSearch # :nodoc:
3
+ text_fields(
4
+ :id,
5
+ :credit_card_cardholder_name
6
+ )
7
+
8
+ equality_fields :credit_card_expiration_date
9
+ partial_match_fields :credit_card_number
10
+
11
+ multiple_value_field :credit_card_card_type, :allows => CreditCard::CardType::All
12
+ multiple_value_field :ids
13
+ range_fields :created_at
14
+ end
15
+ end
@@ -52,6 +52,10 @@ module Braintree
52
52
  TransactionGateway.new(self)
53
53
  end
54
54
 
55
+ def verification
56
+ CreditCardVerificationGateway.new(self)
57
+ end
58
+
55
59
  def webhook_notification
56
60
  WebhookNotificationGateway.new(self)
57
61
  end
@@ -1,7 +1,7 @@
1
1
  module Braintree
2
2
  module Version
3
3
  Major = 2
4
- Minor = 18
4
+ Minor = 19
5
5
  Tiny = 0
6
6
 
7
7
  String = "#{Major}.#{Minor}.#{Tiny}"
data/spec/httpsd.pid CHANGED
@@ -1 +1 @@
1
- 91525
1
+ 19512
@@ -0,0 +1,153 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::CreditCardVerification, "search" do
4
+ it "correctly returns a result with no matches" do
5
+ collection = Braintree::CreditCardVerification.search do |search|
6
+ search.credit_card_cardholder_name.is "thisnameisnotreal"
7
+ end
8
+
9
+ collection.maximum_size.should == 0
10
+ end
11
+
12
+ it "can search on text fields" do
13
+ unsuccessful_result = Braintree::Customer.create(
14
+ :credit_card => {
15
+ :cardholder_name => "Tom Smith",
16
+ :expiration_date => "05/2012",
17
+ :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
18
+ :options => {
19
+ :verify_card => true
20
+ }
21
+ })
22
+
23
+ verification = unsuccessful_result.credit_card_verification
24
+
25
+ search_criteria = {
26
+ :credit_card_cardholder_name => "Tom Smith",
27
+ :credit_card_expiration_date => "05/2012",
28
+ :credit_card_number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa
29
+ }
30
+
31
+ search_criteria.each do |criterion, value|
32
+ collection = Braintree::CreditCardVerification.search do |search|
33
+ search.id.is verification.id
34
+ search.send(criterion).is value
35
+ end
36
+ collection.maximum_size.should == 1
37
+ collection.first.id.should == verification.id
38
+
39
+ collection = Braintree::CreditCardVerification.search do |search|
40
+ search.id.is verification.id
41
+ search.send(criterion).is("invalid_attribute")
42
+ end
43
+ collection.should be_empty
44
+ end
45
+
46
+ collection = Braintree::CreditCardVerification.search do |search|
47
+ search.id.is verification.id
48
+ search_criteria.each do |criterion, value|
49
+ search.send(criterion).is value
50
+ end
51
+ end
52
+
53
+ collection.maximum_size.should == 1
54
+ collection.first.id.should == verification.id
55
+ end
56
+
57
+ describe "multiple value fields" do
58
+ it "searches on ids" do
59
+ unsuccessful_result1 = Braintree::Customer.create(
60
+ :credit_card => {
61
+ :cardholder_name => "Tom Smith",
62
+ :expiration_date => "05/2012",
63
+ :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
64
+ :options => {
65
+ :verify_card => true
66
+ }
67
+ })
68
+
69
+ verification_id1 = unsuccessful_result1.credit_card_verification.id
70
+
71
+ unsuccessful_result2 = Braintree::Customer.create(
72
+ :credit_card => {
73
+ :cardholder_name => "Tom Smith",
74
+ :expiration_date => "05/2012",
75
+ :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
76
+ :options => {
77
+ :verify_card => true
78
+ }
79
+ })
80
+
81
+ verification_id2 = unsuccessful_result2.credit_card_verification.id
82
+
83
+ collection = Braintree::CreditCardVerification.search do |search|
84
+ search.ids.in verification_id1, verification_id2
85
+ end
86
+
87
+ collection.maximum_size.should == 2
88
+ end
89
+ end
90
+
91
+ context "range fields" do
92
+ it "searches on created_at" do
93
+ unsuccessful_result = Braintree::Customer.create(
94
+ :credit_card => {
95
+ :cardholder_name => "Tom Smith",
96
+ :expiration_date => "05/2012",
97
+ :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
98
+ :options => {
99
+ :verify_card => true
100
+ }
101
+ })
102
+
103
+ verification = unsuccessful_result.credit_card_verification
104
+
105
+ created_at = verification.created_at
106
+
107
+ collection = Braintree::CreditCardVerification.search do |search|
108
+ search.id.is verification.id
109
+ search.created_at.between(
110
+ created_at - 60,
111
+ created_at + 60
112
+ )
113
+ end
114
+
115
+ collection.maximum_size.should == 1
116
+ collection.first.id.should == verification.id
117
+
118
+ collection = Braintree::CreditCardVerification.search do |search|
119
+ search.id.is verification.id
120
+ search.created_at >= created_at - 1
121
+ end
122
+
123
+ collection.maximum_size.should == 1
124
+ collection.first.id.should == verification.id
125
+
126
+ collection = Braintree::CreditCardVerification.search do |search|
127
+ search.id.is verification.id
128
+ search.created_at <= created_at + 1
129
+ end
130
+
131
+ collection.maximum_size.should == 1
132
+ collection.first.id.should == verification.id
133
+
134
+ collection = Braintree::CreditCardVerification.search do |search|
135
+ search.id.is verification.id
136
+ search.created_at.between(
137
+ created_at - 300,
138
+ created_at - 100
139
+ )
140
+ end
141
+
142
+ collection.maximum_size.should == 0
143
+
144
+ collection = Braintree::CreditCardVerification.search do |search|
145
+ search.id.is verification.id
146
+ search.created_at.is created_at
147
+ end
148
+
149
+ collection.maximum_size.should == 1
150
+ collection.first.id.should == verification.id
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,29 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::CreditCardVerification, "search" do
4
+ describe "self.find" do
5
+ it "finds the verification with the given id" do
6
+ result = Braintree::Customer.create(
7
+ :credit_card => {
8
+ :cardholder_name => "Tom Smith",
9
+ :expiration_date => "05/2012",
10
+ :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
11
+ :options => {
12
+ :verify_card => true
13
+ }
14
+ })
15
+
16
+ created_verification = result.credit_card_verification
17
+
18
+ found_verification = Braintree::CreditCardVerification.find(created_verification.id)
19
+ found_verification.should == created_verification
20
+ found_verification.credit_card.should == created_verification.credit_card
21
+ end
22
+
23
+ it "raises a NotFoundError exception if verification cannot be found" do
24
+ expect do
25
+ Braintree::CreditCardVerification.find("invalid-id")
26
+ end.to raise_error(Braintree::NotFoundError, 'verification with id "invalid-id" not found')
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,79 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ module Braintree
4
+ describe CreditCardVerificationSearch do
5
+
6
+ context "card_type" do
7
+ it "allows All card types" do
8
+ search = CreditCardVerificationSearch.new
9
+
10
+ lambda do
11
+ search.credit_card_card_type.in(
12
+ *Braintree::CreditCard::CardType::All
13
+ )
14
+ end.should_not raise_error
15
+ end
16
+ end
17
+
18
+ context "id" do
19
+ it "is" do
20
+ search = CreditCardVerificationSearch.new
21
+ search.id.is "v_id"
22
+
23
+ search.to_hash.should == {:id => {:is => "v_id"}}
24
+ end
25
+ end
26
+
27
+ context "ids" do
28
+ it "correctly builds a hash with ids" do
29
+ search = CreditCardVerificationSearch.new
30
+ search.ids.in("id1","id2")
31
+
32
+ search.to_hash.should == {:ids => ["id1", "id2"]}
33
+ end
34
+ end
35
+
36
+ context "credit_card_cardholder_name" do
37
+ it "is" do
38
+ search = CreditCardVerificationSearch.new
39
+ search.credit_card_cardholder_name.is "v_cardholder_name"
40
+
41
+ search.to_hash.should == {:credit_card_cardholder_name => {:is => "v_cardholder_name"}}
42
+ end
43
+ end
44
+
45
+ context "credit_card_expiration_date" do
46
+ it "is_not" do
47
+ search = CreditCardVerificationSearch.new
48
+ search.credit_card_expiration_date.is_not "v_credit_card_expiration_date"
49
+
50
+ search.to_hash.should == {:credit_card_expiration_date => {:is_not => "v_credit_card_expiration_date"}}
51
+ end
52
+ end
53
+
54
+ context "credit_card_number" do
55
+ it "starts with" do
56
+ search = CreditCardVerificationSearch.new
57
+
58
+ search.credit_card_number.starts_with "v_credit_card_bin"
59
+
60
+ search.to_hash.should == {:credit_card_number => {:starts_with => "v_credit_card_bin"}}
61
+ end
62
+
63
+ it "ends with" do
64
+ search = CreditCardVerificationSearch.new
65
+
66
+ search.credit_card_number.ends_with "v_credit_card_last_4"
67
+
68
+ search.to_hash.should == {:credit_card_number => {:ends_with => "v_credit_card_last_4"}}
69
+ end
70
+ end
71
+
72
+ context "created_at" do
73
+ it "is a range node" do
74
+ search = CreditCardVerificationSearch.new
75
+ search.created_at.should be_kind_of(Braintree::AdvancedSearch::RangeNode)
76
+ end
77
+ end
78
+ end
79
+ end
@@ -14,7 +14,7 @@ describe Braintree::CreditCardVerification do
14
14
  :merchant_account_id => "some_id"
15
15
  )
16
16
 
17
- verification.inspect.should == %(#<Braintree::CreditCardVerification status: "verified", processor_response_code: "2000", processor_response_text: "Do Not Honor", cvv_response_code: "I", avs_error_response_code: "I", avs_postal_code_response_code: "I", avs_street_address_response_code: "I", merchant_account_id: "some_id", gateway_rejection_reason: nil>)
17
+ verification.inspect.should == %(#<Braintree::CreditCardVerification status: "verified", processor_response_code: "2000", processor_response_text: "Do Not Honor", cvv_response_code: "I", avs_error_response_code: "I", avs_postal_code_response_code: "I", avs_street_address_response_code: "I", merchant_account_id: "some_id", gateway_rejection_reason: nil, id: nil, credit_card: nil, billing: nil, created_at: nil>)
18
18
  end
19
19
 
20
20
  it "has a status" do
@@ -32,5 +32,54 @@ describe Braintree::CreditCardVerification do
32
32
  verification.status.should == Braintree::CreditCardVerification::Status::VERIFIED
33
33
  end
34
34
  end
35
+
36
+ describe "self.find" do
37
+ it "raises error if passed empty string" do
38
+ expect do
39
+ Braintree::CreditCardVerification.find("")
40
+ end.to raise_error(ArgumentError)
41
+ end
42
+
43
+ it "raises error if passed empty string wth space" do
44
+ expect do
45
+ Braintree::CreditCardVerification.find(" ")
46
+ end.to raise_error(ArgumentError)
47
+ end
48
+
49
+ it "raises error if passed nil" do
50
+ expect do
51
+ Braintree::CreditCardVerification.find(nil)
52
+ end.to raise_error(ArgumentError)
53
+ end
54
+ end
55
+
56
+ describe "==" do
57
+ it "returns true for verifications with the same id" do
58
+ first = Braintree::CreditCardVerification._new(:id => 123)
59
+ second = Braintree::CreditCardVerification._new(:id => 123)
60
+
61
+ first.should == second
62
+ second.should == first
63
+ end
64
+
65
+ it "returns false for verifications with different ids" do
66
+ first = Braintree::CreditCardVerification._new(:id => 123)
67
+ second = Braintree::CreditCardVerification._new(:id => 124)
68
+
69
+ first.should_not == second
70
+ second.should_not == first
71
+ end
72
+
73
+ it "returns false when comparing to nil" do
74
+ Braintree::CreditCardVerification._new({}).should_not == nil
75
+ end
76
+
77
+ it "returns false when comparing to non-verifications" do
78
+ same_id_different_object = Object.new
79
+ def same_id_different_object.id; 123; end
80
+ verification = Braintree::CreditCardVerification._new(:id => 123)
81
+ verification.should_not == same_id_different_object
82
+ end
83
+ end
35
84
  end
36
85
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- hash: 71
4
+ hash: 67
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
- - 18
8
+ - 19
9
9
  - 0
10
- version: 2.18.0
10
+ version: 2.19.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Braintree
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-04 00:00:00 -05:00
18
+ date: 2012-10-25 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -45,125 +45,130 @@ extra_rdoc_files: []
45
45
  files:
46
46
  - README.rdoc
47
47
  - LICENSE
48
+ - lib/braintree.rb
49
+ - lib/braintree/subscription_search.rb
50
+ - lib/braintree/modification.rb
51
+ - lib/braintree/errors.rb
52
+ - lib/braintree/test/credit_card_numbers.rb
53
+ - lib/braintree/test/transaction_amounts.rb
54
+ - lib/braintree/webhook_testing.rb
55
+ - lib/braintree/webhook_testing_gateway.rb
56
+ - lib/braintree/advanced_search.rb
57
+ - lib/braintree/version.rb
48
58
  - lib/braintree/add_on.rb
49
- - lib/braintree/add_on_gateway.rb
50
- - lib/braintree/address/country_names.rb
51
59
  - lib/braintree/address.rb
52
- - lib/braintree/address_gateway.rb
53
- - lib/braintree/advanced_search.rb
54
- - lib/braintree/base_module.rb
55
- - lib/braintree/configuration.rb
56
- - lib/braintree/credit_card.rb
57
- - lib/braintree/credit_card_gateway.rb
58
- - lib/braintree/credit_card_verification.rb
59
- - lib/braintree/customer.rb
60
- - lib/braintree/customer_gateway.rb
61
- - lib/braintree/customer_search.rb
62
- - lib/braintree/descriptor.rb
63
60
  - lib/braintree/digest.rb
64
- - lib/braintree/discount.rb
65
- - lib/braintree/discount_gateway.rb
61
+ - lib/braintree/settlement_batch_summary.rb
66
62
  - lib/braintree/error_codes.rb
67
- - lib/braintree/error_result.rb
68
- - lib/braintree/errors.rb
63
+ - lib/braintree/discount.rb
64
+ - lib/braintree/webhook_notification.rb
65
+ - lib/braintree/settlement_batch_summary_gateway.rb
66
+ - lib/braintree/validation_error_collection.rb
67
+ - lib/braintree/credit_card_verification_gateway.rb
68
+ - lib/braintree/credit_card.rb
69
+ - lib/braintree/customer_search.rb
70
+ - lib/braintree/util.rb
71
+ - lib/braintree/transparent_redirect.rb
72
+ - lib/braintree/xml/generator.rb
73
+ - lib/braintree/xml/rexml.rb
74
+ - lib/braintree/xml/libxml.rb
75
+ - lib/braintree/xml/parser.rb
69
76
  - lib/braintree/exceptions.rb
70
- - lib/braintree/gateway.rb
71
- - lib/braintree/http.rb
72
- - lib/braintree/modification.rb
73
- - lib/braintree/plan.rb
74
- - lib/braintree/plan_gateway.rb
77
+ - lib/braintree/validation_error.rb
75
78
  - lib/braintree/resource_collection.rb
76
- - lib/braintree/settlement_batch.rb
77
- - lib/braintree/settlement_batch_summary.rb
78
- - lib/braintree/settlement_batch_summary_gateway.rb
79
- - lib/braintree/subscription.rb
79
+ - lib/braintree/xml.rb
80
+ - lib/braintree/credit_card_verification.rb
81
+ - lib/braintree/configuration.rb
82
+ - lib/braintree/transaction.rb
83
+ - lib/braintree/http.rb
84
+ - lib/braintree/address_gateway.rb
80
85
  - lib/braintree/subscription_gateway.rb
81
- - lib/braintree/subscription_search.rb
86
+ - lib/braintree/customer_gateway.rb
87
+ - lib/braintree/plan_gateway.rb
88
+ - lib/braintree/credit_card_verification_search.rb
82
89
  - lib/braintree/successful_result.rb
83
- - lib/braintree/test/credit_card_numbers.rb
84
- - lib/braintree/test/transaction_amounts.rb
85
- - lib/braintree/transaction/address_details.rb
86
- - lib/braintree/transaction/credit_card_details.rb
90
+ - lib/braintree/settlement_batch.rb
91
+ - lib/braintree/plan.rb
92
+ - lib/braintree/gateway.rb
93
+ - lib/braintree/transparent_redirect_gateway.rb
94
+ - lib/braintree/base_module.rb
95
+ - lib/braintree/add_on_gateway.rb
96
+ - lib/braintree/transaction/subscription_details.rb
87
97
  - lib/braintree/transaction/customer_details.rb
98
+ - lib/braintree/transaction/credit_card_details.rb
88
99
  - lib/braintree/transaction/status_details.rb
89
- - lib/braintree/transaction/subscription_details.rb
90
- - lib/braintree/transaction.rb
91
- - lib/braintree/transaction_gateway.rb
100
+ - lib/braintree/transaction/address_details.rb
92
101
  - lib/braintree/transaction_search.rb
93
- - lib/braintree/transparent_redirect.rb
94
- - lib/braintree/transparent_redirect_gateway.rb
95
- - lib/braintree/util.rb
96
- - lib/braintree/validation_error.rb
97
- - lib/braintree/validation_error_collection.rb
98
- - lib/braintree/version.rb
99
- - lib/braintree/webhook_notification.rb
102
+ - lib/braintree/error_result.rb
103
+ - lib/braintree/credit_card_gateway.rb
104
+ - lib/braintree/descriptor.rb
105
+ - lib/braintree/transaction_gateway.rb
106
+ - lib/braintree/subscription.rb
107
+ - lib/braintree/address/country_names.rb
100
108
  - lib/braintree/webhook_notification_gateway.rb
101
- - lib/braintree/webhook_testing.rb
102
- - lib/braintree/webhook_testing_gateway.rb
103
- - lib/braintree/xml/generator.rb
104
- - lib/braintree/xml/libxml.rb
105
- - lib/braintree/xml/parser.rb
106
- - lib/braintree/xml/rexml.rb
107
- - lib/braintree/xml.rb
108
- - lib/braintree.rb
109
+ - lib/braintree/customer.rb
110
+ - lib/braintree/discount_gateway.rb
111
+ - lib/ssl/www_braintreegateway_com.ca.crt
109
112
  - lib/ssl/sandbox_braintreegateway_com.ca.crt
110
113
  - lib/ssl/securetrust_ca.crt
111
- - lib/ssl/www_braintreegateway_com.ca.crt
112
- - spec/hacks/tcp_socket.rb
113
- - spec/httpsd.pid
114
- - spec/integration/braintree/add_on_spec.rb
115
- - spec/integration/braintree/address_spec.rb
116
- - spec/integration/braintree/advanced_search_spec.rb
117
- - spec/integration/braintree/credit_card_spec.rb
118
- - spec/integration/braintree/customer_search_spec.rb
119
- - spec/integration/braintree/customer_spec.rb
120
- - spec/integration/braintree/discount_spec.rb
121
- - spec/integration/braintree/error_codes_spec.rb
122
- - spec/integration/braintree/http_spec.rb
123
- - spec/integration/braintree/plan_spec.rb
124
- - spec/integration/braintree/settlement_batch_summary_spec.rb
125
- - spec/integration/braintree/subscription_spec.rb
126
- - spec/integration/braintree/test/transaction_amounts_spec.rb
127
- - spec/integration/braintree/transaction_search_spec.rb
128
- - spec/integration/braintree/transaction_spec.rb
129
- - spec/integration/braintree/transparent_redirect_spec.rb
130
- - spec/integration/spec_helper.rb
131
114
  - spec/script/httpsd.rb
132
- - spec/spec.opts
133
115
  - spec/spec_helper.rb
134
- - spec/ssl/certificate.crt
135
- - spec/ssl/geotrust_global.crt
136
- - spec/ssl/privateKey.key
137
- - spec/unit/braintree/address_spec.rb
138
- - spec/unit/braintree/base_module_spec.rb
139
- - spec/unit/braintree/configuration_spec.rb
140
- - spec/unit/braintree/credit_card_spec.rb
141
- - spec/unit/braintree/credit_card_verification_spec.rb
142
- - spec/unit/braintree/customer_spec.rb
143
- - spec/unit/braintree/digest_spec.rb
116
+ - spec/unit/spec_helper.rb
117
+ - spec/unit/braintree/transaction_search_spec.rb
144
118
  - spec/unit/braintree/error_result_spec.rb
145
- - spec/unit/braintree/errors_spec.rb
119
+ - spec/unit/braintree/xml_spec.rb
120
+ - spec/unit/braintree/customer_spec.rb
121
+ - spec/unit/braintree/transaction_spec.rb
122
+ - spec/unit/braintree/webhook_notification_spec.rb
146
123
  - spec/unit/braintree/http_spec.rb
147
- - spec/unit/braintree/modification_spec.rb
148
- - spec/unit/braintree/resource_collection_spec.rb
149
- - spec/unit/braintree/subscription_search_spec.rb
150
124
  - spec/unit/braintree/subscription_spec.rb
125
+ - spec/unit/braintree/credit_card_verification_search_spec.rb
126
+ - spec/unit/braintree/subscription_search_spec.rb
151
127
  - spec/unit/braintree/successful_result_spec.rb
152
- - spec/unit/braintree/transaction/credit_card_details_spec.rb
153
- - spec/unit/braintree/transaction/customer_details_spec.rb
154
- - spec/unit/braintree/transaction_search_spec.rb
155
- - spec/unit/braintree/transaction_spec.rb
156
- - spec/unit/braintree/transparent_redirect_spec.rb
157
- - spec/unit/braintree/util_spec.rb
158
- - spec/unit/braintree/validation_error_collection_spec.rb
128
+ - spec/unit/braintree/credit_card_verification_spec.rb
159
129
  - spec/unit/braintree/validation_error_spec.rb
160
- - spec/unit/braintree/webhook_notification_spec.rb
130
+ - spec/unit/braintree/resource_collection_spec.rb
161
131
  - spec/unit/braintree/xml/libxml_spec.rb
162
132
  - spec/unit/braintree/xml/parser_spec.rb
163
133
  - spec/unit/braintree/xml/rexml_spec.rb
164
- - spec/unit/braintree/xml_spec.rb
134
+ - spec/unit/braintree/configuration_spec.rb
135
+ - spec/unit/braintree/validation_error_collection_spec.rb
136
+ - spec/unit/braintree/errors_spec.rb
137
+ - spec/unit/braintree/modification_spec.rb
138
+ - spec/unit/braintree/util_spec.rb
139
+ - spec/unit/braintree/base_module_spec.rb
140
+ - spec/unit/braintree/address_spec.rb
141
+ - spec/unit/braintree/transparent_redirect_spec.rb
142
+ - spec/unit/braintree/transaction/credit_card_details_spec.rb
143
+ - spec/unit/braintree/transaction/customer_details_spec.rb
144
+ - spec/unit/braintree/credit_card_spec.rb
145
+ - spec/unit/braintree/digest_spec.rb
165
146
  - spec/unit/braintree_spec.rb
166
- - spec/unit/spec_helper.rb
147
+ - spec/hacks/tcp_socket.rb
148
+ - spec/httpsd.pid
149
+ - spec/integration/spec_helper.rb
150
+ - spec/integration/braintree/settlement_batch_summary_spec.rb
151
+ - spec/integration/braintree/transaction_search_spec.rb
152
+ - spec/integration/braintree/test/transaction_amounts_spec.rb
153
+ - spec/integration/braintree/customer_spec.rb
154
+ - spec/integration/braintree/transaction_spec.rb
155
+ - spec/integration/braintree/add_on_spec.rb
156
+ - spec/integration/braintree/http_spec.rb
157
+ - spec/integration/braintree/subscription_spec.rb
158
+ - spec/integration/braintree/credit_card_verification_search_spec.rb
159
+ - spec/integration/braintree/credit_card_verification_spec.rb
160
+ - spec/integration/braintree/advanced_search_spec.rb
161
+ - spec/integration/braintree/customer_search_spec.rb
162
+ - spec/integration/braintree/plan_spec.rb
163
+ - spec/integration/braintree/error_codes_spec.rb
164
+ - spec/integration/braintree/address_spec.rb
165
+ - spec/integration/braintree/transparent_redirect_spec.rb
166
+ - spec/integration/braintree/credit_card_spec.rb
167
+ - spec/integration/braintree/discount_spec.rb
168
+ - spec/spec.opts
169
+ - spec/ssl/geotrust_global.crt
170
+ - spec/ssl/certificate.crt
171
+ - spec/ssl/privateKey.key
167
172
  - braintree.gemspec
168
173
  has_rdoc: true
169
174
  homepage: http://www.braintreepayments.com/