mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-02-13 04:52:43 +00:00
48 - Cleaning up a Loose Variable
This commit is contained in:
@@ -58,9 +58,11 @@ class Concert extends Model
|
|||||||
|
|
||||||
public function reserveTickets($quantity)
|
public function reserveTickets($quantity)
|
||||||
{
|
{
|
||||||
return $this->findTickets($quantity)->each(function ($ticket) {
|
$tickets = $this->findTickets($quantity)->each(function ($ticket) {
|
||||||
$ticket->reserve();
|
$ticket->reserve();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return new Reservation($tickets);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findTickets($quantity)
|
public function findTickets($quantity)
|
||||||
|
|||||||
@@ -31,14 +31,13 @@ class ConcertOrdersController extends Controller
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// Find some tickets
|
// Find some tickets
|
||||||
$tickets = $concert->reserveTickets(request('ticket_quantity'));
|
$reservation = $concert->reserveTickets(request('ticket_quantity'));
|
||||||
$reservation = new Reservation($tickets);
|
|
||||||
|
|
||||||
// Charge the customer for the tickets
|
// Charge the customer for the tickets
|
||||||
$this->paymentGateway->charge($reservation->totalCost(), request('payment_token'));
|
$this->paymentGateway->charge($reservation->totalCost(), request('payment_token'));
|
||||||
|
|
||||||
// Create an order for those tickets
|
// Create an order for those tickets
|
||||||
$order = Order::forTickets($tickets, request('email'), $reservation->totalCost());
|
$order = Order::forTickets($reservation->tickets(), request('email'), $reservation->totalCost());
|
||||||
|
|
||||||
return response()->json($order, 201);
|
return response()->json($order, 201);
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ class Reservation
|
|||||||
return $this->tickets->sum('price');
|
return $this->tickets->sum('price');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tickets()
|
||||||
|
{
|
||||||
|
return $this->tickets;
|
||||||
|
}
|
||||||
|
|
||||||
public function cancel()
|
public function cancel()
|
||||||
{
|
{
|
||||||
foreach ($this->tickets as $ticket) {
|
foreach ($this->tickets as $ticket) {
|
||||||
|
|||||||
@@ -124,9 +124,9 @@ class ConcertTest extends TestCase
|
|||||||
$concert = factory(Concert::class)->create()->addTickets(3);
|
$concert = factory(Concert::class)->create()->addTickets(3);
|
||||||
$this->assertEquals(3, $concert->ticketsRemaining());
|
$this->assertEquals(3, $concert->ticketsRemaining());
|
||||||
|
|
||||||
$reservedTickets = $concert->reserveTickets(2);
|
$reservation = $concert->reserveTickets(2);
|
||||||
|
|
||||||
$this->assertCount(2, $reservedTickets);
|
$this->assertCount(2, $reservation->tickets());
|
||||||
$this->assertEquals(1, $concert->ticketsRemaining());
|
$this->assertEquals(1, $concert->ticketsRemaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,20 @@ class ReservationTest extends TestCase
|
|||||||
$this->assertEquals(3600, $reservation->totalCost());
|
$this->assertEquals(3600, $reservation->totalCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function retrieving_the_reservations_tickets()
|
||||||
|
{
|
||||||
|
$tickets = collect([
|
||||||
|
(object) ['price' => 1200],
|
||||||
|
(object) ['price' => 1200],
|
||||||
|
(object) ['price' => 1200],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$reservation = new Reservation($tickets);
|
||||||
|
|
||||||
|
$this->assertEquals($tickets, $reservation->tickets());
|
||||||
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
function reserved_tickets_are_released_when_a_reservation_is_cancelled()
|
function reserved_tickets_are_released_when_a_reservation_is_cancelled()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user