/** * @depends testConstructorEmptyCollection */ public function testConstructorWithAces() { $collection = new ObjectCollection(); $collection->setModel('Propel\\Bundle\\PropelBundle\\Model\\Acl\\Entry'); $obj = $this->createModelObjectIdentity(1); // object based ACE $entry = $this->createEntry(); $entry->setObjectIdentity($obj)->setSecurityIdentity(SecurityIdentity::fromAclIdentity($this->getRoleSecurityIdentity()))->setAclClass($this->getAclClass()); $collection->append($entry); // object field based ACE $entry = $this->createEntry(); $entry->setObjectIdentity($obj)->setFieldName('name')->setSecurityIdentity(SecurityIdentity::fromAclIdentity($this->getRoleSecurityIdentity()))->setAclClass($this->getAclClass()); $collection->append($entry); // class based ACE $entry = $this->createEntry(); $entry->setSecurityIdentity(SecurityIdentity::fromAclIdentity($this->getRoleSecurityIdentity()))->setAclClass($this->getAclClass()); $collection->append($entry); // class field based ACE $entry = $this->createEntry(); $entry->setFieldName('name')->setSecurityIdentity(SecurityIdentity::fromAclIdentity($this->getRoleSecurityIdentity()))->setAclClass($this->getAclClass()); $collection->append($entry); $acl = new Acl($collection, $this->getAclObjectIdentity(), new PermissionGrantingStrategy()); $this->assertNotEmpty($acl->getClassAces()); $this->assertNotEmpty($acl->getObjectAces()); $this->assertEquals(array('name'), $acl->getFields()); $this->assertNotEmpty($acl->getClassFieldAces('name')); $this->assertNotEmpty($acl->getObjectFieldAces('name')); $classAces = $acl->getClassAces(); $objectAces = $acl->getObjectAces(); $classFieldAces = $acl->getClassFieldAces('name'); $objectFieldAces = $acl->getObjectFieldAces('name'); $this->assertInstanceOf('Propel\\Bundle\\PropelBundle\\Security\\Acl\\Domain\\Entry', $classAces[0]); $this->assertInstanceOf('Propel\\Bundle\\PropelBundle\\Security\\Acl\\Domain\\Entry', $objectAces[0]); $this->assertInstanceOf('Propel\\Bundle\\PropelBundle\\Security\\Acl\\Domain\\FieldEntry', $classFieldAces[0]); $this->assertInstanceOf('Propel\\Bundle\\PropelBundle\\Security\\Acl\\Domain\\FieldEntry', $objectFieldAces[0]); $this->assertSame($acl, $classAces[0]->getAcl()); $this->assertSame($acl, $objectAces[0]->getAcl()); $this->assertSame($acl, $classFieldAces[0]->getAcl()); $this->assertSame($acl, $objectFieldAces[0]->getAcl()); $this->assertEquals('name', $classFieldAces[0]->getField()); $this->assertEquals('name', $objectFieldAces[0]->getField()); }