![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Backend/Model/Search/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Backend\Model\Search; use Magento\TestFramework\Helper\Bootstrap; /** * @magentoAppArea adminhtml * @magentoDataFixture Magento/Customer/_files/three_customers.php * @magentoDataFixture Magento/Customer/_files/customer_address.php */ class CustomerTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider loadDataProvider */ public function testLoad($query, $limit, $start, $expectedResult) { /** Preconditions */ $objectManager = Bootstrap::getObjectManager(); /** @var \Magento\Backend\Model\Search\Customer $customerSearch */ $customerSearch = $objectManager->create(\Magento\Backend\Model\Search\Customer::class); $customerSearch->setQuery($query); $customerSearch->setLimit($limit); $customerSearch->setStart($start); $customerSearch->load(); /** SUT Execution */ $searchResults = $customerSearch->getResults(); /** Ensure that search results are correct */ $this->assertCount(count($expectedResult), $searchResults, 'Quantity of search result items is invalid.'); foreach ($expectedResult as $itemIndex => $expectedItem) { /** Validate URL to item */ $customerId = substr($expectedItem['id'], 11); // 'customer/1/' is added to all actual customer IDs $this->assertStringContainsString( "customer/index/edit/id/$customerId", $searchResults[$itemIndex]['url'], 'Item URL is invalid.' ); unset($searchResults[$itemIndex]['url']); /** Validate other item data */ $this->assertEquals($expectedItem, $searchResults[$itemIndex], "Data of item #$itemIndex is invalid."); } } public static function loadDataProvider() { return [ 'All items, first page' => [ 'Firstname', 2, // Items on page 1, // Page number [ [ 'id' => 'customer/1/1', 'type' => 'Customer', 'name' => 'Firstname Lastname', 'description' => 'CompanyName', ], [ 'id' => 'customer/1/2', 'type' => 'Customer', 'name' => 'Firstname2 Lastname2', 'description' => null ] ], ], 'All items, second page' => [ 'Firstname', 2, // Items on page 2, // Page number [ [ 'id' => 'customer/1/3', 'type' => 'Customer', 'name' => 'Firstname3 Lastname3', 'description' => null, ] ], ], 'Search by last name, second item only' => [ 'Lastname2', 10, // Items on page 1, // Page number [ [ 'id' => 'customer/1/2', 'type' => 'Customer', 'name' => 'Firstname2 Lastname2', 'description' => null, ] ], ], 'No results' => [ 'NotExistingCustomerName', 10, // Items on page 1, // Page number [], ], 'Search by company name, first item only' => [ 'CompanyName', 10, // Items on page 1, // Page number [ [ 'id' => 'customer/1/1', 'type' => 'Customer', 'name' => 'Firstname Lastname', 'description' => 'CompanyName', ], ], ], ]; } }