예제 #1
0
 /**
  * @param AbstractTypedAddress $address
  */
 public function updateAddressTypes(AbstractTypedAddress $address)
 {
     $addressTypes = $address->getTypes();
     foreach ($addressTypes as $index => $type) {
         $addressTypes->set($index, $this->updateAddressType($type->getName()));
     }
 }
예제 #2
0
 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());
 }
예제 #3
0
 /**
  * @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));
     }
 }
 /**
  * Only one address must be primary.
  *
  * @param AbstractTypedAddress $address
  * @param AbstractTypedAddress[] $allAddresses
  */
 protected function handlePrimary(AbstractTypedAddress $address, $allAddresses)
 {
     if ($address->isPrimary()) {
         /** @var AbstractTypedAddress[] $allAddresses */
         foreach ($allAddresses as $otherAddresses) {
             $otherAddresses->setPrimary(false);
         }
         $address->setPrimary(true);
     } elseif (count($allAddresses) == 1) {
         $address->setPrimary(true);
     }
 }
 /**
  * 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);
         }
     }
 }
 /**
  * Constructor
  *
  * The real implementation of this method is auto generated.
  *
  * IMPORTANT: If the derived class has own constructor it must call parent constructor.
  */
 public function __construct()
 {
     parent::__construct();
 }