function testDontCreateNewChangesetIfNoCommentOrNoChanges() { $this->language->setReturnValue('getText', 'no changes', array('plugin_tracker_artifact', 'no_changes', '*')); $this->response->expectNever('addFeedback'); $comment_dao = new MockTracker_Artifact_Changeset_CommentDao(); $comment_dao->expectNever('createNewVersion'); $dao = new MockTracker_Artifact_ChangesetDao(); $dao->expectNever('create'); $user = mock('PFUser'); $user->setReturnValue('getId', 1234); $user->setReturnValue('isAnonymous', false); $tracker = new MockTracker(); $tracker->setReturnValue('getFormElements', array()); $factory = new MockTracker_FormElementFactory(); $field1 = new MockTracker_FormElement_Field(); $field1->setReturnValue('getId', 101); $field1->setReturnValue('isValid', true); $field1->setReturnValue('isValidRegardingRequiredProperty', true); $field1->setReturnValue('userCanUpdate', true); $field1->expectNever('saveNewChangeset'); $field2 = new MockTracker_FormElement_Field(); $field2->setReturnValue('getId', 102); $field2->setReturnValue('isValid', true); $field2->setReturnValue('isValidRegardingRequiredProperty', true); $field2->setReturnValue('userCanUpdate', true); $field2->expectNever('saveNewChangeset'); $field3 = new MockTracker_FormElement_Field(); $field3->setReturnValue('getId', 103); $field3->setReturnValue('isValid', true); $field3->setReturnValue('isValidRegardingRequiredProperty', true); $field3->setReturnValue('userCanUpdate', true); $field3->expectNever('saveNewChangeset'); $factory->setReturnValue('getUsedFields', array($field1, $field2, $field3)); $factory->setReturnValue('getAllFormElementsForTracker', array()); $changeset = new MockTracker_Artifact_Changeset(); $changeset->setReturnValue('hasChanges', false); $changeset->setReturnValue('getValues', array()); $changeset_value1 = new MockTracker_Artifact_ChangesetValue(); $changeset_value2 = new MockTracker_Artifact_ChangesetValue(); $changeset_value3 = new MockTracker_Artifact_ChangesetValue(); $changeset->setReturnReference('getValue', $changeset_value1, array($field1)); $changeset->setReturnReference('getValue', $changeset_value2, array($field2)); $changeset->setReturnReference('getValue', $changeset_value3, array($field3)); $artifact = new Tracker_ArtifactTestVersion(); $artifact->setReturnReference('getChangesetDao', $dao); $artifact->setReturnReference('getChangesetCommentDao', $comment_dao); $artifact->setReturnReference('getFormElementFactory', $factory); $artifact->setReturnReference('getArtifactFactory', mock('Tracker_ArtifactFactory')); $artifact->setReturnReference('getReferenceManager', mock('ReferenceManager')); $artifact->setReturnReference('getTracker', $tracker); $artifact->setReturnValue('getId', 66); $artifact->setReturnReference('getLastChangeset', $changeset); $workflow = new MockWorkflow(); $workflow->expectNever('before'); $workflow->setReturnValue('validate', true); $artifact->setReturnValue('getWorkflow', $workflow); $email = null; //not annonymous user $comment = ''; //empty comment // Valid $fields_data = array(); $this->expectException('Tracker_NoChangeException'); $artifact->createNewChangeset($fields_data, $comment, $user); }