/**
  * @param  ClassInfo $classInfo
  * @param  array     $statements
  * @return Assign
  */
 protected function prepareNode(ClassInfo $classInfo, array $statements)
 {
     return new Assign(new ArrayDimFetch(new Variable('app'), new String_($classInfo->getServiceId())), new MethodCall(new Variable('app'), 'share', array(new Arg(new Closure(array('uses' => array(new ClosureUse('app')), 'stmts' => $statements))))));
 }
 /**
  * @param  ClassInfo  $classInfo
  * @return MethodCall
  */
 protected function prepareControllersMountNode(ClassInfo $classInfo)
 {
     $mount = '';
     $route = $classInfo->getFirstAnnotationInstanceof('Saxulum\\RouteController\\Annotation\\Route');
     if (!is_null($route)) {
         $mount = $route->value;
     }
     return new MethodCall(new Variable('app'), 'mount', array(new Arg($this->prepareScalarArg($mount)), new Arg(new Variable('controllers'))));
 }
 /**
  * @param ClassInfo $classInfo
  */
 protected function checkTestClass3(ClassInfo $classInfo)
 {
     $this->assertEquals('Saxulum\\Tests\\AnnotationManager\\Classes2\\TestClass3', $classInfo->getName());
 }