2.4 - Faking the Payment Gateway

This commit is contained in:
Adam Wathan
2016-11-08 13:14:52 -05:00
parent 94480e7eac
commit 46640c5096
7 changed files with 95 additions and 0 deletions

View File

@@ -1,14 +1,22 @@
<?php
use App\Concert;
use App\Billing\PaymentGateway;
use App\Billing\FakePaymentGateway;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class PurchaseTicketsTest extends TestCase
{
use DatabaseMigrations;
/** @test */
function customer_can_purchase_concert_tickets()
{
$paymentGateway = new FakePaymentGateway;
$this->app->instance(PaymentGateway::class, $paymentGateway);
// Arrange
// Create a concert
$concert = factory(Concert::class)->create(['ticket_price' => 3250]);
@@ -22,6 +30,8 @@ class PurchaseTicketsTest extends TestCase
]);
// Assert
$this->assertResponseStatus(201);
// Make sure the customer was charged the correct amount
$this->assertEquals(9750, $paymentGateway->totalCharges());