/**
  * @dataProvider getTestedImplementations
  *
  * {@inheritDoc}
  */
 public function testGeneratesValidCode($className)
 {
     $reflectionClass = new ReflectionClass($className);
     if ($reflectionClass->isInterface()) {
         // @todo interfaces *may* be proxied by deferring property localization to the constructor (no hardcoding)
         $this->setExpectedException('ProxyManager\\Exception\\InvalidProxiedClassException');
         return parent::testGeneratesValidCode($className);
     }
     if (!method_exists('Closure', 'bind') && $reflectionClass->getProperties(ReflectionProperty::IS_PRIVATE)) {
         $this->setExpectedException('ProxyManager\\Exception\\UnsupportedProxiedClassException');
     }
     return parent::testGeneratesValidCode($className);
 }
 /**
  * @dataProvider getTestedImplementations
  *
  * {@inheritDoc}
  */
 public function testGeneratesValidCode($className)
 {
     $reflectionClass = new ReflectionClass($className);
     if ($reflectionClass->isInterface()) {
         // @todo interfaces *may* be proxied by deferring property localization to the constructor (no hardcoding)
         $this->setExpectedException('ProxyManager\\Exception\\InvalidProxiedClassException');
         return parent::testGeneratesValidCode($className);
     }
     if ((PHP_VERSION_ID < 50400 || defined('HHVM_VERSION')) && $reflectionClass->getProperties(ReflectionProperty::IS_PRIVATE)) {
         $this->setExpectedException('ProxyManager\\Exception\\UnsupportedProxiedClassException');
     }
     return parent::testGeneratesValidCode($className);
 }