public function testIsGranted() { $admin = new PostAdmin('sonata.post.admin.post', 'Acme\\NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin'); $entity = new \stdClass(); $securityHandler = $this->getMock('Sonata\\AdminBundle\\Security\\Handler\\AclSecurityHandlerInterface'); $securityHandler->expects($this->any())->method('isGranted')->will($this->returnCallback(function (AdminInterface $adminIn, $attributes, $object = null) use($admin, $entity) { if ($admin == $adminIn && $attributes == 'FOO') { if ($object == $admin || $object == $entity) { return true; } } return false; })); $admin->setSecurityHandler($securityHandler); $this->assertTrue($admin->isGranted('FOO')); $this->assertTrue($admin->isGranted('FOO', $entity)); $this->assertFalse($admin->isGranted('BAR')); $this->assertFalse($admin->isGranted('BAR', $entity)); }