public function testDescribeImplemented()
 {
     $name = 'fieldA';
     $utilities = $this->getMockBuilder('Faker\\Components\\Engine\\Common\\Utilities')->disableOriginalConstructor()->getMock();
     $generator = $this->getMock('\\PHPStats\\Generator\\GeneratorInterface');
     $locale = $this->getMock('\\Faker\\Locale\\LocaleInterface');
     $event = $this->getMockBuilder('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface')->getMock();
     $database = $this->getMockBuilder('Doctrine\\DBAL\\Connection')->disableOriginalConstructor()->getMock();
     $template = $this->getMockBuilder('Faker\\Components\\Templating\\Loader')->disableOriginalConstructor()->getMock();
     $repo = $this->getMockBuilder('Faker\\Components\\Engine\\Common\\TypeRepository')->getMock();
     $alternateBuilder = new SelectorAlternateBuilder($name, $event, $repo, $utilities, $generator, $locale, $database, $template);
     $this->assertInstanceOf('Faker\\Components\\Engine\\Common\\Builder\\NodeBuilder', $alternateBuilder->describe());
     $this->assertEquals($alternateBuilder, $alternateBuilder->describe()->getParent());
     $randomBuilder = new SelectorRandomBuilder($name, $event, $repo, $utilities, $generator, $locale, $database, $template);
     $this->assertInstanceOf('Faker\\Components\\Engine\\Common\\Builder\\NodeBuilder', $randomBuilder->describe());
     $this->assertEquals($randomBuilder, $randomBuilder->describe()->getParent());
     $weightBuilder = new SelectorWeightBuilder($name, $event, $repo, $utilities, $generator, $locale, $database, $template);
     $this->assertInstanceOf('Faker\\Components\\Engine\\Common\\Builder\\NodeBuilder', $weightBuilder->describe());
     $this->assertEquals($weightBuilder, $weightBuilder->describe()->getParent());
     # use swapAt not describe
     $swapBuilder = new SelectorSwapBuilder($name, $event, $repo, $utilities, $generator, $locale, $database, $template);
     $this->assertInstanceOf('Faker\\Components\\Engine\\Common\\Builder\\TypeBuilder', $swapBuilder->swapAt(100));
     $this->assertEquals($swapBuilder, $swapBuilder->swapAt(100)->getParent());
 }