Cake\Acl\Test\TestCase\Model\Behavior\AclBehaviorTest::testAfterSave PHP Method

testAfterSave() public method

test After Save
public testAfterSave ( ) : void
return void
    public function testAfterSave()
    {
        $Post = TableRegistry::get('AclPosts');
        $data = new AclPost(['author_id' => 1, 'title' => 'Acl Post', 'body' => 'post body', 'published' => 1]);
        $saved = $Post->save($data);
        $query = $this->Aco->find('all', ['conditions' => ['model' => $Post->alias(), 'foreign_key' => $saved->id]]);
        $this->assertTrue(is_object($query));
        $result = $query->first();
        $this->assertEquals($Post->alias(), $result->model);
        $this->assertEquals($saved->id, $result->foreign_key);
        $Person = TableRegistry::get('AclPeople');
        $Person->deleteAll(['name' => 'person']);
        $aroData = new AclPerson(['model' => $Person->alias(), 'foreign_key' => 2, 'parent_id' => null]);
        $this->Aro->save($aroData);
        $acoData = new AclPerson(['model' => $Person->alias(), 'foreign_key' => 2, 'parent_id' => null]);
        $this->Aco->save($acoData);
        $data = new AclPerson(['name' => 'Trent', 'mother_id' => 2, 'father_id' => 3]);
        $saved = $Person->save($data);
        $result = $this->Aro->find('all', ['conditions' => ['model' => $Person->alias(), 'foreign_key' => $saved->id]])->first();
        $this->assertEquals(5, $result->parent_id);
        $node = $Person->node(['model' => $Person->alias(), 'foreign_key' => 8], 'Aro');
        $this->assertEquals(2, $node->count());
        $node = $node->toArray();
        $this->assertEquals(5, $node[0]->parent_id);
        $this->assertEquals(null, $node[1]->parent_id);
        $aroData = $this->Aro->save(new AclPerson(['model' => $Person->alias(), 'foreign_key' => 1, 'parent_id' => null]));
        $acoData = $this->Aco->save(new AclPerson(['model' => $Person->alias(), 'foreign_key' => 1, 'parent_id' => null]));
        $person = $Person->findById(8)->first();
        $person->mother_id = 1;
        $person = $Person->save($person);
        $result = $this->Aro->find('all', ['conditions' => ['model' => $Person->alias(), 'foreign_key' => $person->id]])->first();
        $this->assertEquals(7, $result->parent_id);
        $node = $Person->node(['model' => $Person->alias(), 'foreign_key' => 8], 'Aro')->toArray();
        $this->assertEquals(2, count($node));
        $this->assertEquals(7, $node[0]->parent_id);
        $this->assertEquals(null, $node[1]->parent_id);
    }