116 lines
4.0 KiB
PHP
Executable File
116 lines
4.0 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Customer\Block\Account;
|
|
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
|
|
class DashboardTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/** @var Dashboard */
|
|
private $block;
|
|
|
|
/** @var \Magento\Customer\Model\Session */
|
|
private $customerSession;
|
|
|
|
/** @var \Magento\Customer\Api\CustomerRepositoryInterface */
|
|
private $customerRepository;
|
|
|
|
/**
|
|
* Execute per test initialization.
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
$this->customerSession = Bootstrap::getObjectManager()->get(\Magento\Customer\Model\Session::class);
|
|
$this->customerRepository = Bootstrap::getObjectManager()->get(
|
|
\Magento\Customer\Api\CustomerRepositoryInterface::class
|
|
);
|
|
|
|
$this->block = Bootstrap::getObjectManager()->get(
|
|
\Magento\Framework\View\LayoutInterface::class
|
|
)->createBlock(
|
|
\Magento\Customer\Block\Account\Dashboard::class,
|
|
'',
|
|
[
|
|
'customerSession' => $this->customerSession,
|
|
'customerRepository' => $this->customerRepository
|
|
]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Execute per test cleanup.
|
|
*/
|
|
protected function tearDown(): void
|
|
{
|
|
$this->customerSession->setCustomerId(null);
|
|
|
|
/** @var \Magento\Customer\Model\CustomerRegistry $customerRegistry */
|
|
$customerRegistry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
|
|
->get(\Magento\Customer\Model\CustomerRegistry::class);
|
|
//Cleanup customer from registry
|
|
$customerRegistry->remove(1);
|
|
}
|
|
|
|
/**
|
|
* Verify that the Dashboard::getCustomer() method returns a valid Customer Data.
|
|
*
|
|
* @magentoDataFixture Magento/Customer/_files/customer.php
|
|
*/
|
|
public function testGetCustomer()
|
|
{
|
|
$customer = $this->customerRepository->getById(1);
|
|
$this->customerSession->setCustomerId(1);
|
|
$object = $this->block->getCustomer();
|
|
$this->assertEquals($customer, $object);
|
|
$this->assertInstanceOf(\Magento\Customer\Api\Data\CustomerInterface::class, $object);
|
|
}
|
|
|
|
/**
|
|
* Verify that the specified customer has neither a default billing no shipping address.
|
|
*
|
|
* @magentoDataFixture Magento/Customer/_files/customer_no_address.php
|
|
*/
|
|
public function testGetPrimaryAddressesNoAddresses()
|
|
{
|
|
$this->customerSession->setCustomerId(5);
|
|
$this->assertFalse($this->block->getPrimaryAddresses());
|
|
}
|
|
|
|
/**
|
|
* Verify that the specified customer has the same default billing and shipping address.
|
|
*
|
|
* @magentoDataFixture Magento/Customer/_files/customer.php
|
|
* @magentoDataFixture Magento/Customer/_files/customer_address.php
|
|
*/
|
|
public function testGetPrimaryAddressesBillingShippingSame()
|
|
{
|
|
$customer = $this->customerRepository->getById(1);
|
|
$this->customerSession->setCustomerId(1);
|
|
$addresses = $this->block->getPrimaryAddresses();
|
|
$this->assertCount(1, $addresses);
|
|
$address = $addresses[0];
|
|
$this->assertInstanceOf(\Magento\Customer\Api\Data\AddressInterface::class, $address);
|
|
$this->assertEquals((int)$customer->getDefaultBilling(), $address->getId());
|
|
$this->assertEquals((int)$customer->getDefaultShipping(), $address->getId());
|
|
}
|
|
|
|
/**
|
|
* Verify that the specified customer has different default billing and shipping addresses.
|
|
*
|
|
* @magentoDataFixture Magento/Customer/_files/customer.php
|
|
* @magentoDataFixture Magento/Customer/_files/customer_primary_addresses.php
|
|
*/
|
|
public function testGetPrimaryAddressesBillingShippingDifferent()
|
|
{
|
|
$this->customerSession->setCustomerId(1);
|
|
$addresses = $this->block->getPrimaryAddresses();
|
|
$this->assertCount(2, $addresses);
|
|
$this->assertNotEquals($addresses[0], $addresses[1]);
|
|
$this->assertTrue($addresses[0]->isDefaultBilling());
|
|
$this->assertTrue($addresses[1]->isDefaultShipping());
|
|
}
|
|
}
|