6 declare(strict_types=1);
13 use Magento\Customer\Api\Data\CustomerInterfaceFactory;
16 use Magento\Sales\Model\OrderFactory;
18 use PHPUnit\Framework\TestCase;
35 private $orderRepository;
40 private $customerFactory;
45 private $accountManagement;
50 private $orderFactory;
58 OrderCustomerDelegateInterface::class
61 OrderRepositoryInterface::class
64 CustomerInterfaceFactory::class
67 AccountManagementInterface::class
80 private function compareAddresses(
105 $this->assertEmpty(
$address->getRegionId());
132 public function testDelegateNew(): void
134 $orderAutoincrementId =
'100000001';
136 $orderModel = $this->orderFactory->create();
137 $orderModel->loadByIncrementId($orderAutoincrementId);
138 $orderId = (int)$orderModel->getId();
141 $this->delegate->delegateNew($orderId);
145 $customer = $this->customerFactory->create();
151 ->setFirstname(
'John')
153 ->setLastname(
'Smith')
157 $createdCustomer = $this->accountManagement->createAccount(
164 $order = $this->orderRepository->get($orderId);
165 $this->assertCount(1, $createdCustomer->getAddresses());
166 $this->assertNotNull($createdCustomer->getDefaultBilling());
167 $this->assertNotNull($createdCustomer->getDefaultShipping());
168 foreach ($createdCustomer->getAddresses() as
$address) {
178 $this->assertEquals(
$order->getCustomerId(), $createdCustomer->getId());
187 public function testDelegateNewDifferentAddresses(): void
189 $orderAutoincrementId =
'100000001';
191 $orderModel = $this->orderFactory->create();
192 $orderModel->loadByIncrementId($orderAutoincrementId);
193 $orderId = (int)$orderModel->getId();
196 $this->delegate->delegateNew($orderId);
200 $customer = $this->customerFactory->create();
206 ->setFirstname(
'John')
208 ->setLastname(
'Smith')
212 $createdCustomer = $this->accountManagement->createAccount(
219 $order = $this->orderRepository->get($orderId);
220 $this->assertCount(2, $createdCustomer->getAddresses());
221 $this->assertNotNull($createdCustomer->getDefaultBilling());
222 $this->assertNotNull($createdCustomer->getDefaultShipping());
223 foreach ($createdCustomer->getAddresses() as
$address) {
234 $this->assertEquals(
$order->getCustomerId(), $createdCustomer->getId());
elseif(isset( $params[ 'redirect_parent']))
static getObjectManager()