From d0d4b5907a082381d9f0e6be617ea10a716d4173 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Wed, 19 Jul 2017 15:01:57 -0400 Subject: [PATCH] 128 - Making the Progress Bar Work --- app/Concert.php | 10 ++++++++++ .../published-concert-orders/index.blade.php | 4 ++-- tests/Unit/ConcertTest.php | 20 +++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/app/Concert.php b/app/Concert.php index 8dac06b..d1ddb66 100644 --- a/app/Concert.php +++ b/app/Concert.php @@ -104,4 +104,14 @@ class Concert extends Model { return $this->tickets()->sold()->count(); } + + public function totalTickets() + { + return $this->tickets()->count(); + } + + public function percentSoldOut() + { + return number_format(($this->ticketsSold() / $this->totalTickets()) * 100, 2); + } } diff --git a/resources/views/backstage/published-concert-orders/index.blade.php b/resources/views/backstage/published-concert-orders/index.blade.php index 01b2bcf..afafc82 100644 --- a/resources/views/backstage/published-concert-orders/index.blade.php +++ b/resources/views/backstage/published-concert-orders/index.blade.php @@ -25,8 +25,8 @@

Overview

-

This show is 60% sold out.

- 60% +

This show is {{ $concert->percentSoldOut() }}% sold out.

+ {{ $concert->percentSoldOut() }}%
diff --git a/tests/Unit/ConcertTest.php b/tests/Unit/ConcertTest.php index cf2d2b6..a9d62e6 100644 --- a/tests/Unit/ConcertTest.php +++ b/tests/Unit/ConcertTest.php @@ -93,6 +93,26 @@ class ConcertTest extends TestCase $this->assertEquals(3, $concert->ticketsSold()); } + + /** @test */ + function total_tickets_includes_all_tickets() + { + $concert = factory(Concert::class)->create(); + $concert->tickets()->saveMany(factory(Ticket::class, 3)->create(['order_id' => 1])); + $concert->tickets()->saveMany(factory(Ticket::class, 2)->create(['order_id' => null])); + + $this->assertEquals(5, $concert->totalTickets()); + } + + /** @test */ + function calculating_the_percentage_of_tickets_sold() + { + $concert = factory(Concert::class)->create(); + $concert->tickets()->saveMany(factory(Ticket::class, 2)->create(['order_id' => 1])); + $concert->tickets()->saveMany(factory(Ticket::class, 5)->create(['order_id' => null])); + + // $this->assertEquals(0.285714286, $concert->percentSoldOut(), '', 0.00001); + $this->assertEquals(28.57, $concert->percentSoldOut()); } /** @test */