public function testAttachEventsWithLoggedUser() { $this->container['sessionStorage']->user = array('id' => 1); $projectModel = new Project($this->container); $projectUserRoleModel = new ProjectUserRole($this->container); $actionModel = new Action($this->container); $actionTaskAssignColorColumn = new TaskAssignColorColumn($this->container); $actionManager = new ActionManager($this->container); $actionManager->register($actionTaskAssignColorColumn); $actions = $actionManager->getAvailableActions(); $this->assertEquals(1, $projectModel->create(array('name' => 'test1'))); $this->assertEquals(2, $projectModel->create(array('name' => 'test2'))); $this->assertTrue($projectUserRoleModel->addUser(2, 1, Role::PROJECT_MEMBER)); $this->assertEquals(1, $actionModel->create(array('project_id' => 1, 'event_name' => Task::EVENT_CREATE, 'action_name' => key($actions), 'params' => array('column_id' => 1, 'color_id' => 'red')))); $this->assertEquals(2, $actionModel->create(array('project_id' => 2, 'event_name' => Task::EVENT_MOVE_COLUMN, 'action_name' => key($actions), 'params' => array('column_id' => 1, 'color_id' => 'red')))); $actionManager->attachEvents(); $listeners = $this->container['dispatcher']->getListeners(Task::EVENT_MOVE_COLUMN); $this->assertCount(1, $listeners); $this->assertInstanceOf(get_class($actionTaskAssignColorColumn), $listeners[0][0]); $this->assertEquals(2, $listeners[0][0]->getProjectId()); }
public function testThatEachListenerAreDifferentInstance() { $projectModel = new Project($this->container); $projectUserRoleModel = new ProjectUserRole($this->container); $actionModel = new Action($this->container); $actionTaskAssignColorColumn = new TaskAssignColorColumn($this->container); $actionManager = new ActionManager($this->container); $actionManager->register($actionTaskAssignColorColumn); $this->assertEquals(1, $projectModel->create(array('name' => 'test1'))); $actions = $actionManager->getAvailableActions(); $this->assertEquals(1, $actionModel->create(array('project_id' => 1, 'event_name' => Task::EVENT_MOVE_COLUMN, 'action_name' => key($actions), 'params' => array('column_id' => 2, 'color_id' => 'green')))); $this->assertEquals(2, $actionModel->create(array('project_id' => 1, 'event_name' => Task::EVENT_MOVE_COLUMN, 'action_name' => key($actions), 'params' => array('column_id' => 1, 'color_id' => 'red')))); $actionManager->attachEvents(); $listeners = $this->container['dispatcher']->getListeners(Task::EVENT_MOVE_COLUMN); $this->assertCount(2, $listeners); $this->assertFalse($listeners[0][0] === $listeners[1][0]); $this->assertEquals(2, $listeners[0][0]->getParam('column_id')); $this->assertEquals('green', $listeners[0][0]->getParam('color_id')); $this->assertEquals(1, $listeners[1][0]->getParam('column_id')); $this->assertEquals('red', $listeners[1][0]->getParam('color_id')); }