objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_customerSession = $this->objectManager->get(\Magento\Customer\Model\Session::class); $this->_block = $this->objectManager->get(\Magento\Framework\View\LayoutInterface::class) ->createBlock( \Magento\Customer\Block\Account\Dashboard\Address::class, '', ['customerSession' => $this->_customerSession] ); $this->objectManager->get(\Magento\Framework\App\ViewInterface::class)->setIsLayoutLoaded(true); } protected function tearDown() { $this->_customerSession->unsCustomerId(); /** @var \Magento\Customer\Model\CustomerRegistry $customerRegistry */ $customerRegistry = $this->objectManager->get(\Magento\Customer\Model\CustomerRegistry::class); //Cleanup customer from registry $customerRegistry->remove(1); } /** * @magentoDataFixture Magento/Customer/_files/customer.php */ public function testGetCustomer() { $objectManager = Bootstrap::getObjectManager(); $layout = $objectManager->get(\Magento\Framework\View\LayoutInterface::class); $layout->setIsCacheable(false); /** @var CustomerRepositoryInterface $customerRepository */ $customerRepository = $objectManager ->get(\Magento\Customer\Api\CustomerRepositoryInterface::class); $customer = $customerRepository->getById(1); $this->_customerSession->setCustomerId(1); $object = $this->_block->getCustomer(); $this->assertEquals($customer, $object); $layout->setIsCacheable(true); } public function testGetCustomerMissingCustomer() { $moduleManager = $this->objectManager->get(\Magento\Framework\Module\Manager::class); if ($moduleManager->isEnabled('Magento_PageCache')) { $customerDataFactory = $this->objectManager->create( \Magento\Customer\Api\Data\CustomerInterfaceFactory::class ); $customerData = $customerDataFactory->create()->setGroupId($this->_customerSession->getCustomerGroupId()); $this->assertEquals($customerData, $this->_block->getCustomer()); } else { $this->assertNull($this->_block->getCustomer()); } } /** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Customer/_files/customer_two_addresses.php * @magentoDataFixture Magento/Customer/_files/customer_no_address.php * @dataProvider getPrimaryShippingAddressHtmlDataProvider */ public function testGetPrimaryShippingAddressHtml($customerId, $expected) { // todo: this test is sensitive to caching impact if (!empty($customerId)) { $this->_customerSession->setCustomerId($customerId); } $html = $this->_block->getPrimaryShippingAddressHtml(); $this->assertEquals($expected, $html); } public function getPrimaryShippingAddressHtmlDataProvider() { $expected = "John Smith
\nCompanyName
\nGreen str, 67
\n\n\n\nCityM, Alabama, 75477
" . "\nUnited States
\nT: 3468676\n\n"; return [ '0' => [0, 'You have not set a default shipping address.'], '1' => [1, $expected], '5' => [5, 'You have not set a default shipping address.'] ]; } /** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Customer/_files/customer_two_addresses.php * @magentoDataFixture Magento/Customer/_files/customer_no_address.php * @dataProvider getPrimaryBillingAddressHtmlDataProvider */ public function testGetPrimaryBillingAddressHtml($customerId, $expected) { if (!empty($customerId)) { $this->_customerSession->setCustomerId($customerId); } $html = $this->_block->getPrimaryBillingAddressHtml(); $this->assertEquals($expected, $html); } public function getPrimaryBillingAddressHtmlDataProvider() { $expected = "John Smith
\nCompanyName
\nGreen str, 67
\n\n\n\nCityM, Alabama, 75477
" . "\nUnited States
\nT: 3468676\n\n"; return [ '0' => [0, 'You have not set a default billing address.'], '1' => [1, $expected], '5' => [5, 'You have not set a default billing address.'], ]; } /** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Customer/_files/customer_two_addresses.php * @magentoDataFixture Magento/Customer/_files/customer_no_address.php * @dataProvider getPrimaryAddressEditUrlDataProvider */ public function testGetPrimaryShippingAddressEditUrl($customerId, $expected) { if (!empty($customerId)) { $this->_customerSession->setCustomerId($customerId); } $url = $this->_block->getPrimaryShippingAddressEditUrl(); $this->assertEquals($expected, $url); } /** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Customer/_files/customer_two_addresses.php * @magentoDataFixture Magento/Customer/_files/customer_no_address.php * @dataProvider getPrimaryAddressEditUrlDataProvider */ public function testGetPrimaryBillingAddressEditUrl($customerId, $expected) { if (!empty($customerId)) { $this->_customerSession->setCustomerId($customerId); } $url = $this->_block->getPrimaryBillingAddressEditUrl(); $this->assertEquals($expected, $url); } public function getPrimaryAddressEditUrlDataProvider() { return [ '1' => [1, 'http://localhost/index.php/customer/address/edit/id/1/'], ]; } }