diff --git a/Tests/AclTestCase.php b/Tests/AclTestCase.php new file mode 100644 index 0000000..eec8aaa --- /dev/null +++ b/Tests/AclTestCase.php @@ -0,0 +1,104 @@ + + */ +class AclTestCase extends TestCase +{ + protected $con = null; + protected $cache = null; + + public function setUp() + { + parent::setUp(); + + $schema = file_get_contents(__DIR__.'/../Resources/acl_schema.xml'); + + if (!class_exists('Propel\PropelBundle\Model\Acl\map\AclClassTableMap')) { + $classTargets = array('tablemap', 'object', 'query'); + } else { + $classTargets = array(); + } + + $builder = new QuickBuilder(); + $builder->setSchema($schema); + + $this->con = $builder->build($dsn = null, $user = null, $pass = null, $adapter = null, $classTargets); + } + + /** + * @return \Propel\PropelBundle\Model\Acl\ObjectIdentity + */ + protected function createModelObjectIdentity($identifier) + { + $aclClass = $this->getAclClass(); + $objIdentity = new ModelObjectIdentity(); + + $this->assertTrue((bool) $objIdentity + ->setAclClass($aclClass) + ->setIdentifier($identifier) + ->save($this->con) + ); + + return $objIdentity; + } + + protected function createEntry() + { + $entry = new Entry(); + $entry + ->setAuditSuccess(false) + ->setAuditFailure(false) + ->setMask(64) + ->setGranting(true) + ->setGrantingStrategy('all') + ->setAceOrder(0) + ; + + return $entry; + } + + protected function getAclClass() + { + return AclClass::fromAclObjectIdentity($this->getAclObjectIdentity(), $this->con); + } + + protected function getAclProvider() + { + return new MutableAclProvider(new PermissionGrantingStrategy(), $this->con, $this->cache); + } + + protected function getAclObjectIdentity($identifier = 1) + { + return new ObjectIdentity($identifier, 'Propel\PropelBundle\Tests\Fixtures\Model\Book'); + } + + protected function getRoleSecurityIdentity($role = 'ROLE_USER') + { + return new RoleSecurityIdentity(new Role($role)); + } +} diff --git a/Tests/Model/AclClassTest.php b/Tests/Model/AclClassTest.php new file mode 100644 index 0000000..a3e9c86 --- /dev/null +++ b/Tests/Model/AclClassTest.php @@ -0,0 +1,41 @@ + + */ +class AclClassTest extends AclTestCase +{ + public function testFromAclObjectIdentity() + { + $type = 'Merchant'; + + $aclClass = AclClass::fromAclObjectIdentity(new ObjectIdentity(5, $type), $this->con); + $this->assertInstanceOf('Propel\PropelBundle\Model\Acl\AclClass', $aclClass); + $this->assertEquals($type, $aclClass->getType()); + + $dbEntry = AclClassQuery::create()->findOne($this->con); + $this->assertInstanceOf('Propel\PropelBundle\Model\Acl\AclClass', $dbEntry); + $this->assertEquals($type, $dbEntry->getType()); + + $this->assertEquals($dbEntry->getId(), $aclClass->getId()); + } +}