AbstractSearchResultTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Data\Test\Unit;
  7. use \Magento\Framework\Data\AbstractSearchResult;
  8. /**
  9. * Class AbstractSearchResultTest
  10. */
  11. class AbstractSearchResultTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var AbstractSearchResult
  15. */
  16. protected $searchResult;
  17. /**
  18. * @var \Magento\Framework\DB\QueryInterface | \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $query;
  21. /**
  22. * @var \Magento\Framework\Data\Collection\EntityFactoryInterface | \PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $entityFactory;
  25. /**
  26. * @var \Magento\Framework\Api\CriteriaInterface | \PHPUnit_Framework_MockObject_MockObject
  27. */
  28. protected $criteria;
  29. /**
  30. * @var \PHPUnit_Framework_MockObject_MockObject
  31. */
  32. protected $eventManagerMock;
  33. /**
  34. * @var \PHPUnit_Framework_MockObject_MockObject
  35. */
  36. protected $searchResultIteratorMock;
  37. protected function setUp()
  38. {
  39. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  40. $this->criteria = $this->getMockForAbstractClass(\Magento\Framework\Api\CriteriaInterface::class);
  41. $this->query = $this->getMockForAbstractClass(\Magento\Framework\DB\QueryInterface::class);
  42. $this->query->expects($this->any())
  43. ->method('getCriteria')
  44. ->willReturn($this->criteria);
  45. $this->entityFactory = $this->getMockForAbstractClass(
  46. \Magento\Framework\Data\Collection\EntityFactoryInterface::class
  47. );
  48. $this->eventManagerMock = $this->getMockBuilder(\Magento\Framework\Event\ManagerInterface::class)
  49. ->disableOriginalConstructor()
  50. ->getMock();
  51. $this->searchResultIteratorMock = $this->getMockBuilder(
  52. \Magento\Framework\Data\SearchResultIteratorFactory::class
  53. )->disableOriginalConstructor()->getMock();
  54. $this->searchResult = $objectManager->getObject(
  55. \Magento\Framework\Data\Test\Unit\Stub\SearchResult::class,
  56. [
  57. 'query' => $this->query,
  58. 'entityFactory' => $this->entityFactory,
  59. 'eventManager' => $this->eventManagerMock,
  60. 'resultIteratorFactory' => $this->searchResultIteratorMock
  61. ]
  62. );
  63. }
  64. public function testGetItems()
  65. {
  66. $itemData = ['id' => 1];
  67. $testItem = new \Magento\Framework\DataObject($itemData);
  68. $this->query->expects($this->once())
  69. ->method('fetchAll')
  70. ->willReturn([$itemData]);
  71. $this->entityFactory->expects($this->once())
  72. ->method('create')
  73. ->with(\Magento\Framework\DataObject::class, ['data' => $itemData])
  74. ->willReturn($testItem);
  75. $items = $this->searchResult->getItems();
  76. $this->assertCount(1, $items);
  77. $this->assertEquals($testItem, end($items));
  78. }
  79. public function testGetTotalCount()
  80. {
  81. $totalCount = 42;
  82. $this->query->expects($this->once())
  83. ->method('getSize')
  84. ->willReturn($totalCount);
  85. $this->assertEquals($totalCount, $this->searchResult->getTotalCount());
  86. }
  87. public function testGetSearchCriteria()
  88. {
  89. $this->assertEquals($this->criteria, $this->searchResult->getSearchCriteria());
  90. }
  91. public function testGetSize()
  92. {
  93. $size = 42;
  94. $this->query->expects($this->once())
  95. ->method('getSize')
  96. ->willReturn($size);
  97. $this->assertEquals($size, $this->searchResult->getSize());
  98. }
  99. }