/** * Test role synchronisation */ public function testRoleSynchronisation() { // create a first test ACL role $query = $this->model->insert()->into('acl_role')->values(['name' => 'test role 1']); $statement = $this->model->prepareStatementForSqlObject($query); $statement->execute(); $this->aclRolesIds[] = $this->model->getAdapter()->getDriver()->getLastGeneratedValue(); // create a test user $query = $this->model->insert()->into('user_list')->values(['nick_name' => Rand::getString(32), 'email' => Rand::getString(32), 'role' => $this->aclRolesIds[0]]); $statement = $this->model->prepareStatementForSqlObject($query); $statement->execute(); $this->usersIds[] = $this->model->getAdapter()->getDriver()->getLastGeneratedValue(); // delete the created ACL role $query = $this->model->delete()->from('acl_role')->where(['id' => $this->aclRolesIds[0]]); $statement = $this->model->prepareStatementForSqlObject($query); $statement->execute(); // fire the delete ACL role event AclEvent::fireDeleteAclRoleEvent($this->aclRolesIds[0]); // check the created test user's role $select = $this->model->select(); $select->from('user_list')->columns(['role'])->where(['user_id' => $this->usersIds[0]]); $statement = $this->model->prepareStatementForSqlObject($select); $resultSet = new ResultSet(); $result = $resultSet->initialize($statement->execute()); // user must be a default member $this->assertEquals($result->current()['role'], AclBaseModel::DEFAULT_ROLE_MEMBER); }