diff --git a/app/Order.php b/app/Order.php index 938761e..f866029 100644 --- a/app/Order.php +++ b/app/Order.php @@ -18,7 +18,7 @@ class Order extends Model 'card_last_four' => $charge->cardLastFour(), ]); - $order->tickets()->saveMany($tickets); + $tickets->each->claimFor($order); return $order; } diff --git a/tests/unit/OrderTest.php b/tests/unit/OrderTest.php index f0f1579..c2fa129 100644 --- a/tests/unit/OrderTest.php +++ b/tests/unit/OrderTest.php @@ -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 */