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)); }