Nelmio\Alice\Generator\Resolver\Value\Chainable\FixtureReferenceResolver::resolveReferredFixture PHP Method

resolveReferredFixture() private method

private resolveReferredFixture ( Nelmio\Alice\FixtureIdInterface $referredFixture, string $referredFixtureId, ResolvedFixtureSet $fixtureSet, GenerationContext $context ) : ResolvedValueWithFixtureSet
$referredFixture Nelmio\Alice\FixtureIdInterface
$referredFixtureId string
$fixtureSet Nelmio\Alice\Generator\ResolvedFixtureSet
$context Nelmio\Alice\Generator\GenerationContext
return Nelmio\Alice\Generator\ResolvedValueWithFixtureSet
    private function resolveReferredFixture(FixtureIdInterface $referredFixture, string $referredFixtureId, ResolvedFixtureSet $fixtureSet, GenerationContext $context) : ResolvedValueWithFixtureSet
    {
        if ($fixtureSet->getObjects()->has($referredFixture)) {
            $referredObject = $fixtureSet->getObjects()->get($referredFixture);
            if ($referredObject instanceof CompleteObject || false === $context->needsCompleteGeneration()) {
                return new ResolvedValueWithFixtureSet($referredObject->getInstance(), $fixtureSet);
            }
        }
        // Object is either not completely generated or has not been generated at all yet
        if (false === $referredFixture instanceof FixtureInterface) {
            throw FixtureNotFoundExceptionFactory::create($referredFixtureId);
        }
        $context->markIsResolvingFixture($referredFixtureId);
        $objects = $this->generator->generate($referredFixture, $fixtureSet, $context);
        $fixtureSet = $fixtureSet->withObjects($objects);
        return new ResolvedValueWithFixtureSet($fixtureSet->getObjects()->get($referredFixture)->getInstance(), $fixtureSet);
    }