/**
  * A method to test get and getList method.
  */
 function testGetAndGetList()
 {
     $dllUserPartialMock = new PartialMockOA_Dll_User($this);
     $dllAgencyPartialMock = new PartialMockOA_Dll_Agency_UserTest($this);
     $dllAgencyPartialMock->setReturnValue('checkPermissions', true);
     $dllAgencyPartialMock->expectCallCount('checkPermissions', 1);
     $dllUserPartialMock->setReturnValue('checkPermissions', true);
     $dllUserPartialMock->expectCallCount('checkPermissions', 7);
     $oAgencyInfo = new OA_Dll_AgencyInfo();
     $oAgencyInfo->agencyName = 'agency name';
     $oAgencyInfo->password = '******';
     $this->assertTrue($dllAgencyPartialMock->modify($oAgencyInfo), $dllAgencyPartialMock->getLastError());
     $oUserInfo1 = new OA_Dll_UserInfo();
     $oUserInfo1->contactName = 'test name 1';
     $oUserInfo1->emailAddress = '*****@*****.**';
     $oUserInfo1->username = '******' . time();
     $oUserInfo1->password = '******';
     $oUserInfo1->defaultAccountId = $oAgencyInfo->accountId;
     $oUserInfo2 = new OA_Dll_UserInfo();
     $oUserInfo2->contactName = 'test name 2';
     $oUserInfo2->emailAddress = '*****@*****.**';
     $oUserInfo2->username = '******' . time();
     $oUserInfo2->password = '******';
     $oUserInfo2->defaultAccountId = $oAgencyInfo->accountId;
     // Add
     $this->assertTrue($dllUserPartialMock->modify($oUserInfo1), $dllUserPartialMock->getLastError());
     $this->assertTrue($dllUserPartialMock->modify($oUserInfo2), $dllUserPartialMock->getLastError());
     $oUserInfo1Get = null;
     $oUserInfo2Get = null;
     // Get
     $this->assertTrue($dllUserPartialMock->getUser($oUserInfo1->userId, $oUserInfo1Get), $dllUserPartialMock->getLastError());
     $this->assertTrue($dllUserPartialMock->getUser($oUserInfo2->userId, $oUserInfo2Get), $dllUserPartialMock->getLastError());
     // Check field value
     $this->assertFieldEqual($oUserInfo1, $oUserInfo1Get, 'contactName');
     $this->assertFieldEqual($oUserInfo1, $oUserInfo1Get, 'emailAddress');
     $this->assertFieldEqual($oUserInfo1, $oUserInfo1Get, 'username');
     $this->assertFieldEqual($oUserInfo1, $oUserInfo1Get, 'defaultAccountId');
     $this->assertFieldEqual($oUserInfo2, $oUserInfo2Get, 'contactName');
     $this->assertFieldEqual($oUserInfo2, $oUserInfo2Get, 'emailAddress');
     $this->assertFieldEqual($oUserInfo2, $oUserInfo2Get, 'username');
     $this->assertFieldEqual($oUserInfo2, $oUserInfo2Get, 'defaultAccountId');
     // Get List
     $aUserList = array();
     $this->assertTrue($dllUserPartialMock->getUserListByAccountId($oAgencyInfo->accountId, $aUserList), $dllUserPartialMock->getLastError());
     $this->assertEqual(count($aUserList) == 2, '2 records should be returned');
     $oUserInfo1Get = $aUserList[0];
     $oUserInfo2Get = $aUserList[1];
     if ($oUserInfo1->userId == $oUserInfo2Get->userId) {
         $oUserInfo1Get = $aUserList[1];
         $oUserInfo2Get = $aUserList[0];
     }
     // Check field value from list
     $this->assertFieldEqual($oUserInfo1, $oUserInfo1Get, 'username');
     $this->assertFieldEqual($oUserInfo2, $oUserInfo2Get, 'username');
     // Delete
     $this->assertTrue($dllUserPartialMock->delete($oUserInfo1->userId), $dllUserPartialMock->getLastError());
     // Get not existing id
     $this->assertTrue(!$dllUserPartialMock->getUser($oUserInfo1->userId, $oUserInfo1Get) && $dllUserPartialMock->getLastError() == OA_Dll_User::ERROR_UNKNOWN_USER_ID, $this->_getMethodShouldReturnError(OA_Dll_User::ERROR_UNKNOWN_USER_ID));
     $dllAgencyPartialMock->tally();
     $dllUserPartialMock->tally();
 }