function testTransitionIsInvalidOnSubmit() { $artifact = new MockTracker_Artifact(); $changeset = new MockTracker_Artifact_Changeset_Null(); $bind = new MockTracker_FormElement_Field_List_Bind_Static(); $workflow = new MockWorkflow(); $tracker = new MockTracker(); $user = mock('PFUser'); $v1 = new MockTracker_FormElement_Field_List_BindValue(); $v1->setReturnValue('__toString', '# 123'); $v1->setReturnValue('getLabel', 'label1'); $submitted_value_1 = '123'; // $v1 $v2 = new MockTracker_FormElement_Field_List_BindValue(); $v2->setReturnValue('__toString', '# 456'); $v2->setReturnValue('getLabel', 'label2'); $submitted_value_2 = '456'; // $v2 $artifact->setReturnReference('getLastChangeset', $changeset); $bind->setReturnReference('getValue', $v2, array($submitted_value_2)); // null -> v1 // v1 -> v2 // other are invalid $workflow->setReturnValue('isTransitionExist', true, array(null, $v1)); $workflow->setReturnValue('isTransitionExist', true, array($v1, $v2)); $workflow->setReturnValue('isTransitionExist', false); $field_list = new $this->field_class(); $field_list->setReturnReference('getBind', $bind); $field_list->setReturnValue('fieldHasEnableWorkflow', true); $field_list->setReturnReference('getWorkflow', $workflow); $field_list->setReturnReference('getTracker', $tracker); $field_list->setReturnValue('permission_is_authorized', true); $field_list->setReturnValue('getCurrentUser', $user); $field_list->setReturnValue('getTransitionId', 1); $field_list->setReturnValue('isNone', false); $field_list->setReturnValue('isRequired', false); $changeset->setReturnReference('getValue', $changeset_value_list, array($field_list)); // We try to change the field from null to v2 => invalid $this->assertFalse($field_list->isValid($artifact, $submitted_value_2)); }