/**
  * Tests EngineBlock_SocialData_FieldMapper->ldapToSocialData()
  */
 public function testLdapToSocialData()
 {
     // Check conversion of a record, without filtering.
     $ldapRecord = array("collabpersonid" => "urn:collab:surfnet.nl:hansz", "displayname" => "Hans Zandbelt");
     $socialRecord = $this->EngineBlock_SocialData_FieldMapper->ldapToSocialData($ldapRecord);
     $this->assertEquals(array("id" => "urn:collab:surfnet.nl:hansz", "displayName" => "Hans Zandbelt", "nickname" => "Hans Zandbelt"), $socialRecord);
     // Check converstion, filtering to only a single field
     // Check conversion of a record, without filtering.
     $ldapRecord = array("collabpersonid" => "urn:collab:surfnet.nl:hansz", "displayname" => "Hans Zandbelt");
     $socialRecord = $this->EngineBlock_SocialData_FieldMapper->ldapToSocialData($ldapRecord, array("nickname"));
     $this->assertEquals(array("nickname" => "Hans Zandbelt"), $socialRecord);
     // Check converstion, check conversion of single to multivalues
     // Check conversion of a record, without filtering.
     $ldapRecord = array("collabpersonid" => "urn:collab:surfnet.nl:hansz", "displayname" => array("Hans Zandbelt"), "mail" => "*****@*****.**");
     $socialRecord = $this->EngineBlock_SocialData_FieldMapper->ldapToSocialData($ldapRecord, array("displayName", "emails"));
     $this->assertEquals(array("displayName" => "Hans Zandbelt", "emails" => array("*****@*****.**")), $socialRecord);
     // Check if we cleanly handle nonsense keys (return empty array)
     $ldapRecord = array("collabpersonid" => "urn:collab:surfnet.nl:hansz");
     $socialRecord = $this->EngineBlock_SocialData_FieldMapper->ldapToSocialData($ldapRecord, array("batcaveVolume"));
     $this->assertEquals(count($socialRecord), 0);
 }
 protected function _getLdapUser($userId)
 {
     $mapper = new EngineBlock_SocialData_FieldMapper();
     $userDirectory = $this->_getUserDirectory();
     $users = $userDirectory->findUsersByIdentifier($userId);
     if (count($users) === 1) {
         $firstWarningSent = $users[0]['collabpersonfirstwarningsent'][0] === 'TRUE' ? true : false;
         $secondWarningSent = $users[0]['collabpersonsecondwarningsent'][0] === 'TRUE' ? true : false;
         $user = $mapper->ldapToSocialData(array_shift($users));
         // add first and second warning fields
         $user['firstWarningSent'] = $firstWarningSent;
         $user['secondWarningSent'] = $secondWarningSent;
         return $user;
     }
     return null;
 }