function testStoreEventsDoNotOverrideUsers() { $listeningUsers = new ArrayIterator(array(array('user_id' => 1, 'object_id' => 1), array('user_id' => 2, 'object_id' => 1), array('user_id' => 3, 'object_id' => 1))); $user1 = mock('PFUser'); $user1->setReturnValue('getId', 1); $user2 = mock('PFUser'); $user2->setReturnValue('getId', 2); $user3 = mock('PFUser'); $user3->setReturnValue('getId', 3); $um = new MockUserManager(); $um->setReturnValueAt(0, 'getUserById', $user1); $um->setReturnValueAt(1, 'getUserById', $user2); $um->setReturnValueAt(2, 'getUserById', $user3); $dpm = new MockDocman_PermissionsManager(); $dpm->setReturnValue('userCanRead', true); $dpm->setReturnValue('userCanAccess', true); $item = new MockDocman_Item(); $item->setReturnValue('getId', 1); $params = array('item' => $item); $nm = new Docman_NotificationsManager_DeleteTestVersion(); $nm->setReturnValue('_getListeningUsers', $listeningUsers); $nm->setReturnValue('_getUserManager', $um); $nm->setReturnValue('_getPermissionsManager', $dpm); $nm->_listeners = array(); $nm->_storeEvents(1, 'removed', $params); $this->assertEqual($user1, $nm->_listeners[1]['user']); $this->assertEqual($user2, $nm->_listeners[2]['user']); $this->assertEqual($user3, $nm->_listeners[3]['user']); }