public withObjectGenerator ( Nelmio\Alice\Generator\ObjectGeneratorInterface $generator ) : self | ||
$generator | Nelmio\Alice\Generator\ObjectGeneratorInterface | |
return | self |
public function testPassesTheObjectGeneratorAwarenessPropertyToItsDecoratedResolver() { $generator = new FakeObjectGenerator(); $resolver = new UnresolvedFixtureReferenceIdResolver(new FakeChainableValueResolver()); $newResolver = $resolver->withObjectGenerator($generator); $this->assertEquals($newResolver, $resolver); $this->assertNotSame($newResolver, $resolver); $resolver = new UnresolvedFixtureReferenceIdResolver(new FakeChainableValueResolver(), new FakeValueResolver()); $newResolver = $resolver->withObjectGenerator($generator); $this->assertEquals($newResolver, $resolver); $this->assertNotSame($newResolver, $resolver); $decoratedResolverProphecy = $this->prophesize(ChainableValueResolverInterface::class); $decoratedResolverProphecy->willImplement(ObjectGeneratorAwareInterface::class); $decoratedResolverProphecy->withObjectGenerator($generator)->willReturn($newDecoratedResolver = new FakeChainableValueResolver()); /** @var ChainableValueResolverInterface $decoratedResolver */ $decoratedResolver = $decoratedResolverProphecy->reveal(); $resolver = new UnresolvedFixtureReferenceIdResolver($decoratedResolver); $newResolver = $resolver->withObjectGenerator($generator); $this->assertEquals(new UnresolvedFixtureReferenceIdResolver($decoratedResolver), $resolver); $this->assertEquals(new UnresolvedFixtureReferenceIdResolver($newDecoratedResolver), $newResolver); $resolver = new UnresolvedFixtureReferenceIdResolver($decoratedResolver, new FakeValueResolver()); $newResolver = $resolver->withObjectGenerator($generator); $this->assertEquals(new UnresolvedFixtureReferenceIdResolver($decoratedResolver, new FakeValueResolver()), $resolver); $this->assertEquals(new UnresolvedFixtureReferenceIdResolver($newDecoratedResolver, new FakeValueResolver()), $newResolver); $decoratedResolverProphecy->withObjectGenerator(Argument::any())->shouldHaveBeenCalledTimes(2); }