public function testIsEmpty() { $this->assertTrue($this->address->isEmpty()); $this->address->setPrimary(true); $this->assertFalse($this->address->isEmpty()); $this->address->setPrimary(false); $this->address->addType(new AddressType('billing')); $this->assertFalse($this->address->isEmpty()); }
/** * @param AbstractTypedAddress $localAddress * @param AbstractTypedAddress $remoteAddress */ public function mergeAddressTypes(AbstractTypedAddress $localAddress, AbstractTypedAddress $remoteAddress) { $newAddressTypes = array_diff($remoteAddress->getTypeNames(), $localAddress->getTypeNames()); $deletedAddressTypes = array_diff($localAddress->getTypeNames(), $remoteAddress->getTypeNames()); foreach ($deletedAddressTypes as $addressType) { $localAddress->removeType($localAddress->getTypeByName($addressType)); } foreach ($newAddressTypes as $addressType) { $localAddress->addType($remoteAddress->getTypeByName($addressType)); } }
/** * 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); } } }