88 - Claiming Tickets When Creating Orders

This commit is contained in:
Adam Wathan
2017-03-31 16:35:42 -04:00
parent e1867deb43
commit 1a5ffa8701
2 changed files with 7 additions and 3 deletions

View File

@@ -18,7 +18,7 @@ class Order extends Model
'card_last_four' => $charge->cardLastFour(),
]);
$order->tickets()->saveMany($tickets);
$tickets->each->claimFor($order);
return $order;
}

View File

@@ -17,15 +17,19 @@ class OrderTest extends TestCase
/** @test */
function creating_an_order_from_tickets_email_and_charge()
{
$tickets = factory(Ticket::class, 3)->create();
$charge = new Charge(['amount' => 3600, 'card_last_four' => '1234']);
$tickets = collect([
Mockery::spy(Ticket::class),
Mockery::spy(Ticket::class),
Mockery::spy(Ticket::class),
]);
$order = Order::forTickets($tickets, 'john@example.com', $charge);
$this->assertEquals('john@example.com', $order->email);
$this->assertEquals(3, $order->ticketQuantity());
$this->assertEquals(3600, $order->amount);
$this->assertEquals('1234', $order->card_last_four);
$tickets->each->shouldHaveReceived('claimFor', [$order]);
}
/** @test */