public function testRemoveType() { $type = new AddressType('testAddressType'); $this->address->addType($type); $this->assertCount(1, $this->address->getTypes()); $this->address->removeType($type); $this->assertEmpty($this->address->getTypes()->toArray()); }
/** * @param AbstractTypedAddress $address */ public function updateAddressTypes(AbstractTypedAddress $address) { $addressTypes = $address->getTypes(); foreach ($addressTypes as $index => $type) { $addressTypes->set($index, $this->updateAddressType($type->getName())); } }
/** * Two addresses must not have same types * * @param AbstractTypedAddress $address * @param AbstractTypedAddress[] $allAddresses */ protected function handleType(AbstractTypedAddress $address, $allAddresses) { $types = $address->getTypes()->toArray(); if (count($types)) { foreach ($allAddresses as $otherAddresses) { foreach ($types as $type) { $otherAddresses->removeType($type); } } foreach ($types as $type) { $address->addType($type); } } }