예제 #1
0
 public function testGetGroupLabels()
 {
     $entity = new Contact();
     $this->assertEquals(array(), $entity->getGroupLabels());
     $groupOne = new Group('Group One');
     $entity->addGroup($groupOne);
     $this->assertEquals(array('Group One'), $entity->getGroupLabels());
     $groupTwo = new Group('Group Two');
     $entity->addGroup($groupTwo);
     $this->assertEquals(array('Group One', 'Group Two'), $entity->getGroupLabels());
     $entity->removeGroup($groupOne);
     $this->assertEquals(array('Group Two'), $entity->getGroupLabels());
 }
예제 #2
0
 /**
  * @param Contact $entity
  */
 protected function processMultipleRelations(Contact $entity)
 {
     // update groups
     foreach ($entity->getGroups() as $group) {
         $entity->removeGroup($group);
         if ($group = $this->findExistingEntity($group)) {
             $entity->addGroup($group);
         }
     }
     // clear accounts
     foreach ($entity->getAccounts() as $account) {
         $entity->removeAccount($account);
     }
     // update addresses
     /** @var ContactAddress $contactAddress */
     foreach ($entity->getAddresses() as $contactAddress) {
         // update address types
         foreach ($contactAddress->getTypes() as $addressType) {
             $contactAddress->removeType($addressType);
             $existingAddressType = $this->findExistingEntity($addressType);
             if ($existingAddressType) {
                 $contactAddress->addType($existingAddressType);
             }
         }
     }
 }