/**
     * @depends testAddProperty
     */
    public function testGeneratePropertiesConstructor(ClassBuilder $cb)
    {
        $this->assertChainable($cb->generatePropertiesConstructor(array($cb->getProperty('image'), $cb->getProperty('text'), $cb->getProperty('link'))));
        $this->assertTrue($cb->getGClass()->hasMethod('__construct'));
        $m = $cb->getGClass()->getMethod('__construct');
        $this->assertCount(3, $m->getParameters());
        list($p1, $p2, $p3) = $m->getParameters();
        $this->assertEquals('image', $p1->getName());
        $this->assertNull($p1->getHint());
        $this->assertEquals('text', $p2->getName());
        $this->assertNull($p1->getHint());
        $this->assertEquals('link', $p3->getName());
        $this->assertEquals('Webforge\\Types\\Interfaces\\Link', $p3->getHint()->getFQN());
        $constructorPHP = <<<'PHP'
  $this->setImage($image);
  $this->setText($text);
  $this->setLink($link);

PHP;
        $this->assertEquals($constructorPHP, $m->getBody());
        //print $cb->getGClass()->php();
    }