/** * Test correct extraction extends class name. * * @param string $definition * @param string $correctClassName * @param int $correctMode * * @dataProvider dpExtendsClassName */ public function testExtendsClassName($definition, $correctClassName, $correctMode) { $classMeta = new ClassMetaInfo(); $transformer = new Transformer(); $transformer->setClassMetaInfo($classMeta); $transformer->setMode(T_EXTENDS); $this->assertSame($definition, $this->transform($transformer, $definition)); $this->assertSame($correctClassName, $classMeta->getExtends()); $this->assertSame($correctMode, $transformer->getMode()); }
/** * Test correct extraction implements class names. * * @param string $definition * @param string $correctClassName * @param int $correctMode * * @dataProvider dpImplements */ public function testImplements($definition, $correctClassName, $correctMode) { $classMeta = new ClassMetaInfo(); $transformer = new Transformer(); $transformer->setClassMetaInfo($classMeta); $transformer->setMode(T_IMPLEMENTS); $this->assertSame($definition, $this->transform($transformer, $definition)); $this->assertSame($correctClassName, $classMeta->getImplements()); $this->assertSame($correctMode, $transformer->getMode()); }
/** * @param string $content * * @return string */ private function transform($content) { if (self::$transformer === null) { self::$transformer = new Transformer(); } self::$transformer->setClassMetaInfo(new ClassMetaInfo()); $tokens = token_get_all($content); $content = ''; foreach ($tokens as $token) { if (is_array($token)) { list($code, $value) = $token; } else { $code = null; $value = $token; } $content .= self::$transformer->transform($code, $value); } return $content; }
/** * Test correct extraction namespace. * * @param string $definition * @param string $correctClassName * @param int $correctMode * * @dataProvider dpNamespace */ public function testNamespace($definition, $correctClassName, $correctMode) { $classMeta = new ClassMetaInfo(); $transformer = new Transformer(); $transformer->setClassMetaInfo($classMeta); $transformer->setMode(T_NAMESPACE); $this->assertSame($definition, $this->transform($transformer, $definition)); $this->assertSame($correctClassName, $classMeta->getNamespace()); $this->assertSame($correctMode, $transformer->getMode()); }
/** * @param string $definition * @param string $name * @param string $extends * @param array $implements * @param int $mode * * @dataProvider dpExtractClassMeta */ public function testExtractClassMeta($definition, $name, $extends, array $implements, $mode) { $classMeta = new ClassMetaInfo(); $transformer = new Transformer(); $transformer->setClassMetaInfo($classMeta); $transformer->setMode(T_CLASS); $this->assertSame($definition, $this->transform($transformer, $definition)); $this->assertSame($name, $classMeta->getName()); $this->assertSame($extends, $classMeta->getExtends()); $this->assertSame($implements, $classMeta->getImplements()); $this->assertSame($mode, $transformer->getMode()); }
/** * Test correct extract method name. * * @param string $definition * @param string $correctMethodName * * @dataProvider dpExtractMethodName */ public function testExtractMethodName($definition, $correctMethodName) { $classMeta = new ClassMetaInfo(); $methodMeta = new MethodMetaInfo(); $classMeta->addMethod($methodMeta); $transformer = new Transformer(); $transformer->setClassMetaInfo($classMeta); $mode = new MethodHeadMode(); $mode->setTransformer($transformer); $this->assertSame($definition, $this->transform($mode, $definition)); $this->assertSame($correctMethodName, $methodMeta->getName()); $this->assertSame(Transformer::MODE_METHOD_BODY, $transformer->getMode()); }