public function itCleansUserFromRecipientsWhenUserHasUnsubscribedFromArtifact()
 {
     $artifact = mock('Tracker_Artifact');
     $current_changeset = new Tracker_Artifact_ChangesetTestVersion();
     $um = new MockUserManager();
     $current_changeset->setReturnReference('getUserManager', $um);
     $current_changeset->setReturnReference('getArtifact', $artifact);
     $recipients = array("recipient1" => true, "recipient2" => true, "recipient3" => true);
     $user1 = stub('PFUser')->getUserName()->returns('recipient1');
     $user2 = stub('PFUser')->getUserName()->returns('recipient2');
     $user3 = stub('PFUser')->getUserName()->returns('recipient3');
     $um->setReturnReference('getUserByUserName', $user1);
     $um->setReturnReference('getUserByUserName', $user2);
     $um->setReturnReference('getUserByUserName', $user3);
     $user1->setReturnValue('getId', 101);
     $user2->setReturnValue('getId', 102);
     $user3->setReturnValue('getId', 103);
     $unsubscribers = array(101, 102, 103);
     $artifact->setReturnValue('getUnsubscribersIds', $unsubscribers);
     $current_changeset->removeRecipientsThatHaveUnsubscribedArtifactNotification($recipients);
     $this->assertEqual($recipients, array());
 }
 function testNotifyStopped()
 {
     $changeset = new Tracker_Artifact_ChangesetTestVersion();
     $tracker = new MockTracker();
     $tracker->setReturnValue('isNotificationStopped', true);
     $changeset->setReturnReference('getTracker', $tracker);
     $changeset->expectNever('getFormElementFactory');
     $changeset->expectNever('sendNotification');
     $changeset->notify();
 }