eZ\Bundle\EzPublishRestBundle\Tests\DependencyInjection\Compiler\OutputVisitorPassTest::testProcess PHP Method

testProcess() public method

public testProcess ( )
    public function testProcess()
    {
        $stringRegexp = '(^.*/.*$)';
        $stringDefinition = new Definition();
        $stringDefinition->addTag('ezpublish_rest.output.visitor', ['regexps' => 'ezpublish_rest.output.visitor.test.regexps']);
        $this->setParameter('ezpublish_rest.output.visitor.test.regexps', [$stringRegexp]);
        $this->setDefinition('ezpublish_rest.output.visitor.test_string', $stringDefinition);
        $arrayRegexp = '(^application/json$)';
        $arrayDefinition = new Definition();
        $arrayDefinition->addTag('ezpublish_rest.output.visitor', ['regexps' => [$arrayRegexp]]);
        $this->setDefinition('ezpublish_rest.output.visitor.test_array', $arrayDefinition);
        $this->setDefinition('ezpublish_rest.output.visitor.dispatcher', new Definition());
        $this->compile();
        $visitorsInOrder = $this->getVisitorsInRegistrationOrder();
        self::assertEquals('ezpublish_rest.output.visitor.test_string', $visitorsInOrder[0]);
        self::assertEquals('ezpublish_rest.output.visitor.test_array', $visitorsInOrder[1]);
        $this->assertContainerBuilderHasService('ezpublish_rest.output.visitor.test_string');
        $this->assertContainerBuilderHasService('ezpublish_rest.output.visitor.test_array');
        $this->assertContainerBuilderHasServiceDefinitionWithMethodCall('ezpublish_rest.output.visitor.dispatcher', 'addVisitor', [$stringRegexp, new Reference('ezpublish_rest.output.visitor.test_string')]);
        $this->assertContainerBuilderHasServiceDefinitionWithMethodCall('ezpublish_rest.output.visitor.dispatcher', 'addVisitor', [$arrayRegexp, new Reference('ezpublish_rest.output.visitor.test_array')]);
    }