public function testGenerateWithReferences() { $rule = $this->createTestRule(); $referenceArray = [['referenceName' => 'user-1'], ['referenceName' => 'user-2']]; $membersRule = new FixtureGeneratorRule(); $membersRule->setKey('members')->setCountRepeat(5); $memberRule = new FixtureGeneratorRule(); $memberRule->setStrategy(FixtureGeneratorStrategy::REFERENCE)->setReferenceArray($referenceArray); $membersRule->addRule($memberRule); $rule->addRule($membersRule); $ownerRule = new FixtureGeneratorRule(); $ownerRule->setKey('owner')->setStrategy(FixtureGeneratorStrategy::REFERENCE)->setReferenceArray($referenceArray); $rule->addRule($ownerRule); $json = $this->generator->generate($rule); }
/** * @param string $key * @param array $ruleArray * * @return FixtureGeneratorRule */ private function createRuleFromArray(string $key, array $ruleArray) : FixtureGeneratorRule { $rule = new FixtureGeneratorRule(); if (!empty($key)) { $rule->setKey($key); } if (isset($ruleArray['prefix'])) { $rule->setPrefix($ruleArray['prefix']); } if (isset($ruleArray['strategy'])) { $rule->setStrategy($ruleArray['strategy']); } if (isset($ruleArray['count_repeat'])) { $rule->setCountRepeat($ruleArray['count_repeat']); } return $rule; }