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()); }
/** * @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); } } } }