public function testProcess()
{
$regexp1 = array('(^.*/.*$)');
$regexp2 = array('(^application/json$)');
$stringDefinition = new Definition();
$stringDefinition->addTag('ezpublish_rest.output.visitor', array('regexps' => 'ezpublish_rest.output.visitor.test1.regexps'));
$arrayDefinition = new Definition();
$arrayDefinition->addTag('ezpublish_rest.output.visitor', array('regexps' => array($regexp1)));
$containerBuilder = new ContainerBuilder();
$containerBuilder->addDefinitions(array('ezpublish_rest.output.visitor.dispatcher' => new Definition(), 'ezpublish_rest.output.visitor.test_string' => $stringDefinition, 'ezpublish_rest.output.visitor.test_array' => $arrayDefinition));
$containerBuilder->setParameter('ezpublish_rest.output.visitor.test1.regexps', array($regexp2));
$compilerPass = new OutputVisitorPass();
$compilerPass->process($containerBuilder);
$dispatcherMethodCalls = $containerBuilder->getDefinition('ezpublish_rest.output.visitor.dispatcher')->getMethodCalls();
self::assertTrue(isset($dispatcherMethodCalls[0][0]));
self::assertTrue(isset($dispatcherMethodCalls[0][1]));
self::assertEquals('addVisitor', $dispatcherMethodCalls[0][0]);
self::assertEquals('addVisitor', $dispatcherMethodCalls[1][0]);
self::assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $dispatcherMethodCalls[0][1][1]);
self::assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $dispatcherMethodCalls[1][1][1]);
self::assertEquals('ezpublish_rest.output.visitor.test_string', $dispatcherMethodCalls[0][1][1]->__toString());
self::assertEquals('ezpublish_rest.output.visitor.test_array', $dispatcherMethodCalls[1][1][1]->__toString());
}