Example #1
0
 public function testProperties()
 {
     $properties = array();
     $properties[1] = new Property('public', 'property1', true);
     $properties[2] = new Property('public', 'property2', true);
     $properties[3] = new Property('public', 'property3', true);
     $properties[4] = new Property('public', 'property4', true);
     $definition = new Definition('Class1');
     // addProperty
     $definition->addProperty($properties[1]);
     $definition->addProperty($properties[2]);
     $this->assertSame(array($properties[1], $properties[2]), $definition->getProperties());
     // setProperties
     $definition->setProperties(array($properties[3], $properties[4]));
     $this->assertSame(array($properties[3], $properties[4]), $definition->getProperties());
     // hasPropertyByName
     $this->assertTrue($definition->hasPropertyByName('property3'));
     $this->assertFalse($definition->hasPropertyByName('property1'));
     // getPropertyByName
     $this->assertSame($properties[3], $definition->getPropertyByName('property3'));
     $this->assertSame($properties[4], $definition->getPropertyByName('property4'));
     // removePropertyByName
     $definition->setProperties($properties);
     $definition->removePropertyByName('property2');
     $this->assertFalse($definition->hasPropertyByName('property2'));
     $this->assertTrue($definition->hasPropertyByName('property1'));
     $this->assertTrue($definition->hasPropertyByName('property3'));
     $this->assertTrue($definition->hasPropertyByName('property4'));
 }
Example #2
0
 public function create()
 {
     $definition = new Definition($this->className);
     $definition->setClass($this->nameSpace . '\\' . $this->className);
     $definition->setAbstract(true);
     $properties = $this->extractProperties();
     $definition->setProperties($properties);
     $methods = $this->extractMethods();
     $definition->setMethods($methods);
     $definition->addInterface('\\Serializable');
     $definition->addMethod($this->createSerialize());
     $definition->addMethod($this->createUnserialize());
     return $definition;
 }