AutocompleteTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Search\Test\Unit\Model;
  7. use Magento\Search\Model\Autocomplete;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Search\Model\Autocomplete\DataProviderInterface;
  10. class AutocompleteTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var Autocomplete
  14. */
  15. private $model;
  16. /**
  17. * @var DataProviderInterface |\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $firstDataProvider;
  20. /**
  21. * @var DataProviderInterface |\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $secondDataProvider;
  24. protected function setUp()
  25. {
  26. $helper = new ObjectManager($this);
  27. $this->firstDataProvider = $this->getMockBuilder(\Magento\Search\Model\DataProviderInterface::class)
  28. ->disableOriginalConstructor()
  29. ->setMethods(['getItems'])
  30. ->getMock();
  31. $this->secondDataProvider = $this->getMockBuilder(\Magento\Search\Model\DataProviderInterface::class)
  32. ->disableOriginalConstructor()
  33. ->setMethods(['getItems'])
  34. ->getMock();
  35. $dataProviders = [
  36. '20' => $this->firstDataProvider,
  37. '10' => $this->secondDataProvider
  38. ];
  39. $this->model = $helper->getObject(
  40. \Magento\Search\Model\Autocomplete::class,
  41. ['dataProviders' => $dataProviders]
  42. );
  43. }
  44. public function testGetItems()
  45. {
  46. $firstItemMock = $this->getMockBuilder(\Magento\Search\Model\Autocomplete\Item::class)
  47. ->disableOriginalConstructor()
  48. ->setMockClassName('FirstItem')
  49. ->getMock();
  50. $secondItemMock = $this->getMockBuilder(\Magento\Search\Model\Autocomplete\Item::class)
  51. ->disableOriginalConstructor()
  52. ->setMockClassName('SecondItem')
  53. ->getMock();
  54. $this->firstDataProvider->expects($this->once())
  55. ->method('getItems')
  56. ->willReturn([$firstItemMock]);
  57. $this->secondDataProvider->expects($this->once())
  58. ->method('getItems')
  59. ->willReturn([$secondItemMock]);
  60. $this->assertEquals([$secondItemMock, $firstItemMock], $this->model->getItems());
  61. }
  62. }