76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\Ui\DataProvider;
 | 
						|
 | 
						|
use Magento\Framework\Api\AttributeInterface;
 | 
						|
use Magento\Framework\Api\Search\DocumentInterface;
 | 
						|
use Magento\Framework\Api\SearchCriteriaBuilder;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
class SearchResultFactoryTest extends TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var SearchCriteriaBuilder
 | 
						|
     */
 | 
						|
    private $searchCriteriaBuilder;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var SearchResultFactory
 | 
						|
     */
 | 
						|
    private $searchResultFactory;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $objectManager = Bootstrap::getObjectManager();
 | 
						|
 | 
						|
        $this->searchCriteriaBuilder = $objectManager->create(SearchCriteriaBuilder::class);
 | 
						|
        $this->searchResultFactory = $objectManager->create(SearchResultFactory::class);
 | 
						|
    }
 | 
						|
 | 
						|
    public function testCreate()
 | 
						|
    {
 | 
						|
        $idFieldName = 'id';
 | 
						|
        $idValue = 15;
 | 
						|
        $entities = [
 | 
						|
            new EntityFake($idValue, 'attribute_foo_value', 'attribute_bar_value'),
 | 
						|
        ];
 | 
						|
        $totalCount = 10;
 | 
						|
        $searchCriteria = $this->searchCriteriaBuilder->create();
 | 
						|
 | 
						|
        $searchResult = $this->searchResultFactory->create($entities, $totalCount, $searchCriteria, $idFieldName);
 | 
						|
        $items = $searchResult->getItems();
 | 
						|
        self::assertCount(1, $items);
 | 
						|
 | 
						|
        $document = $items[0];
 | 
						|
        self::assertInstanceOf(DocumentInterface::class, $document);
 | 
						|
        self::assertEquals($idValue, $document->getId());
 | 
						|
 | 
						|
        $attributeId = $document->getCustomAttribute($idFieldName);
 | 
						|
        self::assertInstanceOf(AttributeInterface::class, $attributeId);
 | 
						|
        self::assertEquals($idFieldName, $attributeId->getAttributeCode());
 | 
						|
        self::assertEquals($idValue, $attributeId->getValue());
 | 
						|
 | 
						|
        $attributeIdFieldName = $document->getCustomAttribute('id_field_name');
 | 
						|
        self::assertInstanceOf(AttributeInterface::class, $attributeIdFieldName);
 | 
						|
        self::assertEquals('id_field_name', $attributeIdFieldName->getAttributeCode());
 | 
						|
        self::assertEquals($idFieldName, $attributeIdFieldName->getValue());
 | 
						|
 | 
						|
        $attributeFoo = $document->getCustomAttribute('attribute_foo');
 | 
						|
        self::assertInstanceOf(AttributeInterface::class, $attributeFoo);
 | 
						|
        self::assertEquals('attribute_foo', $attributeFoo->getAttributeCode());
 | 
						|
        self::assertEquals('attribute_foo_value', $attributeFoo->getValue());
 | 
						|
 | 
						|
        $attributeBar = $document->getCustomAttribute('attribute_bar');
 | 
						|
        self::assertInstanceOf(AttributeInterface::class, $attributeBar);
 | 
						|
        self::assertEquals('attribute_bar', $attributeBar->getAttributeCode());
 | 
						|
        self::assertEquals('attribute_bar_value', $attributeBar->getValue());
 | 
						|
 | 
						|
        self::assertEquals($totalCount, $searchResult->getTotalCount());
 | 
						|
        self::assertEquals($searchCriteria, $searchResult->getSearchCriteria());
 | 
						|
    }
 | 
						|
}
 |