130 - Creating a Custom OrderFactory

This commit is contained in:
Adam Wathan
2017-08-16 13:45:53 -04:00
parent 05bde91aa4
commit 8893f5b03a
2 changed files with 19 additions and 0 deletions

15
database/OrderFactory.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
use App\Order;
use App\Ticket;
class OrderFactory
{
public static function createForConcert($concert, $overrides = [], $ticketQuantity = 1)
{
$order = factory(Order::class)->create($overrides);
$tickets = factory(Ticket::class, $ticketQuantity)->create(['concert_id' => $concert->id]);
$order->tickets()->saveMany($tickets);
return $order;
}
}

View File

@@ -3,6 +3,8 @@
namespace Tests\Features\Backstage;
use App\User;
use OrderFactory;
use Carbon\Carbon;
use ConcertFactory;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
@@ -20,6 +22,8 @@ class ViewPublishedConcertOrdersTest extends TestCase
$user = factory(User::class)->create();
$concert = ConcertFactory::createPublished(['user_id' => $user->id]);
$order = OrderFactory::createForConcert($concert, ['created_at' => Carbon::parse('11 days ago')]);
$response = $this->actingAs($user)->get("/backstage/published-concerts/{$concert->id}/orders");
$response->assertStatus(200);