braintree 2.24.0 → 2.25.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,188 +1,182 @@
1
- unless defined?(SPEC_HELPER_LOADED)
2
- SPEC_HELPER_LOADED = true
3
-
4
- project_root = File.expand_path(File.dirname(__FILE__) + "/..")
5
- require "rubygems"
6
- gem "libxml-ruby", ENV["LIBXML_VERSION"] || (RUBY_VERSION == "1.9.3" ? "2.6.0" : "1.1.3")
7
- require "libxml"
8
- gem "builder", ENV["BUILDER_VERSION"] || "2.1.2"
9
- braintree_lib = "#{project_root}/lib"
10
- $LOAD_PATH << braintree_lib
11
- require "braintree"
12
-
13
- Braintree::Configuration.environment = :development
14
- Braintree::Configuration.merchant_id = "integration_merchant_id"
15
- Braintree::Configuration.public_key = "integration_public_key"
16
- Braintree::Configuration.private_key = "integration_private_key"
17
- logger = Logger.new("/dev/null")
18
- logger.level = Logger::INFO
19
- Braintree::Configuration.logger = logger
20
-
21
- module Kernel
22
- alias_method :original_warn, :warn
23
- def warn(message)
24
- return if message =~ /^\[DEPRECATED\]/
25
- original_warn(message)
26
- end
1
+ project_root = File.expand_path(File.dirname(__FILE__) + "/..")
2
+ require "rubygems"
3
+ require "libxml"
4
+
5
+ braintree_lib = "#{project_root}/lib"
6
+ $LOAD_PATH << braintree_lib
7
+ require "braintree"
8
+
9
+ Braintree::Configuration.environment = :development
10
+ Braintree::Configuration.merchant_id = "integration_merchant_id"
11
+ Braintree::Configuration.public_key = "integration_public_key"
12
+ Braintree::Configuration.private_key = "integration_private_key"
13
+ logger = Logger.new("/dev/null")
14
+ logger.level = Logger::INFO
15
+ Braintree::Configuration.logger = logger
16
+
17
+ module Kernel
18
+ alias_method :original_warn, :warn
19
+ def warn(message)
20
+ return if message =~ /^\[DEPRECATED\]/
21
+ original_warn(message)
27
22
  end
23
+ end
28
24
 
29
- def now_in_eastern
30
- (Time.now.utc - 5*60*60).strftime("%Y-%m-%d")
31
- end
25
+ def now_in_eastern
26
+ (Time.now.utc - 5*60*60).strftime("%Y-%m-%d")
27
+ end
32
28
 
33
- module SpecHelper
34
-
35
- DefaultMerchantAccountId = "sandbox_credit_card"
36
- NonDefaultMerchantAccountId = "sandbox_credit_card_non_default"
37
- NonDefaultSubMerchantAccountId = "sandbox_sub_merchant_account"
38
-
39
- TrialPlan = {
40
- :description => "Plan for integration tests -- with trial",
41
- :id => "integration_trial_plan",
42
- :price => BigDecimal.new("43.21"),
43
- :trial_period => true,
44
- :trial_duration => 2,
45
- :trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Day
46
- }
47
-
48
- TriallessPlan = {
49
- :description => "Plan for integration tests -- without a trial",
50
- :id => "integration_trialless_plan",
51
- :price => BigDecimal.new("12.34"),
52
- :trial_period => false
53
- }
54
-
55
- AddOnDiscountPlan = {
56
- :description => "Plan for integration tests -- with add-ons and discounts",
57
- :id => "integration_plan_with_add_ons_and_discounts",
58
- :price => BigDecimal.new("9.99"),
59
- :trial_period => true,
60
- :trial_duration => 2,
61
- :trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Day
62
- }
63
-
64
- BillingDayOfMonthPlan = {
65
- :description => "Plan for integration tests -- with billing day of month",
66
- :id => "integration_plan_with_billing_day_of_month",
67
- :price => BigDecimal.new("8.88"),
68
- :billing_day_of_month => 5
69
- }
70
-
71
- AddOnIncrease10 = "increase_10"
72
- AddOnIncrease20 = "increase_20"
73
- AddOnIncrease30 = "increase_30"
74
-
75
- Discount7 = "discount_7"
76
- Discount11 = "discount_11"
77
- Discount15 = "discount_15"
78
-
79
- TestMerchantConfig = Braintree::Configuration.new(
80
- :logger => Logger.new("/dev/null"),
81
- :environment => :development,
82
- :merchant_id => "test_merchant_id",
83
- :public_key => "test_public_key",
84
- :private_key => "test_private_key"
85
- )
86
-
87
- def self.make_past_due(subscription, number_of_days_past_due = 1)
88
- Braintree::Configuration.instantiate.http.put(
89
- "/subscriptions/#{subscription.id}/make_past_due?days_past_due=#{number_of_days_past_due}"
90
- )
91
- end
29
+ module SpecHelper
30
+
31
+ DefaultMerchantAccountId = "sandbox_credit_card"
32
+ NonDefaultMerchantAccountId = "sandbox_credit_card_non_default"
33
+ NonDefaultSubMerchantAccountId = "sandbox_sub_merchant_account"
34
+
35
+ TrialPlan = {
36
+ :description => "Plan for integration tests -- with trial",
37
+ :id => "integration_trial_plan",
38
+ :price => BigDecimal.new("43.21"),
39
+ :trial_period => true,
40
+ :trial_duration => 2,
41
+ :trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Day
42
+ }
43
+
44
+ TriallessPlan = {
45
+ :description => "Plan for integration tests -- without a trial",
46
+ :id => "integration_trialless_plan",
47
+ :price => BigDecimal.new("12.34"),
48
+ :trial_period => false
49
+ }
50
+
51
+ AddOnDiscountPlan = {
52
+ :description => "Plan for integration tests -- with add-ons and discounts",
53
+ :id => "integration_plan_with_add_ons_and_discounts",
54
+ :price => BigDecimal.new("9.99"),
55
+ :trial_period => true,
56
+ :trial_duration => 2,
57
+ :trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Day
58
+ }
59
+
60
+ BillingDayOfMonthPlan = {
61
+ :description => "Plan for integration tests -- with billing day of month",
62
+ :id => "integration_plan_with_billing_day_of_month",
63
+ :price => BigDecimal.new("8.88"),
64
+ :billing_day_of_month => 5
65
+ }
66
+
67
+ AddOnIncrease10 = "increase_10"
68
+ AddOnIncrease20 = "increase_20"
69
+ AddOnIncrease30 = "increase_30"
70
+
71
+ Discount7 = "discount_7"
72
+ Discount11 = "discount_11"
73
+ Discount15 = "discount_15"
74
+
75
+ TestMerchantConfig = Braintree::Configuration.new(
76
+ :logger => Logger.new("/dev/null"),
77
+ :environment => :development,
78
+ :merchant_id => "test_merchant_id",
79
+ :public_key => "test_public_key",
80
+ :private_key => "test_private_key"
81
+ )
82
+
83
+ def self.make_past_due(subscription, number_of_days_past_due = 1)
84
+ Braintree::Configuration.instantiate.http.put(
85
+ "/subscriptions/#{subscription.id}/make_past_due?days_past_due=#{number_of_days_past_due}"
86
+ )
87
+ end
92
88
 
93
- def self.settle_transaction(transaction_id)
94
- Braintree::Configuration.instantiate.http.put("/transactions/#{transaction_id}/settle")
95
- end
89
+ def self.settle_transaction(transaction_id)
90
+ Braintree::Configuration.instantiate.http.put("/transactions/#{transaction_id}/settle")
91
+ end
96
92
 
97
- def self.stub_time_dot_now(desired_time)
98
- Time.class_eval do
99
- class << self
100
- alias original_now now
101
- end
93
+ def self.stub_time_dot_now(desired_time)
94
+ Time.class_eval do
95
+ class << self
96
+ alias original_now now
102
97
  end
103
- (class << Time; self; end).class_eval do
104
- define_method(:now) { desired_time }
105
- end
106
- yield
107
- ensure
108
- Time.class_eval do
109
- class << self
110
- alias now original_now
111
- end
98
+ end
99
+ (class << Time; self; end).class_eval do
100
+ define_method(:now) { desired_time }
101
+ end
102
+ yield
103
+ ensure
104
+ Time.class_eval do
105
+ class << self
106
+ alias now original_now
112
107
  end
113
108
  end
109
+ end
114
110
 
115
- def self.simulate_form_post_for_tr(tr_data_string, form_data_hash, url = Braintree::TransparentRedirect.url)
116
- response = nil
117
- Net::HTTP.start("localhost", Braintree::Configuration.instantiate.port) do |http|
118
- request = Net::HTTP::Post.new("/" + url.split("/", 4)[3])
119
- request.add_field "Content-Type", "application/x-www-form-urlencoded"
120
- request.body = Braintree::Util.hash_to_query_string({:tr_data => tr_data_string}.merge(form_data_hash))
121
- response = http.request(request)
122
- end
123
- if response.code.to_i == 303
124
- response["Location"].split("?", 2).last
125
- else
126
- raise "did not receive a valid tr response: #{response.body[0,1000].inspect}"
127
- end
111
+ def self.simulate_form_post_for_tr(tr_data_string, form_data_hash, url = Braintree::TransparentRedirect.url)
112
+ response = nil
113
+ Net::HTTP.start("localhost", Braintree::Configuration.instantiate.port) do |http|
114
+ request = Net::HTTP::Post.new("/" + url.split("/", 4)[3])
115
+ request.add_field "Content-Type", "application/x-www-form-urlencoded"
116
+ request.body = Braintree::Util.hash_to_query_string({:tr_data => tr_data_string}.merge(form_data_hash))
117
+ response = http.request(request)
118
+ end
119
+ if response.code.to_i == 303
120
+ response["Location"].split("?", 2).last
121
+ else
122
+ raise "did not receive a valid tr response: #{response.body[0,1000].inspect}"
128
123
  end
124
+ end
129
125
 
130
- def self.using_configuration(config = {}, &block)
131
- original_values = {}
132
- [:merchant_id, :public_key, :private_key].each do |key|
133
- if config[key]
134
- original_values[key] = Braintree::Configuration.send(key)
135
- Braintree::Configuration.send("#{key}=", config[key])
136
- end
126
+ def self.using_configuration(config = {}, &block)
127
+ original_values = {}
128
+ [:merchant_id, :public_key, :private_key].each do |key|
129
+ if config[key]
130
+ original_values[key] = Braintree::Configuration.send(key)
131
+ Braintree::Configuration.send("#{key}=", config[key])
137
132
  end
138
- begin
139
- yield
140
- ensure
141
- original_values.each do |key, value|
142
- Braintree::Configuration.send("#{key}=", value)
143
- end
133
+ end
134
+ begin
135
+ yield
136
+ ensure
137
+ original_values.each do |key, value|
138
+ Braintree::Configuration.send("#{key}=", value)
144
139
  end
145
140
  end
146
141
  end
142
+ end
147
143
 
148
- module CustomMatchers
149
- class ParseTo
150
- def initialize(hash)
151
- @expected_hash = hash
152
- end
153
-
154
- def matches?(xml_string)
155
- @libxml_parse = Braintree::Xml::Parser.hash_from_xml(xml_string, Braintree::Xml::Libxml)
156
- @rexml_parse = Braintree::Xml::Parser.hash_from_xml(xml_string, Braintree::Xml::Rexml)
157
- if @libxml_parse != @expected_hash
158
- @results = @libxml_parse
159
- @failed_parser = "libxml"
160
- false
161
- elsif @rexml_parse != @expected_hash
162
- @results = @rexml_parse
163
- @failed_parser = "rexml"
164
- false
165
- else
166
- true
167
- end
168
- end
144
+ module CustomMatchers
145
+ class ParseTo
146
+ def initialize(hash)
147
+ @expected_hash = hash
148
+ end
169
149
 
170
- def failure_message
171
- "xml parsing failed for #{@failed_parser}, expected #{@expected_hash.inspect} but was #{@results.inspect}"
150
+ def matches?(xml_string)
151
+ @libxml_parse = Braintree::Xml::Parser.hash_from_xml(xml_string, Braintree::Xml::Libxml)
152
+ @rexml_parse = Braintree::Xml::Parser.hash_from_xml(xml_string, Braintree::Xml::Rexml)
153
+ if @libxml_parse != @expected_hash
154
+ @results = @libxml_parse
155
+ @failed_parser = "libxml"
156
+ false
157
+ elsif @rexml_parse != @expected_hash
158
+ @results = @rexml_parse
159
+ @failed_parser = "rexml"
160
+ false
161
+ else
162
+ true
172
163
  end
164
+ end
173
165
 
174
- def negative_failure_message
175
- raise NotImplementedError
176
- end
166
+ def failure_message
167
+ "xml parsing failed for #{@failed_parser}, expected #{@expected_hash.inspect} but was #{@results.inspect}"
177
168
  end
178
169
 
179
- def parse_to(hash)
180
- ParseTo.new(hash)
170
+ def negative_failure_message
171
+ raise NotImplementedError
181
172
  end
182
173
  end
183
174
 
184
- Spec::Runner.configure do |config|
185
- config.include CustomMatchers
175
+ def parse_to(hash)
176
+ ParseTo.new(hash)
186
177
  end
187
178
  end
188
179
 
180
+ Spec::Runner.configure do |config|
181
+ config.include CustomMatchers
182
+ end
@@ -0,0 +1,23 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::MerchantAccount do
4
+ describe "#inspect" do
5
+ it "is a string representation of the merchant account" do
6
+ account = Braintree::MerchantAccount._new(nil, :id => "merchant_account", :status => "active", :master_merchant_account => nil)
7
+
8
+ account.inspect.should == "#<Braintree::MerchantAccount: id: \"merchant_account\", status: \"active\", master_merchant_account: nil>"
9
+ end
10
+
11
+ it "handles a master merchant account" do
12
+ account = Braintree::MerchantAccount._new(
13
+ nil,
14
+ :id => "merchant_account",
15
+ :status => "active",
16
+ :master_merchant_account => {:id => "master_merchant_account", :status => "active", :master_merchant_account => nil}
17
+ )
18
+
19
+ master_merchant_account = "#<Braintree::MerchantAccount: id: \"master_merchant_account\", status: \"active\", master_merchant_account: nil>"
20
+ account.inspect.should == "#<Braintree::MerchantAccount: id: \"merchant_account\", status: \"active\", master_merchant_account: #{master_merchant_account}>"
21
+ end
22
+ end
23
+ end
@@ -15,8 +15,75 @@ describe Braintree::WebhookNotification do
15
15
  notification.timestamp.should be_close(Time.now.utc, 10)
16
16
  end
17
17
 
18
+ it "builds a sample notification for a partner user created webhook" do
19
+ signature, payload = Braintree::WebhookTesting.sample_notification(
20
+ Braintree::WebhookNotification::Kind::PartnerUserCreated,
21
+ "my_id"
22
+ )
23
+
24
+ notification = Braintree::WebhookNotification.parse(signature, payload)
25
+
26
+ notification.kind.should == Braintree::WebhookNotification::Kind::PartnerUserCreated
27
+ notification.partner_credentials.merchant_public_id.should == "public_id"
28
+ notification.partner_credentials.public_key.should == "public_key"
29
+ notification.partner_credentials.private_key.should == "private_key"
30
+ notification.partner_credentials.partner_user_id.should == "abc123"
31
+ notification.timestamp.should be_close(Time.now.utc, 10)
32
+ end
33
+
34
+ it "builds a sample notification for a transaction disbursed webhook" do
35
+ signature, payload = Braintree::WebhookTesting.sample_notification(
36
+ Braintree::WebhookNotification::Kind::TransactionDisbursed,
37
+ "my_id"
38
+ )
39
+
40
+ notification = Braintree::WebhookNotification.parse(signature, payload)
41
+
42
+ notification.kind.should == Braintree::WebhookNotification::Kind::TransactionDisbursed
43
+ notification.transaction.id.should == "my_id"
44
+ notification.transaction.amount.should == 1_00
45
+ notification.transaction.disbursement_details.disbursement_date.should == Time.utc(2013, 7, 9, 18, 23, 29)
46
+ end
47
+
48
+ context "merchant account" do
49
+ it "builds a sample notification for a merchant account approved webhook" do
50
+ signature, payload = Braintree::WebhookTesting.sample_notification(
51
+ Braintree::WebhookNotification::Kind::SubMerchantAccountApproved,
52
+ "my_id"
53
+ )
54
+
55
+ notification = Braintree::WebhookNotification.parse(signature, payload)
56
+
57
+ notification.kind.should == Braintree::WebhookNotification::Kind::SubMerchantAccountApproved
58
+ notification.merchant_account.id.should == "my_id"
59
+ notification.merchant_account.status.should == Braintree::MerchantAccount::Status::Active
60
+ notification.merchant_account.master_merchant_account.id.should == "master_ma_for_my_id"
61
+ notification.merchant_account.master_merchant_account.status.should == Braintree::MerchantAccount::Status::Active
62
+ end
63
+
64
+ it "builds a sample notification for a merchant account declined webhook" do
65
+ signature, payload = Braintree::WebhookTesting.sample_notification(
66
+ Braintree::WebhookNotification::Kind::SubMerchantAccountDeclined,
67
+ "my_id"
68
+ )
69
+
70
+ notification = Braintree::WebhookNotification.parse(signature, payload)
71
+
72
+ notification.kind.should == Braintree::WebhookNotification::Kind::SubMerchantAccountDeclined
73
+ notification.merchant_account.id.should == "my_id"
74
+ notification.merchant_account.status.should == Braintree::MerchantAccount::Status::Suspended
75
+ notification.merchant_account.master_merchant_account.id.should == "master_ma_for_my_id"
76
+ notification.merchant_account.master_merchant_account.status.should == Braintree::MerchantAccount::Status::Suspended
77
+ notification.message.should == "Credit score is too low"
78
+ notification.errors.for(:merchant_account).on(:base).first.code.should == Braintree::ErrorCodes::MerchantAccount::ApplicantDetails::DeclinedOFAC
79
+ end
80
+ end
81
+
18
82
  it "includes a valid signature" do
19
- signature, payload = Braintree::WebhookTesting.sample_notification(Braintree::WebhookNotification::Kind::SubscriptionWentPastDue, "my_id")
83
+ signature, payload = Braintree::WebhookTesting.sample_notification(
84
+ Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
85
+ "my_id"
86
+ )
20
87
  expected_signature = Braintree::Digest.hexdigest(Braintree::Configuration.private_key, payload)
21
88
 
22
89
  signature.should == "#{Braintree::Configuration.public_key}|#{expected_signature}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.0
4
+ version: 2.25.0
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-07-18 00:00:00.000000000 Z
12
+ date: 2013-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: builder
@@ -36,132 +36,137 @@ files:
36
36
  - README.rdoc
37
37
  - LICENSE
38
38
  - lib/braintree.rb
39
- - lib/braintree/validation_error.rb
40
- - lib/braintree/webhook_testing_gateway.rb
41
- - lib/braintree/transparent_redirect.rb
42
- - lib/braintree/webhook_notification.rb
43
- - lib/braintree/validation_error_collection.rb
44
- - lib/braintree/transaction.rb
45
- - lib/braintree/credit_card_verification_gateway.rb
46
- - lib/braintree/webhook_notification_gateway.rb
47
- - lib/braintree/transaction_search.rb
48
- - lib/braintree/transaction_gateway.rb
49
- - lib/braintree/add_on.rb
50
- - lib/braintree/resource_collection.rb
51
- - lib/braintree/address_gateway.rb
52
- - lib/braintree/successful_result.rb
53
- - lib/braintree/plan.rb
54
39
  - lib/braintree/subscription_search.rb
55
- - lib/braintree/descriptor.rb
56
- - lib/braintree/error_codes.rb
57
- - lib/braintree/xml.rb
58
- - lib/braintree/discount_gateway.rb
59
- - lib/braintree/xml/generator.rb
60
- - lib/braintree/xml/parser.rb
61
- - lib/braintree/xml/rexml.rb
62
- - lib/braintree/xml/libxml.rb
40
+ - lib/braintree/modification.rb
41
+ - lib/braintree/errors.rb
42
+ - lib/braintree/test/credit_card.rb
43
+ - lib/braintree/test/transaction_amounts.rb
44
+ - lib/braintree/test/merchant_account.rb
45
+ - lib/braintree/test/venmo_sdk.rb
46
+ - lib/braintree/webhook_testing.rb
47
+ - lib/braintree/webhook_testing_gateway.rb
48
+ - lib/braintree/advanced_search.rb
63
49
  - lib/braintree/version.rb
50
+ - lib/braintree/add_on.rb
64
51
  - lib/braintree/address.rb
65
- - lib/braintree/modification.rb
66
- - lib/braintree/http.rb
67
52
  - lib/braintree/digest.rb
68
- - lib/braintree/customer.rb
69
- - lib/braintree/gateway.rb
70
- - lib/braintree/base_module.rb
71
- - lib/braintree/advanced_search.rb
72
53
  - lib/braintree/settlement_batch_summary.rb
73
- - lib/braintree/errors.rb
74
- - lib/braintree/customer_gateway.rb
75
- - lib/braintree/webhook_testing.rb
76
- - lib/braintree/credit_card.rb
54
+ - lib/braintree/error_codes.rb
55
+ - lib/braintree/discount.rb
56
+ - lib/braintree/webhook_notification.rb
77
57
  - lib/braintree/settlement_batch_summary_gateway.rb
58
+ - lib/braintree/validation_error_collection.rb
59
+ - lib/braintree/credit_card_verification_gateway.rb
60
+ - lib/braintree/credit_card.rb
78
61
  - lib/braintree/customer_search.rb
79
- - lib/braintree/address/country_names.rb
80
62
  - lib/braintree/util.rb
81
- - lib/braintree/subscription_gateway.rb
82
- - lib/braintree/discount.rb
63
+ - lib/braintree/transparent_redirect.rb
64
+ - lib/braintree/xml/generator.rb
65
+ - lib/braintree/xml/rexml.rb
66
+ - lib/braintree/xml/libxml.rb
67
+ - lib/braintree/xml/parser.rb
68
+ - lib/braintree/exceptions.rb
69
+ - lib/braintree/validation_error.rb
70
+ - lib/braintree/resource_collection.rb
71
+ - lib/braintree/xml.rb
83
72
  - lib/braintree/credit_card_verification.rb
84
- - lib/braintree/credit_card_gateway.rb
73
+ - lib/braintree/configuration.rb
74
+ - lib/braintree/transaction.rb
75
+ - lib/braintree/http.rb
76
+ - lib/braintree/address_gateway.rb
77
+ - lib/braintree/subscription_gateway.rb
78
+ - lib/braintree/customer_gateway.rb
79
+ - lib/braintree/plan_gateway.rb
85
80
  - lib/braintree/credit_card_verification_search.rb
86
- - lib/braintree/add_on_gateway.rb
81
+ - lib/braintree/successful_result.rb
87
82
  - lib/braintree/settlement_batch.rb
83
+ - lib/braintree/plan.rb
84
+ - lib/braintree/gateway.rb
88
85
  - lib/braintree/transparent_redirect_gateway.rb
89
- - lib/braintree/test/venmo_sdk.rb
90
- - lib/braintree/test/transaction_amounts.rb
91
- - lib/braintree/test/credit_card.rb
92
- - lib/braintree/subscription.rb
93
- - lib/braintree/plan_gateway.rb
94
- - lib/braintree/exceptions.rb
95
- - lib/braintree/error_result.rb
96
- - lib/braintree/configuration.rb
86
+ - lib/braintree/base_module.rb
87
+ - lib/braintree/add_on_gateway.rb
97
88
  - lib/braintree/transaction/subscription_details.rb
98
- - lib/braintree/transaction/address_details.rb
99
- - lib/braintree/transaction/status_details.rb
89
+ - lib/braintree/transaction/disbursement_details.rb
100
90
  - lib/braintree/transaction/customer_details.rb
101
91
  - lib/braintree/transaction/credit_card_details.rb
102
- - lib/braintree/transaction/disbursement_details.rb
92
+ - lib/braintree/transaction/status_details.rb
93
+ - lib/braintree/transaction/address_details.rb
94
+ - lib/braintree/transaction_search.rb
95
+ - lib/braintree/error_result.rb
96
+ - lib/braintree/credit_card_gateway.rb
97
+ - lib/braintree/descriptor.rb
98
+ - lib/braintree/transaction_gateway.rb
99
+ - lib/braintree/subscription.rb
100
+ - lib/braintree/merchant_account.rb
101
+ - lib/braintree/address/country_names.rb
102
+ - lib/braintree/webhook_notification_gateway.rb
103
+ - lib/braintree/merchant_account_gateway.rb
104
+ - lib/braintree/customer.rb
105
+ - lib/braintree/discount_gateway.rb
103
106
  - lib/ssl/www_braintreegateway_com.ca.crt
104
- - lib/ssl/securetrust_ca.crt
105
107
  - lib/ssl/sandbox_braintreegateway_com.ca.crt
106
- - spec/integration/spec_helper.rb
107
- - spec/integration/braintree/error_codes_spec.rb
108
- - spec/integration/braintree/transparent_redirect_spec.rb
109
- - spec/integration/braintree/credit_card_verification_search_spec.rb
110
- - spec/integration/braintree/advanced_search_spec.rb
111
- - spec/integration/braintree/discount_spec.rb
112
- - spec/integration/braintree/credit_card_spec.rb
113
- - spec/integration/braintree/settlement_batch_summary_spec.rb
114
- - spec/integration/braintree/address_spec.rb
115
- - spec/integration/braintree/customer_search_spec.rb
116
- - spec/integration/braintree/credit_card_verification_spec.rb
117
- - spec/integration/braintree/plan_spec.rb
118
- - spec/integration/braintree/http_spec.rb
119
- - spec/integration/braintree/customer_spec.rb
120
- - spec/integration/braintree/add_on_spec.rb
121
- - spec/integration/braintree/transaction_spec.rb
122
- - spec/integration/braintree/transaction_search_spec.rb
123
- - spec/integration/braintree/subscription_spec.rb
124
- - spec/integration/braintree/test/transaction_amounts_spec.rb
108
+ - lib/ssl/securetrust_ca.crt
109
+ - spec/script/httpsd.rb
125
110
  - spec/spec_helper.rb
126
- - spec/ssl/certificate.crt
127
- - spec/ssl/geotrust_global.crt
128
- - spec/ssl/privateKey.key
129
- - spec/httpsd.pid
130
- - spec/unit/braintree_spec.rb
131
111
  - spec/unit/spec_helper.rb
132
- - spec/unit/braintree/transparent_redirect_spec.rb
133
- - spec/unit/braintree/credit_card_verification_search_spec.rb
134
- - spec/unit/braintree/base_module_spec.rb
135
- - spec/unit/braintree/credit_card_spec.rb
136
- - spec/unit/braintree/xml_spec.rb
137
- - spec/unit/braintree/address_spec.rb
138
- - spec/unit/braintree/validation_error_collection_spec.rb
139
- - spec/unit/braintree/util_spec.rb
112
+ - spec/unit/braintree/transaction_search_spec.rb
140
113
  - spec/unit/braintree/error_result_spec.rb
114
+ - spec/unit/braintree/xml_spec.rb
115
+ - spec/unit/braintree/customer_spec.rb
116
+ - spec/unit/braintree/transaction_spec.rb
117
+ - spec/unit/braintree/webhook_notification_spec.rb
118
+ - spec/unit/braintree/http_spec.rb
119
+ - spec/unit/braintree/subscription_spec.rb
120
+ - spec/unit/braintree/credit_card_verification_search_spec.rb
121
+ - spec/unit/braintree/subscription_search_spec.rb
122
+ - spec/unit/braintree/successful_result_spec.rb
141
123
  - spec/unit/braintree/credit_card_verification_spec.rb
142
- - spec/unit/braintree/xml/rexml_spec.rb
143
- - spec/unit/braintree/xml/parser_spec.rb
124
+ - spec/unit/braintree/validation_error_spec.rb
125
+ - spec/unit/braintree/resource_collection_spec.rb
144
126
  - spec/unit/braintree/xml/libxml_spec.rb
127
+ - spec/unit/braintree/xml/parser_spec.rb
128
+ - spec/unit/braintree/xml/rexml_spec.rb
145
129
  - spec/unit/braintree/configuration_spec.rb
130
+ - spec/unit/braintree/validation_error_collection_spec.rb
131
+ - spec/unit/braintree/merchant_account_spec.rb
146
132
  - spec/unit/braintree/errors_spec.rb
147
- - spec/unit/braintree/digest_spec.rb
148
- - spec/unit/braintree/validation_error_spec.rb
149
- - spec/unit/braintree/webhook_notification_spec.rb
150
- - spec/unit/braintree/subscription_search_spec.rb
151
- - spec/unit/braintree/http_spec.rb
152
- - spec/unit/braintree/customer_spec.rb
153
133
  - spec/unit/braintree/modification_spec.rb
154
- - spec/unit/braintree/transaction_spec.rb
155
- - spec/unit/braintree/resource_collection_spec.rb
156
- - spec/unit/braintree/successful_result_spec.rb
157
- - spec/unit/braintree/transaction_search_spec.rb
158
- - spec/unit/braintree/subscription_spec.rb
134
+ - spec/unit/braintree/util_spec.rb
135
+ - spec/unit/braintree/base_module_spec.rb
136
+ - spec/unit/braintree/address_spec.rb
137
+ - spec/unit/braintree/transparent_redirect_spec.rb
159
138
  - spec/unit/braintree/transaction/deposit_details_spec.rb
160
- - spec/unit/braintree/transaction/customer_details_spec.rb
161
139
  - spec/unit/braintree/transaction/credit_card_details_spec.rb
162
- - spec/spec.opts
140
+ - spec/unit/braintree/transaction/customer_details_spec.rb
141
+ - spec/unit/braintree/credit_card_spec.rb
142
+ - spec/unit/braintree/digest_spec.rb
143
+ - spec/unit/braintree_spec.rb
163
144
  - spec/hacks/tcp_socket.rb
164
- - spec/script/httpsd.rb
145
+ - spec/httpsd.pid
146
+ - spec/integration/spec_helper.rb
147
+ - spec/integration/braintree/settlement_batch_summary_spec.rb
148
+ - spec/integration/braintree/transaction_search_spec.rb
149
+ - spec/integration/braintree/test/transaction_amounts_spec.rb
150
+ - spec/integration/braintree/customer_spec.rb
151
+ - spec/integration/braintree/transaction_spec.rb
152
+ - spec/integration/braintree/add_on_spec.rb
153
+ - spec/integration/braintree/http_spec.rb
154
+ - spec/integration/braintree/subscription_spec.rb
155
+ - spec/integration/braintree/credit_card_verification_search_spec.rb
156
+ - spec/integration/braintree/credit_card_verification_spec.rb
157
+ - spec/integration/braintree/advanced_search_spec.rb
158
+ - spec/integration/braintree/customer_search_spec.rb
159
+ - spec/integration/braintree/merchant_account_spec.rb
160
+ - spec/integration/braintree/plan_spec.rb
161
+ - spec/integration/braintree/error_codes_spec.rb
162
+ - spec/integration/braintree/address_spec.rb
163
+ - spec/integration/braintree/transparent_redirect_spec.rb
164
+ - spec/integration/braintree/credit_card_spec.rb
165
+ - spec/integration/braintree/discount_spec.rb
166
+ - spec/spec.opts
167
+ - spec/ssl/geotrust_global.crt
168
+ - spec/ssl/certificate.crt
169
+ - spec/ssl/privateKey.key
165
170
  - braintree.gemspec
166
171
  homepage: http://www.braintreepayments.com/
167
172
  licenses: []