mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-02-07 07:50:14 +00:00
56 - Dealing with Lingering State
This commit is contained in:
@@ -7,13 +7,44 @@ use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class StripePaymentGatewayTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->lastCharge = $this->lastCharge();
|
||||
}
|
||||
|
||||
/** @test */
|
||||
function charges_with_a_valid_payment_token_are_successful()
|
||||
{
|
||||
// Create a new StripePaymentGateway
|
||||
$paymentGateway = new StripePaymentGateway(config('services.stripe.secret'));
|
||||
|
||||
$token = \Stripe\Token::create([
|
||||
$paymentGateway->charge(2500, $this->validToken());
|
||||
|
||||
$this->assertCount(1, $this->newCharges());
|
||||
$this->assertEquals(2500, $this->lastCharge()->amount);
|
||||
}
|
||||
|
||||
private function lastCharge()
|
||||
{
|
||||
return array_first(\Stripe\Charge::all(
|
||||
['limit' => 1],
|
||||
['api_key' => config('services.stripe.secret')]
|
||||
)['data']);
|
||||
}
|
||||
|
||||
private function newCharges()
|
||||
{
|
||||
return \Stripe\Charge::all(
|
||||
[
|
||||
'ending_before' => $this->lastCharge ? $this->lastCharge->id : null,
|
||||
],
|
||||
['api_key' => config('services.stripe.secret')]
|
||||
)['data'];
|
||||
}
|
||||
|
||||
private function validToken()
|
||||
{
|
||||
return \Stripe\Token::create([
|
||||
"card" => [
|
||||
"number" => "4242424242424242",
|
||||
"exp_month" => 1,
|
||||
@@ -21,16 +52,5 @@ class StripePaymentGatewayTest extends TestCase
|
||||
"cvc" => "123"
|
||||
]
|
||||
], ['api_key' => config('services.stripe.secret')])->id;
|
||||
|
||||
// Create a new charge for some amount using a valid token
|
||||
$paymentGateway->charge(2500, $token);
|
||||
|
||||
// Verify that the charge was completed successfully
|
||||
$lastCharge = \Stripe\Charge::all(
|
||||
['limit' => 1],
|
||||
['api_key' => config('services.stripe.secret')]
|
||||
)['data'][0];
|
||||
|
||||
$this->assertEquals(2500, $lastCharge->amount);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user