Nelmio\Alice\Generator\Resolver\FixtureSet\RemoveConflictingObjectsResolver::resolve PHP Method

resolve() public method

public resolve ( FixtureSet $unresolvedFixtureSet ) : ResolvedFixtureSet
$unresolvedFixtureSet Nelmio\Alice\FixtureSet
return Nelmio\Alice\Generator\ResolvedFixtureSet
    public function resolve(FixtureSet $unresolvedFixtureSet) : ResolvedFixtureSet
    {
        $resolvedFixtureSet = $this->resolver->resolve($unresolvedFixtureSet);
        $fixtures = $resolvedFixtureSet->getFixtures();
        $objects = $resolvedFixtureSet->getObjects();
        foreach ($fixtures as $fixture) {
            if ($objects->has($fixture)) {
                $objects = $objects->without($fixture);
            }
        }
        return $resolvedFixtureSet->withObjects($objects);
    }

Usage Example

 public function testRemovesConflictingObjectsByIteratingFixturesIfThereIsLessFixturesThanInjectedObjects()
 {
     $set = FixtureSetFactory::create();
     $decoratedResolverProphecy = $this->prophesize(FixtureSetResolverInterface::class);
     $decoratedResolverProphecy->resolve($set)->willReturn($resolvedSet = new ResolvedFixtureSet($parameters = new ParameterBag(['resolved' => true]), $fixtures = (new FixtureBag())->with(new DummyFixture('dummy')), $objects = (new ObjectBag())->with(new SimpleObject('dummy', new \stdClass()))->with(new SimpleObject('another_injected_object', new \stdClass()))));
     /** @var FixtureSetResolverInterface $decoratedResolver */
     $decoratedResolver = $decoratedResolverProphecy->reveal();
     $expected = new ResolvedFixtureSet($parameters, $fixtures, $objects = (new ObjectBag())->with(new SimpleObject('another_injected_object', new \stdClass())));
     $resolver = new RemoveConflictingObjectsResolver($decoratedResolver);
     $actual = $resolver->resolve($set);
     $this->assertEquals($expected, $actual);
 }
RemoveConflictingObjectsResolver