/** * Test method isAllowedToChangeEventStatus() */ public function testIsAllowedToChangeEventStatus() { $authManager = new RecruitmentAuthManager(); $app = JobApplication::getJobApplication(1); // Different users $admin = new authorize(null, authorize::YES); $hiring = new authorize('011', authorize::NO); $first = new authorize(13, authorize::NO); $second = new authorize(14, authorize::NO); $manager = new authorize(15, authorize::NO); $nonManager = new authorize(16, authorize::NO); // Admin, Hiring Manager and interviewer(owner) allowed to change status event when there are // no newer events. $app->setStatus(JobApplication::STATUS_FIRST_INTERVIEW_SCHEDULED); $app->save(); $event = $app->getEventOfType(JobApplicationEvent::EVENT_SCHEDULE_FIRST_INTERVIEW); $this->assertTrue($authManager->isAllowedToChangeEventStatus($admin, $event)); $this->assertTrue($authManager->isAllowedToChangeEventStatus($hiring, $event)); $this->assertTrue($authManager->isAllowedToChangeEventStatus($first, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($second, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($manager, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($nonManager, $event)); //Not allowed to change status when not current event. $app->setStatus(JobApplication::STATUS_SECOND_INTERVIEW_SCHEDULED); $app->save(); $event = $app->getEventOfType(JobApplicationEvent::EVENT_SCHEDULE_FIRST_INTERVIEW); $this->assertFalse($authManager->isAllowedToChangeEventStatus($admin, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($hiring, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($first, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($second, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($manager, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($nonManager, $event)); //Not allowed to change status when not current event. $app->setStatus(JobApplication::STATUS_REJECTED); $app->save(); $event = $app->getEventOfType(JobApplicationEvent::EVENT_SCHEDULE_SECOND_INTERVIEW); $this->assertFalse($authManager->isAllowedToChangeEventStatus($admin, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($hiring, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($first, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($second, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($manager, $event)); $this->assertFalse($authManager->isAllowedToChangeEventStatus($nonManager, $event)); }
?> </div> <div class="txtValue" style="white-space:nowrap;"> <?php echo $statusList[$application->getStatus()]; ?> </div><br/> <?php $authManager = new RecruitmentAuthManager(); $auth = new authorize($_SESSION['empID'], $_SESSION['isAdmin']); $role = $authManager->getRoleForApplication($auth, $application); $eventCount = 0; foreach ($events as $event) { $allowEdit = $authManager->isAllowedToEditEvent($auth, $event); $allowStatusChange = $authManager->isAllowedToChangeEventStatus($auth, $event); $title = $eventTitles[$event->getEventType()]; if ($event->getEventType() == JobApplicationEvent::EVENT_SCHEDULE_FIRST_INTERVIEW || $event->getEventType() == JobApplicationEvent::EVENT_SCHEDULE_SECOND_INTERVIEW) { $showEventDate = true; $evenDateLabel = $lang_Recruit_JobApplicationHistory_InterviewTime; $showStatus = true; $showOwner = true; $creatorLabel = $lang_Recruit_JobApplicationHistory_ScheduledBy; } else { $eventDateLabel = ''; $showEventDate = false; $showStatus = false; $showOwner = false; $creatorLabel = $lang_Recruit_JobApplicationHistory_By; } $eventCount++;