![]() 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/Sales/_files/order.php * @magentoDataFixture Magento/Sales/_files/order_shipping_address_different_to_billing.php */ class OrderTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider loadDataProvider */ public function testLoad($query, $limit, $start, $expectedResult) { /** @var $order \Magento\Sales\Model\Order */ $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Sales\Model\Order::class); $orderIdByIncrementId = []; foreach (['100000001', '100000002', '100000003'] as $incrementId) { $orderIdByIncrementId[$incrementId] = $order->loadByIncrementId($incrementId)->getId(); } /** Preconditions */ $objectManager = Bootstrap::getObjectManager(); /** @var \Magento\Backend\Model\Search\Order $orderSearch */ $orderSearch = $objectManager->create(\Magento\Backend\Model\Search\Order::class); $orderSearch->setQuery($query); $orderSearch->setLimit($limit); $orderSearch->setStart($start); $orderSearch->load(); /** SUT Execution */ $searchResults = $orderSearch->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 */ $orderIncrementId = substr($expectedItem['id'], strlen('order/1/#')); $this->assertStringContainsString( "order/view/order_id/{$orderIdByIncrementId[$orderIncrementId]}", $searchResults[$itemIndex]['url'], 'Item URL is invalid.' ); $expectedItem['id'] = 'order/1/' . $orderIdByIncrementId[$orderIncrementId]; unset($searchResults[$itemIndex]['url']); /** Validate other item data */ foreach ($expectedItem as $field => $value) { $this->assertEquals( $value, (string)$searchResults[$itemIndex][$field], "Data of item #$itemIndex is invalid." ); } } } public static function loadDataProvider() { return [ 'All items, first page' => [ '10000000', 2, // Items on page 1, // Page number [ [ 'id' => 'order/1/#100000001', 'type' => 'Order', 'name' => 'Order #100000001', 'description' => 'firstname lastname', ], [ 'id' => 'order/1/#100000002', 'type' => 'Order', 'name' => 'Order #100000002', 'description' => 'guest guest' ] ], ], 'All items, second page' => [ '10000000', 2, // Items on page 2, // Page number [ [ 'id' => 'order/1/#100000003', 'type' => 'Order', 'name' => 'Order #100000003', 'description' => 'guest guest', ] ], ], 'Search by first name, first item only' => [ 'First', 10, // Items on page 1, // Page number [ [ 'id' => 'order/1/#100000001', 'type' => 'Order', 'name' => 'Order #100000001', 'description' => 'firstname lastname', ] ], ], 'No results' => [ 'NotExistingOrder', 10, // Items on page 1, // Page number [], ], 'Search by last name, first item only' => [ 'last', 10, // Items on page 1, // Page number [ [ 'id' => 'order/1/#100000001', 'type' => 'Order', 'name' => 'Order #100000001', 'description' => 'firstname lastname', ] ], ], ]; } }