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')); }
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; }