/**
  * @covers:Symfony\Component\Security\Acl\Domain\PermissionGrantingStrategy::getAuditLogger
  * @covers:Symfony\Component\Security\Acl\Domain\PermissionGrantingStrategy::setAuditLogger
  */
 public function testGetSetAuditLogger()
 {
     $strategy = new PermissionGrantingStrategy();
     $logger = $this->getMock('Symfony\\Component\\Security\\Acl\\Model\\AuditLoggerInterface');
     $this->assertNull($strategy->getAuditLogger());
     $strategy->setAuditLogger($logger);
     $this->assertSame($logger, $strategy->getAuditLogger());
 }
 /**
  * Registers services on the given app.
  *
  * @param Application $app An Application instance
  */
 public function register(Application $app)
 {
     $app["security.acl.dbal.provider.options"] = array("class_table_name" => "acl_classes", "entry_table_name" => "acl_entries", "oid_table_name" => "acl_object_identities", "oid_ancestors_table_name" => "acl_object_identity_ancestors", "sid_table_name" => "acl_security_identities");
     $app["security.acl.object_identity_retrieval_strategy"] = $app->share(function ($app) {
         return new ObjectIdentityRetrievalStrategy();
     });
     $app["security.acl.security_identity_retrieval_strategy"] = $app->share(function ($app) {
         return new SecurityIdentityRetrievalStrategy($app["security.role_hierarchy"], $app["security.authentication.trust_resolver"]);
     });
     $app["security.acl.permission_granting_strategy"] = $app->share(function ($app) {
         $service = new PermissionGrantingStrategy();
         $service->setAuditLogger($app["security.acl.audit_logger"]);
         return $service;
     });
     $app["security.acl.permission.map"] = $app->share(function ($app) {
         return new AclVoter($app["security.acl.provider"], $app["security.acl.object_identity_retrieval_strategy"], $app['security.acl.security_identity_retrieval_strategy'], $app['security.acl.permission.map'], $app["logger"]);
     });
     $app["security.acl.dbal.connection"] = $app->share(function ($app) {
         return $app["db"];
     });
     $app["security.acl.dbal.provider"] = $app->share(function ($app) {
         return new AclProvider($app["security.acl.dbal.connection"], $app["security.acl.permission_granting_strategy"], $app["security.acl.dbal.provider.options"], $app["security.acl.cache"]);
     });
     $app['security.acl.dbal.schema'] = $app->share(function ($app) {
         return new Schema($app["security.acl.dbal.provider.options"], $app["security.acl.dbal.connection"]);
     });
     $app["security.acl.dbal.schema_listener"] = $app->share(function ($app) {
         return new AclSchemaListener($app);
     });
     $app["security.acl.provider"] = $app->share(function ($app) {
         return $app["security.acl.dbal.provider"];
     });
     $app["security.acl.cache.doctrine"] = $app->share(function ($app) {
         return new DoctrineAclCache($app['security.acl.cache.doctrine.cache_impl'], $app['security.acl.permission_granting_strategy']);
     });
     $app["security.acl.cache.doctrine.cache_impl"] = $app->share(function ($app) {
         return $app['"doctrine.orm.default_result_cache"'];
     });
     $app["security.acl.permission.map"] = $app->share(function ($app) {
         return new BasicPermissionMap();
     });
     // FR : ajouter la command InitAcl
     // EN : add InitAclCommand
     $app->on(ConsoleServiceProvider::INIT, function () use($app) {
         /* @var $console \Symfony\Component\Console\Application */
         $app["console"]->add(new InitAclCommand());
         return $console;
     });
 }