braintree 4.13.0 → 4.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/lib/braintree/credit_card.rb +13 -0
  3. data/lib/braintree/credit_card_gateway.rb +15 -3
  4. data/lib/braintree/payment_method_gateway.rb +15 -3
  5. data/lib/braintree/test/nonce.rb +1 -0
  6. data/lib/braintree/test/venmo_sdk.rb +2 -0
  7. data/lib/braintree/transaction/credit_card_details.rb +3 -0
  8. data/lib/braintree/transaction/local_payment_details.rb +2 -0
  9. data/lib/braintree/transaction/payment_receipt/card_present_data.rb +36 -0
  10. data/lib/braintree/transaction/payment_receipt/merchant_address.rb +19 -0
  11. data/lib/braintree/transaction/payment_receipt.rb +31 -0
  12. data/lib/braintree/transaction/us_bank_account_details.rb +1 -0
  13. data/lib/braintree/transaction.rb +7 -4
  14. data/lib/braintree/transaction_gateway.rb +15 -3
  15. data/lib/braintree/transaction_search.rb +6 -5
  16. data/lib/braintree/version.rb +1 -1
  17. data/lib/braintree/webhook_notification.rb +1 -0
  18. data/lib/braintree/webhook_testing_gateway.rb +17 -0
  19. data/lib/braintree.rb +3 -0
  20. data/spec/integration/braintree/add_on_spec.rb +9 -9
  21. data/spec/integration/braintree/address_spec.rb +69 -69
  22. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  23. data/spec/integration/braintree/apple_pay_spec.rb +8 -8
  24. data/spec/integration/braintree/client_api/client_token_spec.rb +15 -15
  25. data/spec/integration/braintree/credit_card_spec.rb +223 -223
  26. data/spec/integration/braintree/credit_card_verification_search_spec.rb +16 -16
  27. data/spec/integration/braintree/credit_card_verification_spec.rb +52 -52
  28. data/spec/integration/braintree/customer_search_spec.rb +20 -20
  29. data/spec/integration/braintree/customer_spec.rb +313 -313
  30. data/spec/integration/braintree/disbursement_spec.rb +2 -2
  31. data/spec/integration/braintree/discount_spec.rb +9 -9
  32. data/spec/integration/braintree/dispute_spec.rb +87 -87
  33. data/spec/integration/braintree/document_upload_spec.rb +17 -17
  34. data/spec/integration/braintree/error_codes_spec.rb +2 -2
  35. data/spec/integration/braintree/http_spec.rb +28 -28
  36. data/spec/integration/braintree/merchant_account_spec.rb +127 -127
  37. data/spec/integration/braintree/merchant_spec.rb +103 -103
  38. data/spec/integration/braintree/oauth_spec.rb +61 -61
  39. data/spec/integration/braintree/payment_method_nonce_spec.rb +73 -73
  40. data/spec/integration/braintree/payment_method_spec.rb +389 -389
  41. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +78 -78
  42. data/spec/integration/braintree/paypal_account_spec.rb +38 -38
  43. data/spec/integration/braintree/plan_spec.rb +15 -15
  44. data/spec/integration/braintree/samsung_pay_card_spec.rb +65 -65
  45. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +51 -51
  46. data/spec/integration/braintree/settlement_batch_summary_spec.rb +11 -11
  47. data/spec/integration/braintree/subscription_spec.rb +364 -364
  48. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  49. data/spec/integration/braintree/test_transaction_spec.rb +19 -19
  50. data/spec/integration/braintree/transaction_line_item_spec.rb +6 -6
  51. data/spec/integration/braintree/transaction_search_spec.rb +198 -165
  52. data/spec/integration/braintree/transaction_spec.rb +1319 -1151
  53. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +32 -32
  54. data/spec/integration/braintree/us_bank_account_spec.rb +30 -30
  55. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +18 -18
  56. data/spec/integration/braintree/us_bank_account_verification_spec.rb +33 -33
  57. data/spec/integration/braintree/visa_checkout_card_spec.rb +57 -57
  58. data/spec/spec_helper.rb +9 -8
  59. data/spec/unit/braintree/address_spec.rb +8 -8
  60. data/spec/unit/braintree/base_module_spec.rb +4 -4
  61. data/spec/unit/braintree/client_token_spec.rb +2 -2
  62. data/spec/unit/braintree/configuration_spec.rb +57 -57
  63. data/spec/unit/braintree/credentials_parser_spec.rb +6 -6
  64. data/spec/unit/braintree/credit_card_spec.rb +31 -29
  65. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +28 -28
  66. data/spec/unit/braintree/credit_card_verification_search_spec.rb +9 -9
  67. data/spec/unit/braintree/credit_card_verification_spec.rb +17 -17
  68. data/spec/unit/braintree/customer_spec.rb +41 -40
  69. data/spec/unit/braintree/digest_spec.rb +5 -5
  70. data/spec/unit/braintree/disbursement_spec.rb +11 -11
  71. data/spec/unit/braintree/dispute_search_spec.rb +2 -2
  72. data/spec/unit/braintree/dispute_spec.rb +56 -56
  73. data/spec/unit/braintree/document_upload_spec.rb +8 -8
  74. data/spec/unit/braintree/enriched_customer_data_spec.rb +2 -2
  75. data/spec/unit/braintree/error_result_spec.rb +5 -5
  76. data/spec/unit/braintree/errors_spec.rb +9 -9
  77. data/spec/unit/braintree/http_spec.rb +8 -8
  78. data/spec/unit/braintree/local_payment_completed_spec.rb +11 -11
  79. data/spec/unit/braintree/local_payment_expired_spec.rb +2 -2
  80. data/spec/unit/braintree/local_payment_funded_spec.rb +6 -6
  81. data/spec/unit/braintree/merchant_account_spec.rb +4 -4
  82. data/spec/unit/braintree/modification_spec.rb +1 -1
  83. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +6 -6
  84. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +7 -7
  85. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +14 -14
  86. data/spec/unit/braintree/payment_method_spec.rb +19 -19
  87. data/spec/unit/braintree/paypal_account_spec.rb +4 -4
  88. data/spec/unit/braintree/resource_collection_spec.rb +7 -7
  89. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +1 -1
  90. data/spec/unit/braintree/sha256_digest_spec.rb +1 -1
  91. data/spec/unit/braintree/signature_service_spec.rb +2 -2
  92. data/spec/unit/braintree/subscription_search_spec.rb +17 -17
  93. data/spec/unit/braintree/subscription_spec.rb +8 -8
  94. data/spec/unit/braintree/successful_result_spec.rb +5 -5
  95. data/spec/unit/braintree/three_d_secure_info_spec.rb +20 -20
  96. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +5 -5
  97. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  98. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  99. data/spec/unit/braintree/transaction/local_payment_details_spec.rb +30 -0
  100. data/spec/unit/braintree/transaction/payment_receipt_spec.rb +73 -0
  101. data/spec/unit/braintree/transaction_gateway_spec.rb +9 -6
  102. data/spec/unit/braintree/transaction_search_spec.rb +2 -2
  103. data/spec/unit/braintree/transaction_spec.rb +101 -93
  104. data/spec/unit/braintree/unknown_payment_method_spec.rb +4 -4
  105. data/spec/unit/braintree/us_bank_account_spec.rb +2 -2
  106. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +7 -7
  107. data/spec/unit/braintree/us_bank_account_verification_spec.rb +7 -7
  108. data/spec/unit/braintree/util_spec.rb +27 -27
  109. data/spec/unit/braintree/validation_error_collection_spec.rb +34 -34
  110. data/spec/unit/braintree/validation_error_spec.rb +4 -4
  111. data/spec/unit/braintree/venmo_profile_data_spec.rb +5 -5
  112. data/spec/unit/braintree/webhook_notification_spec.rb +206 -191
  113. data/spec/unit/braintree/xml/libxml_spec.rb +5 -5
  114. data/spec/unit/braintree/xml/parser_spec.rb +8 -8
  115. data/spec/unit/braintree/xml/rexml_spec.rb +5 -5
  116. data/spec/unit/braintree/xml_spec.rb +17 -17
  117. data/spec/unit/braintree_spec.rb +2 -2
  118. metadata +7 -2
@@ -4,7 +4,7 @@ describe Braintree::Xml::Libxml do
4
4
  describe "self.parse" do
5
5
  it "typecasts integers" do
6
6
  xml = "<root><foo type=\"integer\">123</foo></root>"
7
- Braintree::Xml::Libxml.parse(xml).should == {"root"=>{"foo"=>{"__content__"=>"123", "type"=>"integer"}}}
7
+ expect(Braintree::Xml::Libxml.parse(xml)).to eq({"root"=>{"foo"=>{"__content__"=>"123", "type"=>"integer"}}})
8
8
  end
9
9
 
10
10
  it "works with dashes or underscores" do
@@ -14,7 +14,7 @@ describe Braintree::Xml::Libxml do
14
14
  <under_scores />
15
15
  </root>
16
16
  END
17
- Braintree::Xml::Libxml.parse(xml).should == {"root"=>{"dash-es"=>{}, "under_scores"=>{}}}
17
+ expect(Braintree::Xml::Libxml.parse(xml)).to eq({"root"=>{"dash-es"=>{}, "under_scores"=>{}}})
18
18
  end
19
19
 
20
20
  it "uses nil if nil=true, otherwise uses empty string" do
@@ -24,7 +24,7 @@ describe Braintree::Xml::Libxml do
24
24
  <an_empty_string></an_empty_string>
25
25
  </root>
26
26
  END
27
- Braintree::Xml::Libxml.parse(xml).should == {"root"=>{"a_nil_value"=>{"nil"=>"true"}, "an_empty_string"=>{}}}
27
+ expect(Braintree::Xml::Libxml.parse(xml)).to eq({"root"=>{"a_nil_value"=>{"nil"=>"true"}, "an_empty_string"=>{}}})
28
28
  end
29
29
 
30
30
  it "typecasts dates and times" do
@@ -33,7 +33,7 @@ describe Braintree::Xml::Libxml do
33
33
  <created-at type="datetime">2009-10-28T10:19:49Z</created-at>
34
34
  </root>
35
35
  END
36
- Braintree::Xml::Libxml.parse(xml).should == {"root"=>{"created-at"=>{"__content__"=>"2009-10-28T10:19:49Z", "type"=>"datetime"}}}
36
+ expect(Braintree::Xml::Libxml.parse(xml)).to eq({"root"=>{"created-at"=>{"__content__"=>"2009-10-28T10:19:49Z", "type"=>"datetime"}}})
37
37
  end
38
38
 
39
39
  it "builds an array if type=array" do
@@ -45,7 +45,7 @@ describe Braintree::Xml::Libxml do
45
45
  </customers>
46
46
  </root>
47
47
  END
48
- Braintree::Xml::Libxml.parse(xml).should == {"root"=>{"customers"=>{"type"=>"array", "customer"=>[{"name"=>{"__content__"=>"Adam"}}, {"name"=>{"__content__"=>"Ben"}}]}}}
48
+ expect(Braintree::Xml::Libxml.parse(xml)).to eq({"root"=>{"customers"=>{"type"=>"array", "customer"=>[{"name"=>{"__content__"=>"Adam"}}, {"name"=>{"__content__"=>"Ben"}}]}}})
49
49
  end
50
50
  end
51
51
  end
@@ -4,7 +4,7 @@ describe Braintree::Xml::Parser do
4
4
  describe "self.hash_from_xml" do
5
5
  it "typecasts integers" do
6
6
  xml = "<root><foo type=\"integer\">123</foo></root>"
7
- xml.should parse_to(:root => {:foo => 123})
7
+ expect(xml).to parse_to(:root => {:foo => 123})
8
8
  end
9
9
 
10
10
  it "works with dashes or underscores" do
@@ -14,7 +14,7 @@ describe Braintree::Xml::Parser do
14
14
  <under_scores />
15
15
  </root>
16
16
  END
17
- xml.should parse_to(:root=>{:dash_es=>"", :under_scores=>""})
17
+ expect(xml).to parse_to(:root=>{:dash_es=>"", :under_scores=>""})
18
18
  end
19
19
 
20
20
  it "uses nil if nil=true, otherwise uses empty string" do
@@ -24,7 +24,7 @@ describe Braintree::Xml::Parser do
24
24
  <an_empty_string></an_empty_string>
25
25
  </root>
26
26
  END
27
- xml.should parse_to(:root => {:a_nil_value => nil, :an_empty_string => ""})
27
+ expect(xml).to parse_to(:root => {:a_nil_value => nil, :an_empty_string => ""})
28
28
  end
29
29
 
30
30
  it "typecasts datetimes" do
@@ -33,7 +33,7 @@ describe Braintree::Xml::Parser do
33
33
  <created-at type="datetime">2009-10-28T10:19:49Z</created-at>
34
34
  </root>
35
35
  END
36
- xml.should parse_to(:root => {:created_at => Time.utc(2009, 10, 28, 10, 19, 49)})
36
+ expect(xml).to parse_to(:root => {:created_at => Time.utc(2009, 10, 28, 10, 19, 49)})
37
37
  end
38
38
 
39
39
  it "doesn't typecast dates" do
@@ -42,7 +42,7 @@ describe Braintree::Xml::Parser do
42
42
  <created-at type="date">2009-10-28</created-at>
43
43
  </root>
44
44
  END
45
- xml.should parse_to(:root => {:created_at => "2009-10-28"})
45
+ expect(xml).to parse_to(:root => {:created_at => "2009-10-28"})
46
46
  end
47
47
 
48
48
  it "builds an array if type=array" do
@@ -54,7 +54,7 @@ describe Braintree::Xml::Parser do
54
54
  </customers>
55
55
  </root>
56
56
  END
57
- xml.should parse_to(:root => {:customers => [{:name => "Adam"}, {:name => "Ben"}]})
57
+ expect(xml).to parse_to(:root => {:customers => [{:name => "Adam"}, {:name => "Ben"}]})
58
58
  end
59
59
 
60
60
  it "parses an array" do
@@ -66,7 +66,7 @@ describe Braintree::Xml::Parser do
66
66
  </customers>
67
67
  </root>
68
68
  END
69
- xml.should parse_to(:root => {:customers => [{:name => "Adam", :customer_id => "1"}, {:name => "Ben", :customer_id => "2"}]})
69
+ expect(xml).to parse_to(:root => {:customers => [{:name => "Adam", :customer_id => "1"}, {:name => "Ben", :customer_id => "2"}]})
70
70
  end
71
71
 
72
72
  it "parses nested objects" do
@@ -79,7 +79,7 @@ describe Braintree::Xml::Parser do
79
79
  </paypal-details>
80
80
  </root>
81
81
  END
82
- xml.should parse_to(:root => {:paypal_details => {:deets => [{:secret_code => "1234"}], :payer_email => "abc@test.com", :payment_id => "1234567890"}})
82
+ expect(xml).to parse_to(:root => {:paypal_details => {:deets => [{:secret_code => "1234"}], :payer_email => "abc@test.com", :payment_id => "1234567890"}})
83
83
  end
84
84
  end
85
85
  end
@@ -4,7 +4,7 @@ describe Braintree::Xml::Rexml do
4
4
  describe "self.parse" do
5
5
  it "typecasts integers" do
6
6
  xml = "<root><foo type=\"integer\">123</foo></root>"
7
- Braintree::Xml::Rexml.parse(xml).should == {"root"=>{"foo"=>{"__content__"=>"123", "type"=>"integer"}}}
7
+ expect(Braintree::Xml::Rexml.parse(xml)).to eq({"root"=>{"foo"=>{"__content__"=>"123", "type"=>"integer"}}})
8
8
  end
9
9
 
10
10
  it "works with dashes or underscores" do
@@ -14,7 +14,7 @@ describe Braintree::Xml::Rexml do
14
14
  <under_scores />
15
15
  </root>
16
16
  END
17
- Braintree::Xml::Rexml.parse(xml).should == {"root"=>{"dash-es"=>{}, "under_scores"=>{}}}
17
+ expect(Braintree::Xml::Rexml.parse(xml)).to eq({"root"=>{"dash-es"=>{}, "under_scores"=>{}}})
18
18
  end
19
19
 
20
20
  it "uses nil if nil=true, otherwise uses empty string" do
@@ -24,7 +24,7 @@ describe Braintree::Xml::Rexml do
24
24
  <an_empty_string></an_empty_string>
25
25
  </root>
26
26
  END
27
- Braintree::Xml::Rexml.parse(xml).should == {"root"=>{"a_nil_value"=>{"nil"=>"true"}, "an_empty_string"=>{}}}
27
+ expect(Braintree::Xml::Rexml.parse(xml)).to eq({"root"=>{"a_nil_value"=>{"nil"=>"true"}, "an_empty_string"=>{}}})
28
28
  end
29
29
 
30
30
  it "typecasts dates and times" do
@@ -33,7 +33,7 @@ describe Braintree::Xml::Rexml do
33
33
  <created-at type="datetime">2009-10-28T10:19:49Z</created-at>
34
34
  </root>
35
35
  END
36
- Braintree::Xml::Rexml.parse(xml).should == {"root"=>{"created-at"=>{"__content__"=>"2009-10-28T10:19:49Z", "type"=>"datetime"}}}
36
+ expect(Braintree::Xml::Rexml.parse(xml)).to eq({"root"=>{"created-at"=>{"__content__"=>"2009-10-28T10:19:49Z", "type"=>"datetime"}}})
37
37
  end
38
38
 
39
39
  it "builds an array if type=array" do
@@ -45,7 +45,7 @@ describe Braintree::Xml::Rexml do
45
45
  </customers>
46
46
  </root>
47
47
  END
48
- Braintree::Xml::Rexml.parse(xml).should == {"root"=>{"customers"=>{"type"=>"array", "customer"=>[{"name"=>{"__content__"=>"Adam"}}, {"name"=>{"__content__"=>"Ben"}}]}}}
48
+ expect(Braintree::Xml::Rexml.parse(xml)).to eq({"root"=>{"customers"=>{"type"=>"array", "customer"=>[{"name"=>{"__content__"=>"Adam"}}, {"name"=>{"__content__"=>"Ben"}}]}}})
49
49
  end
50
50
  end
51
51
  end
@@ -4,7 +4,7 @@ describe Braintree::Xml do
4
4
  describe "self.hash_from_xml" do
5
5
  it "typecasts integers" do
6
6
  hash = Braintree::Xml.hash_from_xml("<root><foo type=\"integer\">123</foo></root>")
7
- hash.should == {:root => {:foo => 123}}
7
+ expect(hash).to eq({:root => {:foo => 123}})
8
8
  end
9
9
 
10
10
  it "works with dashes or underscores" do
@@ -16,7 +16,7 @@ describe Braintree::Xml do
16
16
  END
17
17
 
18
18
  hash = Braintree::Xml.hash_from_xml(xml)
19
- hash.should == {:root => {:dash_es => "", :under_scores => ""}}
19
+ expect(hash).to eq({:root => {:dash_es => "", :under_scores => ""}})
20
20
  end
21
21
 
22
22
  it "uses nil if nil=true, otherwise uses empty string" do
@@ -27,7 +27,7 @@ describe Braintree::Xml do
27
27
  </root>
28
28
  END
29
29
  hash = Braintree::Xml.hash_from_xml(xml)
30
- hash.should == {:root => {:a_nil_value => nil, :an_empty_string => ""}}
30
+ expect(hash).to eq({:root => {:a_nil_value => nil, :an_empty_string => ""}})
31
31
  end
32
32
 
33
33
  it "typecasts dates and times" do
@@ -36,7 +36,7 @@ describe Braintree::Xml do
36
36
  <created-at type="datetime">2009-10-28T10:19:49Z</created-at>
37
37
  </root>
38
38
  END
39
- hash.should == {:root => {:created_at => Time.utc(2009, 10, 28, 10, 19, 49)}}
39
+ expect(hash).to eq({:root => {:created_at => Time.utc(2009, 10, 28, 10, 19, 49)}})
40
40
  end
41
41
 
42
42
  it "builds an array if type=array" do
@@ -48,7 +48,7 @@ describe Braintree::Xml do
48
48
  </customers>
49
49
  </root>
50
50
  END
51
- hash.should == {:root => {:customers => [{:name => "Adam"}, {:name => "Ben"}]}}
51
+ expect(hash).to eq({:root => {:customers => [{:name => "Adam"}, {:name => "Ben"}]}})
52
52
  end
53
53
 
54
54
  it "turns 1 and true to boolean if type = boolean" do
@@ -61,10 +61,10 @@ describe Braintree::Xml do
61
61
  <uncasted-true>true</uncasted-true>
62
62
  </root>
63
63
  END
64
- hash.should == {:root => {
64
+ expect(hash).to eq({:root => {
65
65
  :casted_true => true, :casted_one => true, :casted_anything => false, :casted_false => false,
66
66
  :uncasted_true => "true"
67
- }}
67
+ }})
68
68
  end
69
69
 
70
70
  it "handles values that are arrays of hashes" do
@@ -75,13 +75,13 @@ describe Braintree::Xml do
75
75
  <elem><value>three</value></elem>
76
76
  </container>
77
77
  ")
78
- hash.should == {:container => {:elem => [{:value => "one"}, {:value => "two"}, {:value => "three"}]}}
78
+ expect(hash).to eq({:container => {:elem => [{:value => "one"}, {:value => "two"}, {:value => "three"}]}})
79
79
  end
80
80
  end
81
81
 
82
82
  describe "self.hash_to_xml" do
83
83
  def verify_to_xml_and_back(hash)
84
- Braintree::Xml.hash_from_xml(Braintree::Xml.hash_to_xml(hash)).should == hash
84
+ expect(Braintree::Xml.hash_from_xml(Braintree::Xml.hash_to_xml(hash))).to eq(hash)
85
85
  end
86
86
 
87
87
  it "works for a simple case" do
@@ -102,30 +102,30 @@ describe Braintree::Xml do
102
102
  context "Integer" do
103
103
  it "works for integers" do
104
104
  hash = {:root => {:foo => 1}}
105
- Braintree::Xml.hash_to_xml(hash).should include("<foo type=\"integer\">1</foo>")
105
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<foo type=\"integer\">1</foo>")
106
106
  end
107
107
  end
108
108
 
109
109
  context "BigDecimal" do
110
110
  it "works for BigDecimals" do
111
111
  hash = {:root => {:foo => BigDecimal("123.45")}}
112
- Braintree::Xml.hash_to_xml(hash).should include("<foo>123.45</foo>")
112
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<foo>123.45</foo>")
113
113
  end
114
114
 
115
115
  it "works for BigDecimals with fewer than 2 digits" do
116
116
  hash = {:root => {:foo => BigDecimal("1000.0")}}
117
- Braintree::Xml.hash_to_xml(hash).should include("<foo>1000.00</foo>")
117
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<foo>1000.00</foo>")
118
118
  end
119
119
 
120
120
  it "works for BigDecimals with more than 2 digits" do
121
121
  hash = {:root => {:foo => BigDecimal("12.345")}}
122
- Braintree::Xml.hash_to_xml(hash).should include("<foo>12.345</foo>")
122
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<foo>12.345</foo>")
123
123
  end
124
124
  end
125
125
 
126
126
  it "works for symbols" do
127
127
  hash = {:root => {:foo => :bar}}
128
- Braintree::Xml.hash_to_xml(hash).should include("<foo>bar</foo>")
128
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<foo>bar</foo>")
129
129
  end
130
130
 
131
131
  it "type casts booleans" do
@@ -145,7 +145,7 @@ describe Braintree::Xml do
145
145
 
146
146
  it "includes the encoding" do
147
147
  xml = Braintree::Xml.hash_to_xml(:root => {:root => "bar"})
148
- xml.should include("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
148
+ expect(xml).to include("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
149
149
  end
150
150
 
151
151
  it "works for only a root node and a string" do
@@ -155,12 +155,12 @@ describe Braintree::Xml do
155
155
 
156
156
  it "escapes keys and values" do
157
157
  hash = {"ke<y" => "val>ue"}
158
- Braintree::Xml.hash_to_xml(hash).should include("<ke&lt;y>val&gt;ue</ke&lt;y>")
158
+ expect(Braintree::Xml.hash_to_xml(hash)).to include("<ke&lt;y>val&gt;ue</ke&lt;y>")
159
159
  end
160
160
 
161
161
  it "escapes nested keys and values" do
162
162
  hash = {"top<" => {"ke<y" => "val>ue"}}
163
- Braintree::Xml.hash_to_xml(hash).gsub(/\s/, "").should include("<top&lt;><ke&lt;y>val&gt;ue</ke&lt;y></top&lt;>")
163
+ expect(Braintree::Xml.hash_to_xml(hash).gsub(/\s/, "")).to include("<top&lt;><ke&lt;y>val&gt;ue</ke&lt;y></top&lt;>")
164
164
  end
165
165
  end
166
166
  end
@@ -4,9 +4,9 @@ describe Braintree do
4
4
  it "doesn't produce warnings if loading braintree.rb twice" do
5
5
  lib_dir = File.expand_path(File.dirname(__FILE__) + "/../../lib")
6
6
  braintree_file = "#{lib_dir}/braintree.rb"
7
- File.exist?(braintree_file).should == true
7
+ expect(File.exist?(braintree_file)).to eq(true)
8
8
  output = `ruby -r rubygems -I #{lib_dir} -e 'load #{braintree_file.inspect}; load #{braintree_file.inspect}' 2>&1`
9
9
  output = output.gsub(/^.*warning: constant ::Fixnum is deprecated.*\n/, "")
10
- output.should == ""
10
+ expect(output).to eq("")
11
11
  end
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.13.0
4
+ version: 4.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Braintree
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2023-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -177,6 +177,9 @@ files:
177
177
  - lib/braintree/transaction/installment.rb
178
178
  - lib/braintree/transaction/installment/adjustment.rb
179
179
  - lib/braintree/transaction/local_payment_details.rb
180
+ - lib/braintree/transaction/payment_receipt.rb
181
+ - lib/braintree/transaction/payment_receipt/card_present_data.rb
182
+ - lib/braintree/transaction/payment_receipt/merchant_address.rb
180
183
  - lib/braintree/transaction/paypal_details.rb
181
184
  - lib/braintree/transaction/paypal_here_details.rb
182
185
  - lib/braintree/transaction/samsung_pay_card_details.rb
@@ -321,6 +324,8 @@ files:
321
324
  - spec/unit/braintree/transaction/customer_details_spec.rb
322
325
  - spec/unit/braintree/transaction/deposit_details_spec.rb
323
326
  - spec/unit/braintree/transaction/installment_spec.rb
327
+ - spec/unit/braintree/transaction/local_payment_details_spec.rb
328
+ - spec/unit/braintree/transaction/payment_receipt_spec.rb
324
329
  - spec/unit/braintree/transaction/paypal_details_spec.rb
325
330
  - spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb
326
331
  - spec/unit/braintree/transaction_gateway_spec.rb