Example #1
0
 /**
  * @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 ');
}));