From b80b68b665d1c2208c5b53cf7e5e87a5cf1f052a Mon Sep 17 00:00:00 2001 From: henderjon Date: Fri, 12 Dec 2014 14:06:22 -0600 Subject: [PATCH] adds coverage --- .../Controllers/FrontControllerTest.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/PHPUnit/Controllers/FrontControllerTest.php b/tests/PHPUnit/Controllers/FrontControllerTest.php index 515f75a..87ee28f 100644 --- a/tests/PHPUnit/Controllers/FrontControllerTest.php +++ b/tests/PHPUnit/Controllers/FrontControllerTest.php @@ -28,6 +28,20 @@ function index($method, $args = []){ } } +class MockNoMethodController extends \Chevron\Kernel\Dispatcher\AbstractDispatchableController { + function init(){} /* noop */ +} + +class TestLog extends \Psr\Log\AbstractLogger { + protected $container; + function log($level, $message, array $context = []){ + $this->container = "{$level}|{$message}|" . count($context); + } + function getLog(){ + return $this->container; + } +} + class FrontControllerTest extends PHPUnit_Framework_TestCase { function getDiMock(){ @@ -166,4 +180,31 @@ function test_Exception(){ } + function test_AbstractDispatchableController_logging(){ + + $di = $this->getDiMock(); + $dispatcher = $this->getDispatcherMock(); + $router = $this->getRouterMock(); + $route = $this->getRouteMock(); + + $mock = new MockNoMethodController($di, $route); + $logger = new TestLog; + $mock->setLogger($logger); + + $dispatcher->method('dispatch') + ->willReturn($mock); + + $app = new Chevron\Kernel\Controllers\FrontController($di, $dispatcher, $router); + $app->setIndexController("MockIndexController"); + $app->setErrorController("MockErrorController"); + + try{ + $result = $app("/bar.html"); + }catch(\Exception $e){ + $expected = "error|Chevron\\Kernel\\Dispatcher\\ActionNotFoundException|10"; + $this->assertEquals($expected, $logger->getLog()); + } + + } + } \ No newline at end of file