function testDoubleCaching() { $dao = new MockUserDao($this); $dar_123 = new MockDataAccessResult($this); $dao->setReturnReference('searchByUserId', $dar_123, array(123)); $dar_123->setReturnValueAt(0, 'getRow', array('user_name' => 'user_123', 'user_id' => 123)); $dar_123->setReturnValueAt(1, 'getRow', false); $dar_456 = new MockDataAccessResult($this); $dao->setReturnReference('searchByUserName', $dar_456, array('user_456')); $dar_456->setReturnValueAt(0, 'getRow', array('user_name' => 'user_456', 'user_id' => 456)); $dar_456->setReturnValueAt(1, 'getRow', false); $dao->expectOnce('searchByUserId', array(123)); $dao->expectOnce('searchByUserName', array('user_456')); $user123 = new MockUser($this); $user123->setReturnValue('getId', 123); $user123->setReturnValue('getUserName', 'user_123'); $user456 = new MockUser($this); $user456->setReturnValue('getId', 456); $user456->setReturnValue('getUserName', 'user_456'); $um = new UserManagerTestVersion($this); $um->setReturnReference('getUserInstanceFromRow', $user123, array(array('user_name' => 'user_123', 'user_id' => 123))); $um->setReturnReference('getUserInstanceFromRow', $user456, array(array('user_name' => 'user_456', 'user_id' => 456))); $um->setReturnReference('getDao', $dao); $user_1 = $um->getUserById(123); $user_2 = $um->getUserByUserName('user_123'); $this->assertReference($user_1, $user_2); $user_3 = $um->getUserByUserName('user_456'); $user_4 = $um->getuserById(456); $this->assertReference($user_3, $user_4); }
function testDoubleCaching() { $dao = mock('UserDao'); stub($dao)->searchByUserId(123)->returnsDar(array('user_name' => 'user_123', 'user_id' => 123)); stub($dao)->searchByUserName('user_456')->returnsDar(array('user_name' => 'user_456', 'user_id' => 456)); $dao->expectOnce('searchByUserId', array(123)); $dao->expectOnce('searchByUserName', array('user_456')); $user123 = mock('PFUser'); $user123->setReturnValue('getId', 123); $user123->setReturnValue('getUserName', 'user_123'); $user456 = mock('PFUser'); $user456->setReturnValue('getId', 456); $user456->setReturnValue('getUserName', 'user_456'); $um = new UserManagerTestVersion($this); $um->setReturnReference('getUserInstanceFromRow', $user123, array(array('user_name' => 'user_123', 'user_id' => 123))); $um->setReturnReference('getUserInstanceFromRow', $user456, array(array('user_name' => 'user_456', 'user_id' => 456))); $um->setReturnReference('getDao', $dao); $user_1 = $um->getUserById(123); $user_2 = $um->getUserByUserName('user_123'); $this->assertReference($user_1, $user_2); $user_3 = $um->getUserByUserName('user_456'); $user_4 = $um->getuserById(456); $this->assertReference($user_3, $user_4); }