/** * Returns true if and only if $value meets the validation requirements * * If $value fails validation, then this method returns false, and * getMessages() will return an array of messages that explain why the * validation failed. * * @param \Magento\Quote\Model\Quote\Address $value * @return boolean * @throws Zend_Validate_Exception If validation of $value is impossible */ public function isValid($value) { $messages = []; $email = $value->getEmail(); if (!empty($email) && !\Zend_Validate::is($email, 'EmailAddress')) { $messages['invalid_email_format'] = 'Invalid email format'; } $countryId = $value->getCountryId(); if (!empty($countryId)) { $country = $this->countryFactory->create(); $country->load($countryId); if (!$country->getId()) { $messages['invalid_country_code'] = 'Invalid country code'; } } $this->_addMessages($messages); return empty($messages); }
/** * Import customer address to quote address */ public function testImportCustomerAddressDataWithCustomer() { $customerIdFromFixture = 1; $customerEmailFromFixture = '*****@*****.**'; $city = 'TestCity'; $street = 'Street1'; /** @var \Magento\Customer\Api\Data\AddressInterfaceFactory $addressFactory */ $addressFactory = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\Data\\AddressInterfaceFactory'); /** @var \Magento\Customer\Api\AddressRepositoryInterface $addressRepository */ $addressRepository = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\AddressRepositoryInterface'); $addressData = $addressFactory->create()->setCustomerId($customerIdFromFixture)->setFirstname('John')->setLastname('Doe')->setTelephone('123456')->setPostcode('12345')->setCountryId(1)->setCity($city)->setStreet([$street]); $addressData = $addressRepository->save($addressData); $this->_address->setQuote($this->_quote); $this->_address->importCustomerAddressData($addressData); $this->assertEquals($customerEmailFromFixture, $this->_address->getEmail(), 'Email was imported incorrectly.'); $this->assertEquals($city, $this->_address->getCity(), 'City was imported incorrectly.'); $this->assertEquals($street, $this->_address->getStreetFull(), 'Imported street is invalid.'); }