コード例 #1
0
 /**
  * @magentoDataFixture Magento/Customer/_files/customer.php
  * @magentoDataFixture Magento/Customer/_files/customer_address.php
  * @expectedException \Magento\Framework\Exception\NoSuchEntityException
  */
 public function testRemove()
 {
     $addressId = 1;
     $address = $this->_model->retrieve($addressId);
     $this->assertInstanceOf('\\Magento\\Customer\\Model\\Address', $address);
     $address->delete();
     $this->_model->remove($addressId);
     $this->_model->retrieve($addressId);
 }
コード例 #2
0
 public function testRemove()
 {
     $addressId = 1;
     $address = $this->getMockBuilder('\\Magento\\Customer\\Model\\Address')->disableOriginalConstructor()->setMethods(['load', 'getId', '__wakeup'])->getMock();
     $address->expects($this->exactly(2))->method('load')->with($addressId)->will($this->returnValue($address));
     $address->expects($this->exactly(2))->method('getId')->will($this->returnValue($addressId));
     $this->addressFactory->expects($this->exactly(2))->method('create')->will($this->returnValue($address));
     $actual = $this->unit->retrieve($addressId);
     $this->assertEquals($address, $actual);
     $this->unit->remove($addressId);
     $actual = $this->unit->retrieve($addressId);
     $this->assertEquals($address, $actual);
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function saveAddresses($customerId, $addresses)
 {
     $customerModel = $this->customerRegistry->retrieve($customerId);
     $addressModels = [];
     $inputException = new InputException();
     for ($i = 0; $i < count($addresses); $i++) {
         $address = $addresses[$i];
         $addressModel = null;
         if ($address->getId()) {
             $addressModel = $customerModel->getAddressItemById($address->getId());
         }
         if (is_null($addressModel)) {
             $addressModel = $this->addressConverter->createAddressModel($address);
             $addressModel->setCustomer($customerModel);
         } else {
             $this->addressConverter->updateAddressModel($addressModel, $address);
         }
         $inputException = $this->_validate($addressModel, $inputException, $i);
         $addressModels[] = $addressModel;
     }
     $this->customerRegistry->remove($customerId);
     if ($inputException->wasErrorAdded()) {
         throw $inputException;
     }
     $addressIds = array();
     /** @var \Magento\Customer\Model\Address $addressModel */
     foreach ($addressModels as $addressModel) {
         $addressModel->save();
         $this->addressRegistry->remove($addressModel->getId());
         $addressIds[] = $addressModel->getId();
     }
     return $addressIds;
 }
コード例 #4
0
ファイル: AddressRepository.php プロジェクト: nja78/magento2
 /**
  * Delete customer address by ID.
  *
  * @param int $addressId
  * @return bool true on success
  * @throws \Magento\Framework\Exception\NoSuchEntityException
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function deleteById($addressId)
 {
     $address = $this->addressRegistry->retrieve($addressId);
     $customerModel = $this->customerRegistry->retrieve($address->getCustomerId());
     $customerModel->getAddressesCollection()->clear();
     $this->addressResource->delete($address);
     $this->addressRegistry->remove($addressId);
     return true;
 }
コード例 #5
0
 public function testDeleteById()
 {
     $addressId = 12;
     $customerId = 43;
     $this->address->expects($this->once())->method('getCustomerId')->willReturn($customerId);
     $addressCollection = $this->getMock('Magento\\Customer\\Model\\ResourceModel\\Address\\Collection', [], [], '', false);
     $this->addressRegistry->expects($this->once())->method('retrieve')->with($addressId)->willReturn($this->address);
     $this->customerRegistry->expects($this->once())->method('retrieve')->with($customerId)->willReturn($this->customer);
     $this->customer->expects($this->once())->method('getAddressesCollection')->willReturn($addressCollection);
     $addressCollection->expects($this->once())->method('clear');
     $this->addressResourceModel->expects($this->once())->method('delete')->with($this->address);
     $this->addressRegistry->expects($this->once())->method('remove')->with($addressId);
     $this->assertTrue($this->repository->deleteById($addressId));
 }
コード例 #6
0
 /**
  * {@inheritdoc}
  */
 public function deleteCustomer($customerId)
 {
     $customerModel = $this->customerRegistry->retrieve($customerId);
     foreach ($customerModel->getAddresses() as $addressModel) {
         $this->addressRegistry->remove($addressModel->getId());
     }
     $customerModel->delete();
     $this->customerRegistry->remove($customerId);
     return true;
 }