123 - Creating Published Concerts

This commit is contained in:
Adam Wathan
2017-07-10 14:31:14 -04:00
parent f327a322c1
commit 85a81dc0ea
3 changed files with 75 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
<?php
namespace Tests\Feature\Backstage;
use App\User;
use App\Concert;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class PublishConcertTest extends TestCase
{
use DatabaseMigrations;
/** @test */
function a_promoter_can_publish_their_own_concert()
{
$user = factory(User::class)->create();
$concert = factory(Concert::class)->states('unpublished')->create([
'user_id' => $user->id,
'ticket_quantity' => 3,
]);
$response = $this->actingAs($user)->post('/backstage/published-concerts', [
'concert_id' => $concert->id,
]);
$response->assertRedirect('/backstage/concerts');
$concert = $concert->fresh();
$this->assertTrue($concert->isPublished());
$this->assertEquals(3, $concert->ticketsRemaining());
}
/** @test */
function a_concert_can_only_be_published_once()
{
$user = factory(User::class)->create();
$concert = \ConcertFactory::createPublished([
'user_id' => $user->id,
'ticket_quantity' => 3,
]);
$response = $this->actingAs($user)->post('/backstage/published-concerts', [
'concert_id' => $concert->id,
]);
$response->assertStatus(422);
$this->assertEquals(3, $concert->fresh()->ticketsRemaining());
}
}