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')]);
}