diff --git a/app/Order.php b/app/Order.php index 78da2e4..acb3fdf 100644 --- a/app/Order.php +++ b/app/Order.php @@ -16,7 +16,7 @@ class Order extends Model public function cancel() { foreach ($this->tickets as $ticket) { - $ticket->update(['order_id' => null]); + $ticket->release(); } $this->delete(); diff --git a/app/Ticket.php b/app/Ticket.php index 94a8608..dafd0ff 100644 --- a/app/Ticket.php +++ b/app/Ticket.php @@ -12,4 +12,9 @@ class Ticket extends Model { return $query->whereNull('order_id'); } + + public function release() + { + $this->update(['order_id' => null]); + } } diff --git a/tests/unit/TicketTest.php b/tests/unit/TicketTest.php new file mode 100644 index 0000000..685de82 --- /dev/null +++ b/tests/unit/TicketTest.php @@ -0,0 +1,25 @@ +create(); + $concert->addTickets(1); + $order = $concert->orderTickets('jane@example.com', 1); + $ticket = $order->tickets()->first(); + $this->assertEquals($order->id, $ticket->order_id); + + $ticket->release(); + + $this->assertNull($ticket->fresh()->order_id); + } +}