SearchResultFactoryTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Ui\DataProvider;
  7. use Magento\Framework\Api\AttributeInterface;
  8. use Magento\Framework\Api\Search\DocumentInterface;
  9. use Magento\Framework\Api\SearchCriteriaBuilder;
  10. use Magento\TestFramework\Helper\Bootstrap;
  11. use PHPUnit\Framework\TestCase;
  12. class SearchResultFactoryTest extends TestCase
  13. {
  14. /**
  15. * @var SearchCriteriaBuilder
  16. */
  17. private $searchCriteriaBuilder;
  18. /**
  19. * @var SearchResultFactory
  20. */
  21. private $searchResultFactory;
  22. public function setUp()
  23. {
  24. $objectManager = Bootstrap::getObjectManager();
  25. $this->searchCriteriaBuilder = $objectManager->create(SearchCriteriaBuilder::class);
  26. $this->searchResultFactory = $objectManager->create(SearchResultFactory::class);
  27. }
  28. public function testCreate()
  29. {
  30. $idFieldName = 'id';
  31. $idValue = 15;
  32. $entities = [
  33. new EntityFake($idValue, 'attribute_foo_value', 'attribute_bar_value'),
  34. ];
  35. $totalCount = 10;
  36. $searchCriteria = $this->searchCriteriaBuilder->create();
  37. $searchResult = $this->searchResultFactory->create($entities, $totalCount, $searchCriteria, $idFieldName);
  38. $items = $searchResult->getItems();
  39. self::assertCount(1, $items);
  40. $document = $items[0];
  41. self::assertInstanceOf(DocumentInterface::class, $document);
  42. self::assertEquals($idValue, $document->getId());
  43. $attributeId = $document->getCustomAttribute($idFieldName);
  44. self::assertInstanceOf(AttributeInterface::class, $attributeId);
  45. self::assertEquals($idFieldName, $attributeId->getAttributeCode());
  46. self::assertEquals($idValue, $attributeId->getValue());
  47. $attributeIdFieldName = $document->getCustomAttribute('id_field_name');
  48. self::assertInstanceOf(AttributeInterface::class, $attributeIdFieldName);
  49. self::assertEquals('id_field_name', $attributeIdFieldName->getAttributeCode());
  50. self::assertEquals($idFieldName, $attributeIdFieldName->getValue());
  51. $attributeFoo = $document->getCustomAttribute('attribute_foo');
  52. self::assertInstanceOf(AttributeInterface::class, $attributeFoo);
  53. self::assertEquals('attribute_foo', $attributeFoo->getAttributeCode());
  54. self::assertEquals('attribute_foo_value', $attributeFoo->getValue());
  55. $attributeBar = $document->getCustomAttribute('attribute_bar');
  56. self::assertInstanceOf(AttributeInterface::class, $attributeBar);
  57. self::assertEquals('attribute_bar', $attributeBar->getAttributeCode());
  58. self::assertEquals('attribute_bar_value', $attributeBar->getValue());
  59. self::assertEquals($totalCount, $searchResult->getTotalCount());
  60. self::assertEquals($searchCriteria, $searchResult->getSearchCriteria());
  61. }
  62. }