Chris@0: assertTrue($refl instanceof \ReflectionFunction); Chris@0: Chris@0: $refl = Mirror::get('Psy\Test\Util\MirrorTest'); Chris@0: $this->assertTrue($refl instanceof \ReflectionClass); Chris@0: Chris@0: $refl = Mirror::get($this); Chris@0: $this->assertTrue($refl instanceof \ReflectionObject); Chris@0: Chris@0: $refl = Mirror::get($this, 'FOO'); Chris@0: $this->assertTrue($refl instanceof ReflectionConstant); Chris@0: Chris@0: $refl = Mirror::get($this, 'bar'); Chris@0: $this->assertTrue($refl instanceof \ReflectionProperty); Chris@0: Chris@0: $refl = Mirror::get($this, 'baz'); Chris@0: $this->assertTrue($refl instanceof \ReflectionProperty); Chris@0: Chris@0: $refl = Mirror::get($this, 'aPublicMethod'); Chris@0: $this->assertTrue($refl instanceof \ReflectionMethod); Chris@0: Chris@0: $refl = Mirror::get($this, 'baz', Mirror::STATIC_PROPERTY); Chris@0: $this->assertTrue($refl instanceof \ReflectionProperty); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @expectedException \RuntimeException Chris@0: */ Chris@0: public function testMirrorThrowsExceptions() Chris@0: { Chris@0: Mirror::get($this, 'notAMethod'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @expectedException \InvalidArgumentException Chris@0: * @dataProvider invalidArguments Chris@0: */ Chris@0: public function testMirrorThrowsInvalidArgumentExceptions($value) Chris@0: { Chris@0: Mirror::get($value); Chris@0: } Chris@0: Chris@0: public function invalidArguments() Chris@0: { Chris@0: return array( Chris@0: array('not_a_function_or_class'), Chris@0: array(array()), Chris@0: array(1), Chris@0: ); Chris@0: } Chris@0: }