Example #1
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;
 }
Example #2
0
 public function testMethods()
 {
     $methods = array();
     $methods[1] = new Method('public', 'method1', '', '');
     $methods[2] = new Method('public', 'method2', '', '');
     $methods[3] = new Method('public', 'method3', '', '');
     $methods[4] = new Method('public', 'method4', '', '');
     $definition = new Definition('Class1');
     // addMethod
     $definition->addMethod($methods[1]);
     $definition->addMethod($methods[2]);
     $this->assertSame(array($methods[1], $methods[2]), $definition->getMethods());
     // setMethods
     $definition->setMethods(array($methods[3], $methods[4]));
     $this->assertSame(array($methods[3], $methods[4]), $definition->getMethods());
     // hasMethodByName
     $this->assertTrue($definition->hasMethodByName('method3'));
     $this->assertFalse($definition->hasMethodByName('method1'));
     // getMethodByName
     $this->assertSame($methods[3], $definition->getMethodByName('method3'));
     $this->assertSame($methods[4], $definition->getMethodByName('method4'));
     // removeMethodByName
     $definition->setMethods($methods);
     $definition->removeMethodByName('method2');
     $this->assertFalse($definition->hasMethodByName('method2'));
     $this->assertTrue($definition->hasMethodByName('method1'));
     $this->assertTrue($definition->hasMethodByName('method3'));
     $this->assertTrue($definition->hasMethodByName('method4'));
 }