protected function getComposite() { $event = $this->getMockBuilder('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface')->getMock(); $schema = new SchemaNode('schema', $event); $tableA = new TableNode('tableA', $event); $columnA1 = new ColumnNode('columnA1', $event); $columnA2 = new ColumnNode('columnA2', $event); $tableB = new TableNode('tableB', $event); $columnB1 = new ColumnNode('columnB1', $event); $columnB2 = new ColumnNode('columnB2', $event); $tableC = new TableNode('tableC', $event); $columnC1 = new ColumnNode('columnC1', $event); $columnC2 = new ColumnNode('columnC2', $event); $fkc1 = new ForeignKeyNode('fkc1', $event); $fkc1->setOption('foreignTable', $tableA->getId()); $fkc1->setOption('foreignColumn', $columnA1->getId()); $columnC2->addChild($fkc1); $tableC->addChild($columnC1); $tableC->addChild($columnC2); $tableB->addChild($columnB1); $tableB->addChild($columnB2); $tableA->addChild($columnA1); $tableA->addChild($columnA2); $schema->addChild($tableC); $schema->addChild($tableB); $schema->addChild($tableA); return $schema; }
protected function getComposite() { $event = $this->getMockBuilder('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface')->getMock(); $schema = new SchemaNode('schema', $event); $formatter = $this->getMockBuilder('Faker\\Tests\\Engine\\Common\\Formatter\\Mock\\MockFormatter')->disableOriginalConstructor()->getMock(); $tableA = new TableNode('tableA', $event); $columnA1 = new ColumnNode('columnA1', $event); $columnA2 = new ColumnNode('columnA2', $event); $tableB = new TableNode('tableB', $event); $columnB1 = new ColumnNode('columnB1', $event); $columnB2 = new ColumnNode('columnB2', $event); $tableC = new TableNode('tableC', $event); $columnC1 = new ColumnNode('columnC1', $event); $columnC2 = new ColumnNode('columnC2', $event); $fkc1 = new ForeignKeyNode('fkc1', $event); $fmNode = new FormatterNode('fmnode', $event, $formatter); $fkc1->setOption('foreignTable', $tableA->getId()); $fkc1->setOption('foreignColumn', $columnA1->getId()); $columnC2->addChild($fkc1); $tableC->addChild($columnC1); $tableC->addChild($columnC2); $tableB->addChild($columnB1); $tableB->addChild($columnB2); $tableA->addChild($columnA1); $tableA->addChild($columnA2); $schema->addChild($tableA); $schema->addChild($tableB); $schema->addChild($tableC); $schema->addChild($fmNode); return $schema; }
/** * Instantiate and configure the node according to this definition * * @return Faker\Components\Engine\Common\Composite\CompositeInterface The node instance * * @throws InvalidDefinitionException When the definition is invalid */ public function getNode() { $node = new ForeignKeyNode('ForeignKeyNode', $this->eventDispatcher); foreach ($this->attributes as $attribute => $value) { $node->setOption($attribute, $value); } return $node; }
public function validate() { $children = $this->getChildren(); # run the parent validation function parent::validate(); # validate the child nodes in composite foreach ($children as $child) { $child->validate(); } return true; }
public function testValidationPass() { $utilities = $this->getMockBuilder('Faker\\Components\\Engine\\Common\\Utilities')->getMock(); $generator = $this->getMock('\\PHPStats\\Generator\\GeneratorInterface'); $locale = $this->getMock('\\Faker\\Locale\\LocaleInterface'); $event = $this->getMockBuilder('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface')->getMock(); $id = 'foreignKeyNode'; $cache = $this->getMockBuilder('Faker\\Components\\Engine\\Common\\GeneratorCache')->disableOriginalConstructor()->getMock(); $type = new ForeignKeyNode($id, $event); $type->setResultCache($cache); $type->setOption('foreignTable', 'aaaa'); $type->setOption('foreignColumn', 'aaaa'); $type->setOption('foreignColumn', 'aaaa'); $type->validate(); $this->assertTrue($type->getUseCache()); $type->setOption('silent', true); $type->validate(); $this->assertFalse($type->getUseCache()); }