- Allow configuring API server port (#73)
- Require Capybara 2.2.0+ so we can configure the API server port
FakeBraintreeno longer auto-starts when it is required. You must explicitly callFakeBraintree.activate!- Allow associating a credit card with a subcription when calling
Braintree::Subscription.create(#80) - Update addons/discounts when calling
Braintree::Subscription.cancel(#84) - Support
Braintree::CreditCard.delete
- Add support for Merchant Account API.
- Update client to 2.9.0 and drop-in to 1.7.0
- Remove support for 1.9.2, which is EOL'd.
fake_braintreenow requires Ruby 1.9.3+. - Use WEBrick as the Capybara server handler in all cases. Previously we used Thin and fell back to Puma, which caused problems like issue #54.
- Customers and Subscriptions that were stored with a custom (non-integer) ID can be retrieved (#67)
- Braintree::Subscription has associated dates thanks to @1st8 (#66):
next_billing_dateis 1 month from billing period start datebilling_day_of_monthis the next billing date's mday, but is true to Braintree's exceptional handling of the 31st day of the monthbilling_period_start_dateis either the provided start date or todaybilling_period_end_dateis the day before the next billing date
- Save discounts amount when adding them to a Subscription (#72)
- Remove unused
i18ngem dependency (#56). - Set
credit_card.card_type,credit_card.last_4, andcredit_card.unique_number_identifier. Ensurecredit_card.binis always set (#47). - Support new Braintree credit card API URLs
- Requires Braintree ~> 2.32 instead of Braintree ~> 2.5.
- Add missing quote.
- Add support for Puma server for JRuby support (#59).
fake_braintreewill try to use Thin first and then Puma.
- Add support for
Braintree::Subscription.retry_charge
- Add support for
Braintree::Address.create - Add support for creating a card with an existing billing address (#45)
- Transactions have a type of "sale" (#46)
- Require at least Ruby 1.9.2
-
Braintree::Transaction.void updates the existing sale transaction instead of creating a new transaction of type Braintree::Transaction::Status::Voided
-
Preserve
redirect_urlquery parameters for transparent redirect (#36) -
Transactions can be submitted for settlement by passing an options hash to Braintree::Transaction.create as shown in the Braintree documentation (#31)
-
When a customer is created with a credit card (
Braintree::Customer.create(:credit_card => ...), that credit card is set as the customer's default card.
- Fake refunds via
Braintree::Transaction.refundandBraintree::CreditCard.refund. - Create credit cards via
Braintree::CreditCard.create(:token => token, :number => TEST_CC_NUMBER) - Depend on Thin instead of Mongrel (fixes NotImplementedError).
- Generated transactions (from
FakeBraintree.generate_transaction) now include the amount. Braintree::Customer.updatewill reject updates that contain credit cards that have been marked as a failure in the registry.
Braintree::CreditCard.updatenow works
FakeBraintree.{customers, transactions, failures, subscriptions, redirects}are now accessed viaFakeBraintree.registry. For example,FakeBraintree.customersis nowFakeBraintree.registry.customersFakeBraintree.credit_card_from_tokenis nowFakeBraintree.registry.credit_card_from_token- The server code (it intercepts calls to Braintree) now lives in FakeBraintree::Server
Braintree::Customer.createwill use the provided customer ID instead of overwriting it (#15).Braintree::Subscription.cancelnow works
- Flesh out the README
- Add support for transparent redirect
- Add basic support for adding add-ons
- Add basic support for adding discounts
- Add support for
Braintree::Customer.update - Add support for
Braintree::Customer.delete - Add support for
Braintree::Subscription.delete - Lots of internal refactorings
- Add support for
Braintree::Customer.find
- Allow for very basic card verification
- Ensure
FakeBraintree.log_file_pathdirectory exists - The
FakeBraintree.log_file_pathattribute can now be read (it could only be set before) - Clear log when
FakeBraintree.clear!is called - Correctly handle nonexistent subscriptions when using
Braintree::Subscription.find