public function testReturnsARandomMatchingFixture()
{
$value = FixtureMatchReferenceValue::createWildcardReference('dummy');
$set = ResolvedFixtureSetFactory::create($parameters = new ParameterBag(['foo' => 'bar']), $fixtures = (new FixtureBag())->with($fixture = new DummyFixture('dummy')));
$scope = ['val' => 'scopie'];
$context = new GenerationContext();
$context->markIsResolvingFixture('foo');
$valueResolverProphecy = $this->prophesize(ValueResolverInterface::class);
$valueResolverProphecy->resolve(new FixtureReferenceValue('dummy'), $fixture, $set, $scope, $context)->willReturn($expected = new ResolvedValueWithFixtureSet('dummy', $newSet = ResolvedFixtureSetFactory::create($parameters = new ParameterBag(['ping' => 'pong']), $fixtures = (new FixtureBag())->with($fixture))));
/** @var ValueResolverInterface $valueResolver */
$valueResolver = $valueResolverProphecy->reveal();
$resolver = new FixtureWildcardReferenceResolver($valueResolver);
$actual = $resolver->resolve($value, $fixture, $set, $scope, $context);
$this->assertSame($expected, $actual);
$valueResolverProphecy->resolve(Argument::cetera())->shouldHaveBeenCalledTimes(1);
}