magento2-docker/dev/tests/integration/testsuite/Magento/Customer/Block/Account/DashboardTest.php

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());
}
}