/**
  * Prepare customer address for assert.
  *
  * @param PaypalCustomer $customer
  * @return string
  */
 protected function prepareCustomerAddress(PaypalCustomer $customer)
 {
     /** @var PaypalAddress $customerAddress */
     $customerAddress = $customer->getDataFieldConfig('address')['source']->getAddresses()[0];
     $availableFields = [];
     foreach ($this->addressPattern as $key => $lineItems) {
         foreach ($lineItems as $lineItem) {
             if ($customerAddress->hasData($lineItem)) {
                 $availableFields[$key][] = $customerAddress->getData($lineItem);
             }
         }
         $availableFields[$key] = $key === 'implode_with_comma' ? implode(', ', $availableFields[$key]) : implode(' ', $availableFields[$key]);
     }
     $availableFields = implode("\n", $availableFields);
     return $availableFields;
 }
 /**
  * Select customer address.
  *
  * @param PaypalCustomer $customer
  * @return void
  */
 protected function selectCustomerAddress(PaypalCustomer $customer)
 {
     $reviewBlock = $this->paypalPage->getReviewBlock();
     if ($reviewBlock->checkChangeAddressAbility()) {
         $address = $customer->getDataFieldConfig('address')['source']->getAddresses()[0];
         $reviewBlock->getAddressesBlock()->selectAddress($address);
         $reviewBlock->waitLoader();
     }
 }