public function testRegisterExternalStorageHandlerWithGateway()
{
$handlerDef = new Definition();
$handlerDef->setClass('eZ\\Publish\\Core\\Base\\Tests\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler');
$fieldTypeIdentifier = 'field_type_identifier';
$handlerDef->addTag('ezpublish.fieldType.externalStorageHandler', array('alias' => $fieldTypeIdentifier));
$storageHandlerServiceId = 'external_storage_handler_id';
$this->setDefinition($storageHandlerServiceId, $handlerDef);
$gatewayDef = new Definition();
$gatewayIdentifier = 'LegacyStorage';
$gatewayDef->addTag('ezpublish.fieldType.externalStorageHandler.gateway', array('alias' => $fieldTypeIdentifier, 'identifier' => $gatewayIdentifier));
$gatewayServiceId = 'gateway_service';
$this->setDefinition($gatewayServiceId, $gatewayDef);
$this->compile();
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall('ezpublish.persistence.external_storage_registry.factory', 'registerExternalStorageHandler', array($storageHandlerServiceId, $fieldTypeIdentifier));
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall($storageHandlerServiceId, 'addGateway', array($gatewayIdentifier, new Reference($gatewayServiceId)));
}