public function testUseDeclarations()
    {
        $snippet = <<<'EOF'
namespace Test {
  use const Other\MY_CONST;
  use function Other\my_func;
  use Other\MyClass;
  use Other\OtherClass as Bind;
  class TestClass {}
}
EOF;
        /** @var NamespaceNode $namespace */
        $namespace = Parser::parseSnippet($snippet);
        $declarations = $namespace->getUseDeclarations();
        $this->assertCount(4, $declarations);
        $aliases = $namespace->getClassAliases();
        $this->assertCount(2, $aliases);
        $this->assertArrayHasKey('MyClass', $aliases);
        $this->assertEquals('\\Other\\MyClass', $aliases['MyClass']);
        $this->assertArrayHasKey('Bind', $aliases);
        $this->assertEquals('\\Other\\OtherClass', $aliases['Bind']);
        $class_node = $namespace->find(Filter::isClass('TestClass'))[0];
        $this->assertTrue($namespace->owns($class_node));
        $class_node = ClassNode::create('Dummy');
        $this->assertFalse($namespace->owns($class_node));
    }
 /**
  * @return \Pharborist\Objects\ClassNode
  */
 public function render()
 {
     if (empty($this->controller)) {
         $render = ['#theme' => 'dmu_form', '#module' => $this->target->id(), '#form_id' => $this->formID, '#class' => $this->toTitleCase($this->formID), '#config' => $this->isConfig];
         $source = \Drupal::service('renderer')->renderPlain($render);
         $this->controller = Parser::parseSource($source)->find(Filter::isClass($render['#class']))->get(0);
     }
     return $this->controller;
 }
 /**
  * {@inheritdoc}
  */
 public function get($identifier)
 {
     $file = $this->getQuery(['file'])->condition('id', $identifier)->execute()->fetchField();
     return $this->target->open($file)->find(Filter::isClass($identifier))->get(0);
 }