52 - Avoiding Service Classes with Method Injection

This commit is contained in:
Adam Wathan
2016-12-16 08:31:01 -05:00
parent cf2444da45
commit 990f873e0c
4 changed files with 8 additions and 36 deletions

View File

@@ -3,6 +3,7 @@
use App\Ticket;
use App\Concert;
use App\Reservation;
use App\Billing\FakePaymentGateway;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
@@ -71,11 +72,13 @@ class ReservationTest extends TestCase
$concert = factory(Concert::class)->create(['ticket_price' => 1200]);
$tickets = factory(Ticket::class, 3)->create(['concert_id' => $concert->id]);
$reservation = new Reservation($tickets, 'john@example.com');
$paymentGateway = new FakePaymentGateway;
$order = $reservation->complete();
$order = $reservation->complete($paymentGateway, $paymentGateway->getValidTestToken());
$this->assertEquals('john@example.com', $order->email);
$this->assertEquals(3, $order->ticketQuantity());
$this->assertEquals(3600, $order->amount);
$this->assertEquals(3600, $paymentGateway->totalCharges());
}
}