From 764c4b7d67542ef65f5bd49cbdde10aead8a1e87 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Wed, 1 Nov 2017 19:57:41 +0000 Subject: [PATCH] Also test which events are returned --- .../Twig/FormatTalksTest.php | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/tests/FormatTalksBundle/Twig/FormatTalksTest.php b/tests/FormatTalksBundle/Twig/FormatTalksTest.php index a8bb5919..d1c02763 100644 --- a/tests/FormatTalksBundle/Twig/FormatTalksTest.php +++ b/tests/FormatTalksBundle/Twig/FormatTalksTest.php @@ -29,20 +29,23 @@ class FormatTalksTest extends PHPUnit_Framework_TestCase $eventA = ['date' => (new DateTime('+1 week'))->format('Y-m-d')]; $eventB = ['date' => (new DateTime('-2 weeks'))->format('Y-m-d')]; $eventC = ['date' => (new DateTime('today'))->format('Y-m-d')]; - $eventD = ['date' => (new DateTime('+1 day'))->format('Y-m-d')]; - $eventE = ['date' => (new DateTime('+2 weeks'))->format('Y-m-d')]; $data = [ 'events' => [], 'talks' => [ - ['events' => [$eventA, $eventB, $eventE]], + ['events' => [$eventA, $eventB]], ['events' => [$eventC]], ], ]; $results = $this->extension->getAll($data); - $this->assertCount(4, $results); + $this->assertCount(3, $results); + + $this->assertEquals( + [$eventA['date'], $eventC['date'], $eventB['date']], + $this->extractDates($results) + ); } /** @@ -60,13 +63,18 @@ class FormatTalksTest extends PHPUnit_Framework_TestCase 'events' => [], 'talks' => [ ['events' => [$eventA, $eventC]], - ['events' => [$eventB, $eventE]] + ['events' => [$eventB, $eventE]], ], ]; $results = $this->extension->getUpcoming($data); $this->assertCount(3, $results); + + $this->assertEquals( + [$eventE['date'], $eventA['date'], $eventC['date']], + $this->extractDates($results) + ); } /** @@ -78,18 +86,37 @@ class FormatTalksTest extends PHPUnit_Framework_TestCase $eventB = ['date' => (new DateTime('-2 weeks'))->format('Y-m-d')]; $eventC = ['date' => (new DateTime('today'))->format('Y-m-d')]; $eventD = ['date' => (new DateTime('+1 day'))->format('Y-m-d')]; - $eventE = ['date' => (new DateTime('+2 weeks'))->format('Y-m-d')]; + $eventE = ['date' => (new DateTime('-2 days'))->format('Y-m-d')]; + $eventF = ['date' => (new DateTime('-2 months'))->format('Y-m-d')]; $data = [ 'events' => [], 'talks' => [ - ['events' => [$eventA, $eventD]], - ['events' => [$eventA, $eventB, $eventC, $eventE]], + ['events' => [$eventD]], + ['events' => [$eventA, $eventB, $eventC]], + ['events' => [$eventF]], ], ]; $results = $this->extension->getPast($data); - $this->assertCount(1, $results); + $this->assertCount(2, $results); + + $this->assertEquals( + [$eventB['date'], $eventF['date']], + $this->extractDates($results) + ); + } + + /** + * Extract the returned dates from the results. + * + * @param array $results The results returned from the filter. + * + * @return array An array of dates. + */ + private function extractDates(array $results) + { + return collect($results)->pluck('event.date')->all(); } }