private function createInterface($name) { $n = new \PHPParser_Node_Name_FullyQualified(explode("\\", $name)); $interface = new \Scrutinizer\PhpAnalyzer\Model\InterfaceC($name); $interface->setNormalized(true); $this->registry->registerClass($interface); $n->setAttribute('type', $interface); return $n; }
public function testIsSubtypeWithNamedTypes() { $bar = new \Scrutinizer\PhpAnalyzer\Model\InterfaceC('Bar'); $bar->setNormalized(true); $foo = new Clazz('Foo'); $foo->setNormalized(true); $this->assertFalse($foo->isSubtypeOf($bar)); $foo->addImplementedInterface('Bar'); $namedBar = NamedType::createResolved($this->registry, $bar); $this->assertTrue($foo->isSubTypeOf($namedBar)); $this->assertTrue($foo->isSubTypeOf($bar)); $namedFoo = NamedType::createResolved($this->registry, $foo); $this->assertTrue($namedFoo->isSubtypeOf($namedBar)); $this->assertTrue($namedFoo->isSubtypeOf($bar)); $unresolvedNamedBar = new NamedType($this->registry, 'Bar'); $this->assertTrue($foo->isSubtypeOf($unresolvedNamedBar)); $this->assertTrue($namedFoo->isSubtypeOf($unresolvedNamedBar)); $baz = new InterfaceC('Baz'); $baz->setNormalized(true); $this->assertFalse($baz->isSubtypeOf($bar)); $this->assertFalse($baz->isSubtypeOf($namedBar)); $this->assertFalse($baz->isSubtypeOf($unresolvedNamedBar)); $baz->addExtendedInterface('Bar'); $this->assertTrue($baz->isSubtypeOf($bar)); $this->assertTrue($baz->isSubtypeOf($namedBar)); $this->assertTrue($baz->isSubtypeOf($unresolvedNamedBar)); }