/**
  * @param PFUser $user
  * @return Tuleap\Tracker\REST\WorkflowRepresentation | null
  */
 private function getWorkflowRepresentation(Workflow $workflow, PFUser $user, $project_id)
 {
     if (!$workflow->isUsed() || !$workflow->getField()->userCanRead($user)) {
         return;
     }
     $transitions = array();
     foreach ($workflow->getTransitions() as $transition) {
         $condition_permission = new Workflow_Transition_Condition_Permissions($transition);
         if ($condition_permission->isUserAllowedToSeeTransition($user, $project_id)) {
             $transitions[] = $this->getWorkflowTransitionRepresentation($transition);
         }
     }
     $workflow_representation = new WorkflowRepresentation();
     $workflow_representation->build($workflow->getFieldId(), $workflow->getIsUsed(), $this->getWorkflowRulesRepresentation($workflow), $transitions);
     return $workflow_representation;
 }
 /**
  * Creates new workflow in the database
  *
  * @param Workflow $workflow The workflow to save
  * @param Tracker          $tracker  The tracker
  *
  * @return void
  */
 public function saveObject($workflow, $tracker)
 {
     $workflow->setTracker($tracker);
     $dao = $this->getDao();
     $workflow_id = $dao->save($workflow->tracker_id, $workflow->getField()->getId(), $workflow->is_used);
     //Save transitions
     foreach ($workflow->getTransitions() as $transition) {
         $tf = $this->transition_factory;
         $tf->saveObject($workflow_id, $transition);
     }
 }
Esempio n. 3
0
 public function testUseCaseBug()
 {
     $field_value_new = new MockTracker_FormElement_Field_List_Value();
     $field_value_new->setReturnValue('getId', 2066);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'New',
     //'description' => 'The bug has been submitted',
     //'rank' => '10');
     $field_value_analyzed = new MockTracker_FormElement_Field_List_Value();
     $field_value_analyzed->setReturnValue('getId', 2067);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Analyzed',
     //'description' => 'The bug is analyzed',
     //'rank' => '20');
     $field_value_accepted = new MockTracker_FormElement_Field_List_Value();
     $field_value_accepted->setReturnValue('getId', 2068);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Accepted',
     //'description' => 'The bug is accepted',
     //'rank' => '30');
     $field_value_rejected = new MockTracker_FormElement_Field_List_Value();
     $field_value_rejected->setReturnValue('getId', 2069);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Rejected',
     //'description' => 'The bug is rejected',
     //'rank' => '40');
     $field_value_fixed = new MockTracker_FormElement_Field_List_Value();
     $field_value_fixed->setReturnValue('getId', 2070);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Fixed',
     //'description' => 'The bug was resolved',
     //'rank' => '50');
     $field_value_tested = new MockTracker_FormElement_Field_List_Value();
     $field_value_tested->setReturnValue('getId', 2071);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Tested',
     //'description' => 'The bug is tested',
     //'rank' => '60');
     $field_value_deployed = new MockTracker_FormElement_Field_List_Value();
     $field_value_deployed->setReturnValue('getId', 2072);
     //'old_id' => null,
     //'field_id' => 2707,
     //'value' => 'Deployed',
     //'description' => 'The bug is deployed',
     //'rank' => '70');
     $t_new_analyzed = new Transition(1, 2, $field_value_new, $field_value_analyzed);
     $t_analyzed_accepted = new Transition(1, 2, $field_value_analyzed, $field_value_accepted);
     $t_analyzed_rejected = new Transition(1, 2, $field_value_analyzed, $field_value_rejected);
     $t_accepted_fixed = new Transition(1, 2, $field_value_accepted, $field_value_fixed);
     $t_fixed_tested = new Transition(1, 2, $field_value_fixed, $field_value_tested);
     $t_tested_deployed = new Transition(1, 2, $field_value_tested, $field_value_deployed);
     $transitions = array($t_new_analyzed, $t_analyzed_accepted, $t_analyzed_rejected, $t_accepted_fixed, $t_fixed_tested, $t_tested_deployed);
     $workflow = new Workflow(1, 2, 3, 1, $transitions);
     $this->assertNotNull($workflow->getTransitions());
     $this->assertTrue($workflow->hasTransitions());
     // Test existing transition
     $this->assertTrue($workflow->isTransitionExist($field_value_new, $field_value_analyzed));
     $this->assertTrue($workflow->isTransitionExist($field_value_analyzed, $field_value_accepted));
     $this->assertTrue($workflow->isTransitionExist($field_value_analyzed, $field_value_rejected));
     $this->assertTrue($workflow->isTransitionExist($field_value_accepted, $field_value_fixed));
     $this->assertTrue($workflow->isTransitionExist($field_value_fixed, $field_value_tested));
     $this->assertTrue($workflow->isTransitionExist($field_value_tested, $field_value_deployed));
     $this->assertFalse($workflow->isTransitionExist($field_value_new, $field_value_tested));
     $this->assertFalse($workflow->isTransitionExist($field_value_new, $field_value_rejected));
     $this->assertFalse($workflow->isTransitionExist($field_value_analyzed, $field_value_new));
     $this->assertFalse($workflow->isTransitionExist($field_value_accepted, $field_value_rejected));
 }