Esempio n. 1
0
 public function testIsFieldUsedInWorkflow()
 {
     $tracker = new MockTracker();
     $tracker->setReturnValue('getId', 123);
     $field_status = new MockTracker_FormElement_Field_List();
     $field_status->setReturnReference('getTracker', $tracker);
     $field_status->setReturnValue('getId', 1001);
     $field_start_date = new MockTracker_FormElement_Field_List();
     $field_start_date->setReturnReference('getTracker', $tracker);
     $field_start_date->setReturnValue('getId', 1002);
     $field_close_date = new MockTracker_FormElement_Field_List();
     $field_close_date->setReturnReference('getTracker', $tracker);
     $field_close_date->setReturnValue('getId', 1003);
     $workflow = new MockWorkflow();
     $workflow->setReturnValue('getFieldId', $field_status->getId());
     $tf = new MockTransitionFactory();
     $tf->setReturnValue('isFieldUsedInTransitions', false, array($field_start_date));
     $tf->setReturnValue('isFieldUsedInTransitions', true, array($field_close_date));
     $tf->expectCallCount('isFieldUsedInTransitions', 2);
     $wf = TestHelper::getPartialMock('WorkflowFactory', array('getWorkflowByTrackerId', 'getTransitionFactory'));
     $wf->setReturnReference('getTransitionFactory', $tf);
     $wf->setReturnReference('getWorkflowByTrackerId', $workflow, array($tracker->getId()));
     $this->assertTrue($wf->isFieldUsedInWorkflow($field_status));
     $this->assertFalse($wf->isFieldUsedInWorkflow($field_start_date));
     $this->assertTrue($wf->isFieldUsedInWorkflow($field_close_date));
 }
 public function testGetSoapAvailableValues()
 {
     $bv1 = new MockTracker_FormElement_Field_List_Bind_StaticValue();
     $bv1->setReturnValue('getLabel', 'bv label 1');
     $bv2 = new MockTracker_FormElement_Field_List_Bind_StaticValue();
     $bv2->setReturnValue('getLabel', 'bv label 2');
     $field = new MockTracker_FormElement_Field_List();
     $field->setReturnValue('getId', 123);
     $is_rank_alpha = $default_values = $decorators = '';
     $values = array(101 => $bv1, 102 => $bv2);
     $static = new Tracker_FormElement_Field_List_Bind_Static($field, $is_rank_alpha, $values, $default_values, $decorators);
     $this->assertEqual(count($static->getSoapAvailableValues()), 2);
     $soap_values = array(array('field_id' => 123, 'bind_value_id' => 101, 'bind_value_label' => 'bv label 1'), array('field_id' => 123, 'bind_value_id' => 102, 'bind_value_label' => 'bv label 2'));
     $this->assertEqual($static->getSoapAvailableValues(), $soap_values);
 }
 public function testImport()
 {
     $xml = simplexml_load_file(dirname(__FILE__) . '/_fixtures/ImportTrackerSemanticContributorTest.xml');
     $tracker = new MockTracker();
     $f1 = new MockTracker_FormElement_Field_List();
     $f1->setReturnValue('getId', 111);
     $f2 = new MockTracker_FormElement_Field_List();
     $f2->setReturnValue('getId', 112);
     $f3 = new MockTracker_FormElement_Field_List();
     $f3->setReturnValue('getId', 113);
     $mapping = array('F9' => $f1, 'F13' => $f2, 'F16' => $f3);
     $semantic_contributor = Tracker_Semantic_ContributorFactory::instance()->getInstanceFromXML($xml, $mapping, $tracker);
     $this->assertEqual($semantic_contributor->getShortName(), 'contributor');
     $this->assertEqual($semantic_contributor->getFieldId(), 112);
 }
 public function testExport()
 {
     $GLOBALS['Language'] = new MockBaseLanguage($this);
     $GLOBALS['Language']->setReturnValue('getText', 'Assigned to', array('plugin_tracker_admin_semantic', 'contributor_label'));
     $GLOBALS['Language']->setReturnValue('getText', 'Define the contributor of the artifact', array('plugin_tracker_admin_semantic', 'contributor_description'));
     $xml = simplexml_load_file(dirname(__FILE__) . '/_fixtures/ImportTrackerSemanticContributorTest.xml');
     $tracker = new MockTracker();
     $f = new MockTracker_FormElement_Field_List();
     $f->setReturnValue('getId', 102);
     $tst = new Tracker_Semantic_Contributor($tracker, $f);
     $root = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><tracker xmlns="http://codendi.org/tracker" />');
     $array_mapping = array('F13' => '102');
     $tst->exportToXML($root, $array_mapping);
     $this->assertEqual((string) $xml->shortname, (string) $root->semantic->shortname);
     $this->assertEqual((string) $xml->label, (string) $root->semantic->label);
     $this->assertEqual((string) $xml->description, (string) $root->semantic->description);
     $this->assertEqual((string) $xml->field['REF'], (string) $root->semantic->field['REF']);
 }
 public function testExport()
 {
     $GLOBALS['Language'] = new MockBaseLanguage($this);
     $GLOBALS['Language']->setReturnValue('getText', 'Status', array('plugin_tracker_admin_semantic', 'status_label'));
     $GLOBALS['Language']->setReturnValue('getText', 'Define the status of an artifact', array('plugin_tracker_admin_semantic', 'status_description'));
     $xml = simplexml_load_file(dirname(__FILE__) . '/_fixtures/ImportTrackerSemanticStatusTest.xml');
     $tracker = new MockTracker();
     $f = new MockTracker_FormElement_Field_List();
     $f->setReturnValue('getId', 103);
     $tst = new Tracker_Semantic_Status($tracker, $f, array(806, 807, 808, 809));
     $root = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><tracker xmlns="http://codendi.org/tracker" />');
     $array_xml_mapping = array('F14' => 103, 'values' => array('F14-V66' => 806, 'F14-V67' => 807, 'F14-V68' => 808, 'F14-V69' => 809));
     $tst->exportToXML($root, $array_xml_mapping);
     $this->assertEqual((string) $xml->shortname, (string) $root->semantic->shortname);
     $this->assertEqual((string) $xml->label, (string) $root->semantic->label);
     $this->assertEqual((string) $xml->description, (string) $root->semantic->description);
     $this->assertEqual((string) $xml->field['REF'], (string) $root->semantic->field['REF']);
     $this->assertEqual(count($xml->open_values), count($root->semantic->open_values));
 }
 public function testImport()
 {
     $xml = simplexml_load_file(dirname(__FILE__) . '/_fixtures/ImportTrackerSemanticStatusTest.xml');
     $tracker = new MockTracker();
     $f1 = new MockTracker_FormElement_Field_List();
     $f1->setReturnValue('getId', 111);
     $f2 = new MockTracker_FormElement_Field_List();
     $f2->setReturnValue('getId', 112);
     $f3 = new MockTracker_FormElement_Field_List();
     $f3->setReturnValue('getId', 113);
     $mapping = array('F9' => $f1, 'F14' => $f3, 'F13' => $f2, 'F14-V61' => 801, 'F14-V62' => 802, 'F14-V63' => 803, 'F14-V64' => 804, 'F14-V65' => 805, 'F14-V66' => 806, 'F14-V67' => 807, 'F14-V68' => 808, 'F14-V69' => 809);
     $semantic_status = Tracker_Semantic_StatusFactory::instance()->getInstanceFromXML($xml, $mapping, $tracker);
     $this->assertEqual($semantic_status->getShortName(), 'status');
     $this->assertEqual($semantic_status->getFieldId(), 113);
     $this->assertEqual(count($semantic_status->getOpenValues()), 4);
     $this->assertTrue(in_array(806, $semantic_status->getOpenValues()));
     $this->assertTrue(in_array(809, $semantic_status->getOpenValues()));
     $this->assertTrue(in_array(807, $semantic_status->getOpenValues()));
     $this->assertTrue(in_array(808, $semantic_status->getOpenValues()));
 }
 public function testGetRecipients()
 {
     //$recipients = array();
     //foreach ($changeset_value->getBindValues() as $user_value) {
     //    $recipients[] = $user_value->getUser()->getUserName();
     //}
     //return $recipients;
     //$user1 = mock('PFUser'); $user1->setReturnValue('getUserName', 'u1');
     //$user2 = mock('PFUser'); $user2->setReturnValue('getUserName', 'u2');
     $changeset_value = new MockTracker_Artifact_ChangesetValue_List();
     $changeset_value->setReturnValue('getListValues', array($u1 = new MockTracker_FormElement_Field_List_Bind_UsersValue(), $u2 = new MockTracker_FormElement_Field_List_Bind_UsersValue()));
     //$u1->setReturnReference('getUser', $user1);
     //$u2->setReturnReference('getUser', $user2);
     $u1->setReturnValue('getUsername', 'u1');
     $u2->setReturnValue('getUsername', 'u2');
     $field = new MockTracker_FormElement_Field_List();
     $field->setReturnValue('getId', 123);
     $value_function = 'project_members';
     $default_values = $decorators = '';
     $users = new Tracker_FormElement_Field_List_Bind_Users($field, $value_function, $default_values, $decorators);
     $this->assertEqual($users->getRecipients($changeset_value), array('u1', 'u2'));
 }
Esempio n. 8
0
 function testBeforeShouldTriggerTransitionActionsForNewArtifact()
 {
     $current_user = new MockUser();
     $f = new MockTracker_FormElement_Field_List();
     $f->setReturnValue('getId', 103);
     $v1 = new MockTracker_FormElement_Field_List_Value();
     $v2 = new MockTracker_FormElement_Field_List_Value();
     $v1->setReturnValue('getId', 801);
     $v2->setReturnValue('getId', 802);
     $t1 = new MockTransition();
     $t2 = new MockTransition();
     $t1->setReturnValue('getFieldValueFrom', null);
     $t1->setReturnReference('getFieldValueTo', $v1);
     $t2->setReturnReference('getFieldValueFrom', $v1);
     $t2->setReturnReference('getFieldValueTo', $v2);
     $c = new MockTracker_Artifact_Changeset_Null();
     $a = new MockTracker_Artifact();
     $a->setReturnValue('getLastChangeset', $c);
     $workflow_id = 1;
     $tracker_id = 2;
     $field_id = 103;
     $is_used = 1;
     $transitions = array($t1, $t2);
     $workflow = new Workflow($workflow_id, $tracker_id, $field_id, $is_used, $transitions);
     $workflow->setField($f);
     $workflow->setArtifact($a);
     $fields_data = array('103' => '801');
     $t1->expectOnce('before');
     $t2->expectNever('before', array($fields_data, $current_user));
     $workflow->before($fields_data, $current_user);
 }