AddressTest.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Customer\Model;
  7. class AddressTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Customer\Model\Address
  11. */
  12. protected $addressModel;
  13. /**
  14. * @var \Magento\Customer\Api\Data\AddressInterfaceFactory
  15. */
  16. protected $addressFactory;
  17. protected function setUp()
  18. {
  19. $this->addressModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  20. \Magento\Customer\Model\Address::class
  21. );
  22. $this->addressFactory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  23. \Magento\Customer\Api\Data\AddressInterfaceFactory::class
  24. );
  25. }
  26. public function testUpdateDataSetDataOnEmptyModel()
  27. {
  28. /** @var \Magento\Customer\Model\Data\Address $addressData */
  29. $addressData = $this->addressFactory->create()
  30. ->setId(1)
  31. ->setCity('CityX')
  32. ->setCompany('CompanyX')
  33. ->setPostcode('77777');
  34. $addressData = $this->addressModel->updateData($addressData)->getDataModel();
  35. $this->assertEquals(1, $addressData->getId());
  36. $this->assertEquals('CityX', $addressData->getCity());
  37. $this->assertEquals('CompanyX', $addressData->getCompany());
  38. $this->assertEquals('77777', $addressData->getPostcode());
  39. }
  40. public function testUpdateDataOverrideExistingData()
  41. {
  42. /** @var \Magento\Customer\Model\Data\Address $addressData */
  43. $addressData = $this->addressFactory->create()
  44. ->setId(2)
  45. ->setCity('CityY')
  46. ->setCompany('CompanyY')
  47. ->setPostcode('88888');
  48. $this->addressModel->updateData($addressData);
  49. /** @var \Magento\Customer\Model\Data\Address $addressData */
  50. $updatedAddressData = $this->addressFactory->create()
  51. ->setId(3)
  52. ->setCity('CityZ')
  53. ->setCompany('CompanyZ')
  54. ->setPostcode('99999');
  55. $updatedAddressData = $this->addressModel->updateData($updatedAddressData)->getDataModel();
  56. $this->assertEquals(3, $updatedAddressData->getId());
  57. $this->assertEquals('CityZ', $updatedAddressData->getCity());
  58. $this->assertEquals('CompanyZ', $updatedAddressData->getCompany());
  59. $this->assertEquals('99999', $updatedAddressData->getPostcode());
  60. }
  61. /**
  62. * @magentoDataFixture Magento/Customer/_files/customer_sample.php
  63. */
  64. public function testUpdateDataForExistingCustomer()
  65. {
  66. /** @var \Magento\Customer\Model\CustomerRegistry $customerRegistry */
  67. $customerRegistry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(CustomerRegistry::class);
  68. /** @var \Magento\Customer\Model\Data\Address $addressData */
  69. $updatedAddressData = $this->addressFactory->create()
  70. ->setId(1)
  71. ->setCustomerId($customerRegistry->retrieveByEmail('customer@example.com')->getId())
  72. ->setCity('CityZ')
  73. ->setCompany('CompanyZ')
  74. ->setPostcode('99999');
  75. $updatedAddressData = $this->addressModel->updateData($updatedAddressData)->getDataModel();
  76. $this->assertEquals(1, $updatedAddressData->getId());
  77. $this->assertEquals('CityZ', $updatedAddressData->getCity());
  78. $this->assertEquals('CompanyZ', $updatedAddressData->getCompany());
  79. $this->assertEquals('99999', $updatedAddressData->getPostcode());
  80. $this->assertEquals(true, $updatedAddressData->isDefaultBilling());
  81. $this->assertEquals(true, $updatedAddressData->isDefaultShipping());
  82. }
  83. }