public function testInterfacesMethods() { $interfaces = array('interface1', 'interface2', 'interface3'); $this->class->setInterfaces($interfaces); $this->assertEquals($interfaces, $this->class->getInterfaces(), 'Get interface should return previously set interfaces'); $this->class->addInterface('interface4'); $this->assertEquals(array_merge($interfaces, array('interface4')), $this->class->getInterfaces()); $this->class->removeInterface('interface2'); $this->assertEquals(array('interface1', 'interface3', 'interface4'), array_values($this->class->getInterfaces())); }
/** * @param \ReflectionClass $class * @return MetaClass */ public function metaClass(\ReflectionClass $class) { $phpyClass = new MetaClass($class->getName()); $phpyClass->setAbstract($class->isAbstract()); if ($parent = $class->getParentClass()) { $phpyClass->setParent($this->metaClass($parent)); } $phpyClass->setInterfaces($class->getInterfaceNames()); foreach ($class->getProperties() as $refProperty) { $phpyClass->addProperty($this->property($refProperty)); } foreach ($class->getMethods() as $refMethod) { $phpyClass->addMethod($this->method($refMethod)); } return $phpyClass; }