Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SearchResultFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
12 use PHPUnit\Framework\TestCase;
13 
14 class SearchResultFactoryTest extends TestCase
15 {
19  private $searchCriteriaBuilder;
20 
24  private $searchResultFactory;
25 
26  public function setUp()
27  {
29 
30  $this->searchCriteriaBuilder = $objectManager->create(SearchCriteriaBuilder::class);
31  $this->searchResultFactory = $objectManager->create(SearchResultFactory::class);
32  }
33 
34  public function testCreate()
35  {
36  $idFieldName = 'id';
37  $idValue = 15;
38  $entities = [
39  new EntityFake($idValue, 'attribute_foo_value', 'attribute_bar_value'),
40  ];
41  $totalCount = 10;
42  $searchCriteria = $this->searchCriteriaBuilder->create();
43 
44  $searchResult = $this->searchResultFactory->create($entities, $totalCount, $searchCriteria, $idFieldName);
45  $items = $searchResult->getItems();
46  self::assertCount(1, $items);
47 
48  $document = $items[0];
49  self::assertInstanceOf(DocumentInterface::class, $document);
50  self::assertEquals($idValue, $document->getId());
51 
52  $attributeId = $document->getCustomAttribute($idFieldName);
53  self::assertInstanceOf(AttributeInterface::class, $attributeId);
54  self::assertEquals($idFieldName, $attributeId->getAttributeCode());
55  self::assertEquals($idValue, $attributeId->getValue());
56 
57  $attributeIdFieldName = $document->getCustomAttribute('id_field_name');
58  self::assertInstanceOf(AttributeInterface::class, $attributeIdFieldName);
59  self::assertEquals('id_field_name', $attributeIdFieldName->getAttributeCode());
60  self::assertEquals($idFieldName, $attributeIdFieldName->getValue());
61 
62  $attributeFoo = $document->getCustomAttribute('attribute_foo');
63  self::assertInstanceOf(AttributeInterface::class, $attributeFoo);
64  self::assertEquals('attribute_foo', $attributeFoo->getAttributeCode());
65  self::assertEquals('attribute_foo_value', $attributeFoo->getValue());
66 
67  $attributeBar = $document->getCustomAttribute('attribute_bar');
68  self::assertInstanceOf(AttributeInterface::class, $attributeBar);
69  self::assertEquals('attribute_bar', $attributeBar->getAttributeCode());
70  self::assertEquals('attribute_bar_value', $attributeBar->getValue());
71 
72  self::assertEquals($totalCount, $searchResult->getTotalCount());
73  self::assertEquals($searchCriteria, $searchResult->getSearchCriteria());
74  }
75 }
$objectManager
Definition: bootstrap.php:17
$searchCriteria
$items