/**
* {@inheritdoc}
*
* @param FixtureReferenceValue $value
*
* @throws UnresolvableValueException
*/
public function resolve(ValueInterface $value, FixtureInterface $fixture, ResolvedFixtureSet $fixtureSet, array $scope, GenerationContext $context) : ResolvedValueWithFixtureSet
{
if (null === $this->generator) {
throw ObjectGeneratorNotFoundExceptionFactory::createUnexpectedCall(__METHOD__);
}
$referredFixtureId = $value->getValue();
if ($referredFixtureId instanceof ValueInterface) {
throw UnresolvableValueExceptionFactory::create($value);
}
$referredFixture = $this->getReferredFixture($referredFixtureId, $fixtureSet);
return $this->resolveReferredFixture($referredFixture, $referredFixtureId, $fixtureSet, $context);
}