public function testWrite()
 {
     $code = new PhpClass();
     $code->setName('FirstClass')->setNamespace(new NamespaceClass('ClassGenerator'))->setDescription('Class description')->setExtends('\\ArrayIterator')->addMethod(new Method())->addProperty(new Property());
     $path = $this->path;
     if (!is_dir($path)) {
         $path = './data';
         $i = 0;
         while ($i < 3 and !realpath($path)) {
             $path = '../' . $path;
             $i++;
         }
     }
     if (!is_dir($path)) {
         mkdir($path, 0777, true);
     }
     $writer = new Writer(array('phpClass' => $code, 'path' => $path));
     $writer->write();
     $this->assertFileExists($path . '/' . $code->getNamespace()->getPath() . '/' . $code->getName() . '.php');
 }
 public function testSetAndGetAndAddUseTraits()
 {
     $code = new PhpClass();
     $code->addComposition('\\ClassGeneration\\Test\\Provider\\ObjectTrait');
     $this->assertCount(1, $code->getCompositionCollection());
     $this->assertEquals('\\ClassGeneration\\Test\\Provider\\ObjectTrait', $code->getCompositionCollection()->current());
 }