/** * @test */ public function parseAnAbstractAndLoadWithOriginalClass() { $fooClass = Stagehand_PHP_Class_Parser::parse($this->_basic); $fooClass->setName('Stagehand_PHP_Class_Parser_AbstractTest_FooDummyTwo'); $property = $fooClass->getProperty('baz'); $property->setValue('Qux'); $barClass = Stagehand_PHP_Class_Parser::parse($this->_extended); $barClass->setName('Stagehand_PHP_Class_Parser_AbstractTest_BarDummyTwo'); $barClass->setParentClass($fooClass); $method = $barClass->getMethod('abstractPublicMethod'); $method->setCode('return 10;'); $barClass->load(); $dummy = new Stagehand_PHP_Class_Parser_AbstractTest_BarDummyTwo(); $this->assertEquals($dummy->abstractPublicMethod(), 10); $this->assertEquals($dummy->baz, 'Qux'); }
/** * @test */ public function parseSomeClassesWithPreAndPostCodeOfClassDeclaration() { $classes = Stagehand_PHP_Class_Parser::parse(dirname(__FILE__) . '/ClassTest/HasOtherCodesTwo.php'); $this->assertEquals(count($classes), 3); $foo = $classes[0]; $bar = $classes[1]; $baz = $classes[2]; $this->assertType('Stagehand_PHP_Class', $foo); $this->assertEquals($foo->getName(), 'Stagehand_PHP_Class_Parser_ClassTest_HasOtherCodesTwo_Foo'); $this->assertEquals($foo->getPreCode(), '$a = 10;'); $this->assertEquals($foo->getPostCode(), ' $b = 20;'); $this->assertType('Stagehand_PHP_Class', $bar); $this->assertEquals($bar->getName(), 'Stagehand_PHP_Class_Parser_ClassTest_HasOtherCodesTwo_Bar'); $this->assertEquals($bar->getPreCode(), ' $b = 20;'); $this->assertEquals($bar->getPostCode(), ' $c = 30;'); $this->assertType('Stagehand_PHP_Class', $baz); $this->assertEquals($baz->getName(), 'Stagehand_PHP_Class_Parser_ClassTest_HasOtherCodesTwo_Baz'); $this->assertEquals($baz->getPreCode(), ' $c = 30;'); $this->assertEquals($baz->getPostCode(), ' $d = 40;'); }
/** * @test */ public function parseAnInterfaceWithSetInterfaces() { $class = Stagehand_PHP_Class_Parser::parse(dirname(__FILE__) . '/InterfaceTest/HasOneInterface.php'); $this->assertType('Stagehand_PHP_Class', $class); $this->assertEquals($class->getName(), 'Stagehand_PHP_Class_Parser_InterfaceTest_HasOneInterface'); $this->assertTrue($class->isInterface()); $interfaces = $class->getInterfaces(); $this->assertEquals(count($interfaces), 1); $this->assertEquals($interfaces['Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceOne'], 'Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceOne'); $class = Stagehand_PHP_Class_Parser::parse(dirname(__FILE__) . '/InterfaceTest/HasThreeInterfaces.php'); $this->assertType('Stagehand_PHP_Class', $class); $this->assertEquals($class->getName(), 'Stagehand_PHP_Class_Parser_InterfaceTest_HasThreeInterface'); $interfaces = $class->getInterfaces(); $this->assertEquals(count($interfaces), 3); $this->assertEquals($interfaces['Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceOne'], 'Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceOne'); $this->assertEquals($interfaces['Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceTwo'], 'Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceTwo'); $this->assertEquals($interfaces['Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceThree'], 'Stagehand_PHP_Class_Parser_InterfaceTest_InterfaceThree'); }
/** * @test */ public function parseFromFile() { $class = Stagehand_PHP_Class_Parser::parse(__FILE__); $this->assertType('Stagehand_PHP_Class', $class); $this->assertEquals($class->getName(), __CLASS__); }