public function testTraits() { $class = new PhpClass('my\\name\\space\\Class'); $this->assertEquals(array(), $class->getTraits()); $this->assertSame($class, $class->setTraits(array('foo', 'bar'))); $this->assertEquals(array('foo', 'bar'), $class->getTraits()); $this->assertSame($class, $class->addTrait('stdClass')); $this->assertEquals(array('foo', 'bar', 'stdClass'), $class->getTraits()); $trait = new PhpTrait('my\\name\\space\\Trait'); $class->addTrait($trait); $this->assertTrue($class->hasTrait('my\\name\\space\\Trait')); $this->assertSame($class, $class->removeTrait($trait)); $class->addTrait(new PhpTrait('other\\name\\space\\Trait')); $this->assertTrue($class->hasUseStatement('other\\name\\space\\Trait')); $this->assertSame($class, $class->removeTrait('other\\name\\space\\Trait')); $this->assertTrue($class->hasUseStatement('other\\name\\space\\Trait')); }