1.5 - Refactoring for Speed

This commit is contained in:
Adam Wathan
2016-11-02 21:34:06 -04:00
parent 9e973974eb
commit eef25ae099
3 changed files with 34 additions and 11 deletions

View File

@@ -13,4 +13,14 @@ class Concert extends Model
{
return $this->date->format('F j, Y');
}
public function getFormattedStartTimeAttribute()
{
return $this->date->format('g:ia');
}
public function getTicketPriceInDollarsAttribute()
{
return number_format($this->ticket_price / 100, 2);
}
}

View File

@@ -1,8 +1,8 @@
<h1>{{ $concert->title }}</h1>
<h2>{{ $concert->subtitle }}</h2>
<p>{{ $concert->formatted_date }}</p>
<p>Doors at {{ $concert->date->format('g:ia') }}</p>
<p>{{ number_format($concert->ticket_price / 100, 2) }}</p>
<p>Doors at {{ $concert->formatted_start_time }}</p>
<p>{{ $concert->ticket_price_in_dollars }}</p>
<p>{{ $concert->venue }}</p>
<p>{{ $concert->venue_address }}</p>
<p>{{ $concert->city }}, {{ $concert->state }} {{ $concert->zip }}</p>

View File

@@ -6,22 +6,35 @@ use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ConcertTest extends TestCase
class ConcertTest extends TestCase
{
use DatabaseMigrations;
/** @test */
function can_get_formatted_date()
{
// Create a concert with a known date
$concert = factory(Concert::class)->create([
$concert = factory(Concert::class)->make([
'date' => Carbon::parse('2016-12-01 8:00pm'),
]);
// Retrieve the formatted date
$date = $concert->formatted_date;
$this->assertEquals('December 1, 2016', $concert->formatted_date);
}
// Verify the date is formatted as expected
$this->assertEquals('December 1, 2016', $date);
/** @test */
function can_get_formatted_start_time()
{
$concert = factory(Concert::class)->make([
'date' => Carbon::parse('2016-12-01 17:00:00'),
]);
$this->assertEquals('5:00pm', $concert->formatted_start_time);
}
/** @test */
function can_get_ticket_price_in_dollars()
{
$concert = factory(Concert::class)->make([
'ticket_price' => 6750,
]);
$this->assertEquals('67.50', $concert->ticket_price_in_dollars);
}
}