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')); }
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); }