From e4c004d3adf25449ea49087b2603a8e3f47375d9 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Mon, 6 Nov 2017 21:52:14 +0000 Subject: [PATCH 1/2] Add tap function --- composer.json | 3 ++- src/helpers.php | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/helpers.php diff --git a/composer.json b/composer.json index ffd587896..761c5cb15 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,8 @@ "autoload": { "psr-4": { "FormatTalksBundle\\": "src/FormatTalksBundle" - } + }, + "files": ["src/helpers.php"] }, "extra": { "merge-plugin": { diff --git a/src/helpers.php b/src/helpers.php new file mode 100644 index 000000000..c70dd091f --- /dev/null +++ b/src/helpers.php @@ -0,0 +1,7 @@ + Date: Tue, 7 Nov 2017 08:18:16 +0000 Subject: [PATCH 2/2] Add format method test --- .../Twig/FormatTalksTest.php | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/tests/FormatTalksBundle/Twig/FormatTalksTest.php b/tests/FormatTalksBundle/Twig/FormatTalksTest.php index 37aa1d8df..4896e4337 100644 --- a/tests/FormatTalksBundle/Twig/FormatTalksTest.php +++ b/tests/FormatTalksBundle/Twig/FormatTalksTest.php @@ -21,6 +21,63 @@ class FormatTalksTest extends PHPUnit_Framework_TestCase $this->extension = new FormatTalksExtension(); } + public function testFormat() + { + $data = [ + 'event_data' => [ + 'event-one' => [ + 'name' => 'Event One', + 'location' => 'Somewhere', + 'website' => 'http://event-one.com', + ], + 'event-two' => [ + 'name' => 'Event Two', + 'location' => 'Somewhere else', + 'website' => 'http://event-two.com', + ], + ], + 'talks' => [ + [ + 'title' => 'A talk', + 'events' => [ + ['event' => 'event-one', 'date' => '2018-01-01', 'time' => '09:00'], + ['event' => 'event-two', 'date' => '2018-01-30', 'time' => '12:00'], + ], + ], + ], + ]; + + $results = $this->extension->format($data)->all(); + + tap($results[0], function ($result) { + $this->assertArrayHasKey('event', $result); + $this->assertArrayHasKey('talk', $result); + + $this->assertEquals([ + 'date' => '2018-01-01', + 'event' => 'event-one', + 'location' => 'Somewhere', + 'name' => 'Event One', + 'time' => '09:00', + 'website' => 'http://event-one.com', + ], $result['event']); + }); + + tap($results[1], function ($result) { + $this->assertArrayHasKey('event', $result); + $this->assertArrayHasKey('talk', $result); + + $this->assertEquals([ + 'date' => '2018-01-30', + 'event' => 'event-two', + 'location' => 'Somewhere else', + 'name' => 'Event Two', + 'time' => '12:00', + 'website' => 'http://event-two.com', + ], $result['event']); + }); + } + /** * Test getting all events. */