/** * @covers \KJSencha\Frontend\Bootstrap::__construct * @covers \KJSencha\Frontend\Bootstrap::getVariables * @covers \KJSencha\Frontend\Bootstrap::addVariables */ public function testAddVariablesMergesVariables() { $bootstrap = new Bootstrap(array('variables' => array('main' => array('value0', 'value1', 'key3' => 'value3', 'key4' => 'value4')))); $variables = $bootstrap->getVariables(); $this->assertArrayHasKey(0, $variables['main']); $this->assertSame('value0', $variables['main'][0]); $this->assertArrayHasKey('key3', $variables['main']); $this->assertSame('value3', $variables['main']['key3']); $bootstrap->addVariables(array('main' => array('added2', 'key4' => 'replaced4', 'key5' => 'value5'), 'other' => 'test')); $variables = $bootstrap->getVariables(); $this->assertArrayHasKey(0, $variables['main']); $this->assertSame('value0', $variables['main'][0]); $this->assertArrayHasKey('key3', $variables['main']); $this->assertSame('value3', $variables['main']['key3']); $this->assertArrayHasKey(2, $variables['main']); $this->assertSame('added2', $variables['main'][2]); $this->assertArrayHasKey('key4', $variables['main']); $this->assertSame('replaced4', $variables['main']['key4']); $this->assertArrayHasKey('key5', $variables['main']); $this->assertSame('value5', $variables['main']['key5']); }
$doctrineParser->registerAnnotation('KJSencha\\Annotation\\Interval'); $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Formhandler'); $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Group'); $annotationManager = new AnnotationManager(); $annotationManager->attach($doctrineParser); return $annotationManager; }, 'kjsencha.apibuilder' => function (ServiceLocatorInterface $sl) { /* @var $annotationManager AnnotationManager */ $annotationManager = $sl->get('kjsencha.annotationmanager'); /* @var $directManager DirectManager */ $directManager = $sl->get('kjsencha.direct.manager'); return new ApiBuilder($annotationManager, $directManager); }, 'kjsencha.cache' => function (ServiceLocatorInterface $sl) { $config = $sl->get('Config'); $storage = StorageFactory::factory($config['kjsencha']['cache']); return $storage; }, 'kjsencha.bootstrap' => function (ServiceLocatorInterface $sl) { $config = $sl->get('Config'); $bootstrap = new Bootstrap($config['kjsencha']['bootstrap']['default']); $bootstrap->addVariables(array('App' => array('basePath' => $sl->get('Request')->getBasePath()))); /* @var $directApi \KJSencha\Direct\Remoting\Api\Api */ $directApi = $sl->get('kjsencha.api'); $bootstrap->setDirectApi($directApi); return $bootstrap; }, 'kjsencha.direct.manager' => function (ServiceManager $sm) { $directManager = new DirectManager(); $directManager->addPeeringServiceManager($sm); return $directManager; }, 'kjsencha.echo' => function () { return new TestEchoService('Hello '); }));