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(), 'card_last_four' => $charge->cardLastFour(),
]); ]);
$order->tickets()->saveMany($tickets); $tickets->each->claimFor($order);
return $order; return $order;
} }

View File

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