public function testReturnsNewSetWithInstantiatedObject()
{
$fixture = new DummyFixture('dummy');
$set = new ResolvedFixtureSet($parameters = new ParameterBag(['foo' => 'bar']), $fixtures = (new FixtureBag())->with(new DummyFixture('another_dummy')), $objects = new ObjectBag(['ping' => new Dummy()]));
$instantiatedObject = new \stdClass();
$instantiatedObject->instantiated = true;
$decoratedInstantiatorProphecy = $this->prophesize(AbstractChainableInstantiator::class);
$decoratedInstantiatorProphecy->createInstance($fixture)->willReturn($instantiatedObject);
/** @var AbstractChainableInstantiator $decoratedInstantiator */
$decoratedInstantiator = $decoratedInstantiatorProphecy->reveal();
$expected = new ResolvedFixtureSet($parameters, $fixtures, $objects->with(new SimpleObject('dummy', $instantiatedObject)));
$instantiator = new ProphecyChainableInstantiator($decoratedInstantiator);
$actual = $instantiator->instantiate($fixture, $set, new GenerationContext());
$this->assertEquals($expected, $actual);
$decoratedInstantiatorProphecy->createInstance(Argument::any())->shouldHaveBeenCalledTimes(1);
}