Nelmio\Alice\Generator\Resolver\Value\Chainable\FakerFunctionCallValueResolver::resolve PHP Method

resolve() public method

public resolve ( Nelmio\Alice\Definition\ValueInterface $value, Nelmio\Alice\FixtureInterface $fixture, ResolvedFixtureSet $fixtureSet, array $scope, GenerationContext $context ) : ResolvedValueWithFixtureSet
$value Nelmio\Alice\Definition\ValueInterface
$fixture Nelmio\Alice\FixtureInterface
$fixtureSet Nelmio\Alice\Generator\ResolvedFixtureSet
$scope array
$context Nelmio\Alice\Generator\GenerationContext
return Nelmio\Alice\Generator\ResolvedValueWithFixtureSet
    public function resolve(ValueInterface $value, FixtureInterface $fixture, ResolvedFixtureSet $fixtureSet, array $scope, GenerationContext $context) : ResolvedValueWithFixtureSet
    {
        /**
         * @var FakerGenerator $generator
         * @var string         $formatter
         */
        list($generator, $formatter) = $this->getGenerator($this->generatorFactory, $value->getName());
        return new ResolvedValueWithFixtureSet($generator->format($formatter, $value->getArguments()), $fixtureSet);
    }

Usage Example

 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage Unknown formatter "unknown"
  */
 public function testThrowsAnExceptionIfTriesToCallAnUndefinedProviderFunction()
 {
     $value = new FunctionCallValue('unknown');
     $fixture = new FakeFixture();
     $set = ResolvedFixtureSetFactory::create();
     $resolver = new FakerFunctionCallValueResolver(FakerGeneratorFactory::create(), new FakeValueResolver());
     $resolver->resolve($value, $fixture, $set, [], new GenerationContext());
 }