/**
  * @param mixed $style
  */
 public function __construct($style)
 {
     $this->style = $style;
     $this->input = $style->getInput();
     $this->output = $style->getOutput();
     $this->inspect = Inspect::thisInstance($style);
 }
 public function testInitializeMethods()
 {
     $className = 'SR\\Doctrine\\ORM\\Mapping\\Tests\\Fixture\\IdEntity';
     $instance = new $className(false);
     $this->assertNull($instance->getAString());
     $this->assertNull($instance->getAnInt());
     $this->assertNull($instance->getAnArray());
     $instance->__construct(true);
     $this->assertNotNull($instance->getAString());
     $this->assertSame('aString', $instance->getAString());
     $this->assertNotNull($instance->getAnInt());
     $this->assertNotNull($instance->getAnArray());
     $aStringProperty = Inspect::thisInstance($instance)->matchOneProperty('aString', 'nameUnQualified');
     $aStringProperty->setValue($instance, 'aStringValueSetViaReflection');
     $instance->__construct();
     $this->assertSame('aStringValueSetViaReflection', $instance->getAString());
 }
 /**
  * @param Entity $compareTo
  *
  * @return bool
  */
 public final function isEqualTo(Entity $compareTo)
 {
     $propertiesSelfNorm = [];
     $propertiesCompNorm = [];
     $propertiesSelf = Inspect::thisInstance($this)->properties();
     $propertiesComp = Inspect::thisInstance($compareTo)->properties();
     $visitor = function (array $properties, array &$normalized, $bind) {
         foreach ($properties as $property) {
             $normalized[$property->name()] = $property->value($bind);
         }
     };
     $visitor($propertiesSelf, $propertiesSelfNorm, $this);
     $visitor($propertiesComp, $propertiesCompNorm, $compareTo);
     ksort($propertiesSelfNorm);
     ksort($propertiesCompNorm);
     return $propertiesSelfNorm === $propertiesCompNorm;
 }
 /**
  * @param string      $search
  * @param null|Entity $entity
  *
  * @return null|PropertyIntrospection
  */
 protected final function findProperty($search, Entity $entity = null)
 {
     $_ = function (PropertyIntrospection $p, $index) use($search) {
         return $p->nameUnQualified() === $search;
     };
     return Inspect::thisInstance($entity ?: $this)->filterOneProperty($_, null);
 }
 public function testFindPropertySet()
 {
     $class = 'SR\\Doctrine\\ORM\\Mapping\\Tests\\Fixture\\EntityA';
     $instance = new $class();
     $findPropertySetMethod = Inspect::thisInstance($instance)->getMethod('findPropertySet');
     $properties = $findPropertySetMethod->invoke($instance, '{^property}', true);
     $this->assertCount(3, $properties);
 }
 /**
  * @param \PHPUnit_Framework_MockObject_MockObject $entity
  * @param string                                   $initializeMethod
  */
 private function initializerCall(\PHPUnit_Framework_MockObject_MockObject $entity, $initializeMethod)
 {
     $inspector = Inspect::thisInstance($entity);
     try {
         $method = $inspector->getMethod($initializeMethod);
     } catch (InvalidArgumentException $e) {
         $initializeMethod = $initializeMethod;
         $method = $inspector->getMethod($initializeMethod);
     }
     $method->invoke($entity);
 }