/** * Test if objects are being passed the service locator */ function testServiceLocatorAwareMustBeGivenServiceLocator() { $this->request->setPost(new Parameters(array('extAction' => 'KJSenchaTestAsset.Direct.ServiceAction', 'extMethod' => 'getServiceResult', 'extTID' => 0, 'extModule' => null))); $this->controller->setDebugMode(true); $result = $this->controller->dispatch($this->request); $this->assertEquals('pong!', $result->result); }
/** * @covers \KJSencha\Controller\DirectController::setDebugMode * @covers \KJSencha\Controller\DirectController::isDebugMode */ function testShowErrorResponseWhenDebugModeIsOn() { $this->request->setPost(new Parameters(array('extAction' => 'KJSenchaTestAsset.Direct.ErrorGenerator', 'extMethod' => 'throwException', 'extTID' => 0, 'extModule' => null))); $this->controller->setDebugMode(true); $result = $this->controller->dispatch($this->request); $this->assertEquals('exception', $result->type); $this->assertEquals('Exception!', $result->message); $this->assertNotEmpty($result->where); }
<?php namespace KJSencha; use Zend\ServiceManager\AbstractPluginManager; return array('factories' => array('kjsencha_direct' => function (AbstractPluginManager $pluginManager) { $sl = $pluginManager->getServiceLocator(); $config = $sl->get('Config'); /* @var $manager \KJSencha\Direct\DirectManager */ $manager = $sl->get('kjsencha.direct.manager'); /* @var $apiFactory \KJSencha\Direct\Remoting\Api\Api */ $apiFactory = $sl->get('kjsencha.api'); $controller = new Controller\DirectController($manager, $apiFactory); $controller->setDebugMode($config['kjsencha']['debug_mode']); return $controller; }, 'kjsencha_data' => function (AbstractPluginManager $pluginManager) { $sl = $pluginManager->getServiceLocator(); /* @var $componentManager \KJSencha\Service\ComponentManager */ $componentManager = $sl->get('kjsencha.componentmanager'); return new Controller\DataController($componentManager); }));