public function getProfiles(array $uids, array $domainKeys, array $propertyNames) { if (count($uids) != count($domainKeys)) { throw new Exception('[UserProfileServiceImpl] each uid must be associated with a domain id.'); } $plist = array(); for ($k = 0; $k < count($uids); $k++) { $uid = $uids[$k]; $did = $domainKeys[$k]; $p = Api_Dao_Profile::getProfile($uid, $did, $propertyNames); if ($p == NULL) { throw new Exception("[UserProfileServiceImpl] could not find profile for uid={$uid}, domainId={$did}."); } $plist[] = $p; } return $plist; }
public function testDao() { $u = new RingsideUser(); $u->id = -1; $u->username = '******'; $u->password = md5('goats'); $this->assertTrue($u->trySave()); $uid = $u->getIncremented(); include 'LocalSettings.php'; $domainId = $networkKey; $props = $this->getTestUserData(); $this->assertTrue(Api_Dao_Profile::createProfile($uid, $domainId, $props)); $nprops = array_keys($props); $p = Api_Dao_Profile::getProfile($uid, $domainId, $nprops); //print_r($p); //check all the values to make sure the input properties //are the same as the retrieved output properties $this->assertEquals($uid, $p['user_id']); foreach ($props as $pname => $pval) { if (!is_array($pval)) { $this->assertEquals($pval, $p[$pname], "Failed comparing '{$pname}': expected='{$pval}', actual='{$p[$pname]}'"); } else { foreach ($pval as $indx => $obj) { $this->assertTrue(array_key_exists('id', $p[$pname][$indx])); foreach ($obj as $aname => $aval) { if ($aname != 'id' && $aname != 'domain_id') { $this->assertEquals($aval, $p[$pname][$indx][$aname], "Failed comparing '{$pname}.{$aname}': expected='{$aval}', actual='{$p[$pname][$aname]}'"); } } } } } //update with some new values $schoolId = $p['schools'][0]['id']; $newProps = array(); $newProps['activities'] = 'mas cabras, mas rapido.'; $s1 = array(); $s1['id'] = $schoolId; $s1['grad_year'] = '1966'; $s1['concentrations'] = 'log tossing'; $newProps['schools'] = array($s1); $this->assertTrue(Api_Dao_Profile::updateProfile($uid, $domainId, $newProps)); $p = Api_Dao_Profile::getProfile($uid, $domainId, $nprops); //print_r($p); $this->assertEquals($newProps['activities'], $p['activities']); $this->assertEquals($newProps['schools'][0]['id'], $schoolId); $this->assertEquals($newProps['schools'][0]['grad_year'], $s1['grad_year']); $this->assertEquals($newProps['schools'][0]['concentrations'], $s1['concentrations']); //now delete that particular school $newProps = array(); $s1 = array(); $s1['id'] = $schoolId; $s1['delete'] = true; $newProps['schools'] = array($s1); $this->assertTrue(Api_Dao_Profile::updateProfile($uid, $domainId, $newProps)); $p = Api_Dao_Profile::getProfile($uid, $domainId, $nprops); $this->assertEquals(1, count($newProps['schools'][0]['id'])); $this->assertTrue(Api_Dao_Profile::deleteProfile($uid, $domainId)); $this->assertTrue($u->delete()); }