braintree 2.18.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
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/