120 - Creating Tickets at Time of Publish

This commit is contained in:
Adam Wathan
2017-07-04 11:02:04 -04:00
parent 7bd3702db3
commit a59e0e21a2
4 changed files with 10 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ class Concert extends Model
public function publish()
{
$this->update(['published_at' => $this->freshTimestamp()]);
$this->addTickets($this->ticket_quantity);
}
public function getFormattedDateAttribute()

View File

@@ -49,7 +49,8 @@ class ConcertsController extends Controller
'state' => request('state'),
'zip' => request('zip'),
'ticket_price' => request('ticket_price') * 100,
])->addTickets(request('ticket_quantity'));
'ticket_quantity' => (int) request('ticket_quantity'),
]);
$concert->publish();

View File

@@ -89,6 +89,7 @@ class AddConcertTest extends TestCase
$this->assertEquals('ON', $concert->state);
$this->assertEquals('12345', $concert->zip);
$this->assertEquals(3250, $concert->ticket_price);
$this->assertEquals(75, $concert->ticket_quantity);
$this->assertEquals(75, $concert->ticketsRemaining());
});
}

View File

@@ -61,12 +61,17 @@ class ConcertTest extends TestCase
/** @test */
function concerts_can_be_published()
{
$concert = factory(Concert::class)->create(['published_at' => null]);
$concert = factory(Concert::class)->create([
'published_at' => null,
'ticket_quantity' => 5,
]);
$this->assertFalse($concert->isPublished());
$this->assertEquals(0, $concert->ticketsRemaining());
$concert->publish();
$this->assertTrue($concert->isPublished());
$this->assertEquals(5, $concert->ticketsRemaining());
}
/** @test */