public function testSubmitForSettlement_withAmexRewardsSucceedsEvenIfCardBalanceIsInsufficient() { $result = Braintree\Transaction::sale(['amount' => '47.00', 'merchantAccountId' => Test\Helper::fakeAmexDirectMerchantAccountId(), 'creditCard' => ['cardholderName' => 'The Cardholder', 'number' => Braintree\Test\CreditCardNumbers::$amexPayWithPoints['InsufficientPoints'], 'expirationDate' => '05/12'], 'options' => ['amexRewards' => ['requestId' => 'ABC123', 'points' => '100', 'currencyAmount' => '1.00', 'currencyIsoCode' => 'USD']]]); $this->assertTrue($result->success); $transaction = $result->transaction; $this->assertEquals(Braintree\Transaction::AUTHORIZED, $transaction->status); $this->assertEquals(Braintree\Transaction::SALE, $transaction->type); $submitResult = Braintree\Transaction::submitForSettlement($transaction->id, '47.00'); $submitTransaction = $submitResult->transaction; $this->assertEquals(Braintree\Transaction::SUBMITTED_FOR_SETTLEMENT, $submitTransaction->status); }