SearchDataTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AdvancedSearch\Test\Unit\Block;
  7. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  8. class SearchDataTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /** @var \Magento\Framework\View\Element\Template\Context|MockObject */
  11. private $context;
  12. /**
  13. * @var \Magento\Search\Model\QueryFactoryInterface|MockObject
  14. */
  15. private $queryFactory;
  16. /**
  17. * @var \Magento\Search\Model\Query|MockObject
  18. */
  19. private $searchQuery;
  20. /**
  21. * @var \Magento\AdvancedSearch\Model\SuggestedQueriesInterface|MockObject
  22. */
  23. private $dataProvider;
  24. /**
  25. * @var \Magento\AdvancedSearch\Block\SearchData
  26. */
  27. private $block;
  28. protected function setUp()
  29. {
  30. $this->dataProvider = $this->getMockBuilder(\Magento\AdvancedSearch\Model\SuggestedQueriesInterface::class)
  31. ->disableOriginalConstructor()
  32. ->setMethods(['getItems', 'isResultsCountEnabled'])
  33. ->getMockForAbstractClass();
  34. $this->searchQuery = $this->getMockBuilder(\Magento\Search\Model\QueryInterface::class)
  35. ->disableOriginalConstructor()
  36. ->setMethods(['getQueryText'])
  37. ->getMockForAbstractClass();
  38. $this->queryFactory = $this->getMockBuilder(\Magento\Search\Model\QueryFactoryInterface::class)
  39. ->disableOriginalConstructor()
  40. ->setMethods(['get'])
  41. ->getMockForAbstractClass();
  42. $this->queryFactory->expects($this->once())
  43. ->method('get')
  44. ->will($this->returnValue($this->searchQuery));
  45. $this->context = $this->getMockBuilder(\Magento\Framework\View\Element\Template\Context::class)
  46. ->disableOriginalConstructor()
  47. ->getMock();
  48. $this->block = $this->getMockBuilder(\Magento\AdvancedSearch\Block\SearchData::class)->setConstructorArgs(
  49. [
  50. $this->context,
  51. $this->dataProvider,
  52. $this->queryFactory,
  53. 'Test Title',
  54. [],
  55. ]
  56. )
  57. ->setMethods(['getUrl'])
  58. ->getMockForAbstractClass();
  59. }
  60. public function testGetSuggestions()
  61. {
  62. $value = [1, 2, 3, 100500];
  63. $this->dataProvider->expects($this->once())
  64. ->method('getItems')
  65. ->with($this->searchQuery)
  66. ->will($this->returnValue($value));
  67. $actualValue = $this->block->getItems();
  68. $this->assertEquals($value, $actualValue);
  69. }
  70. public function testGetLink()
  71. {
  72. $searchQuery = 'Some test search query';
  73. $expectedResult = '?q=Some+test+search+query';
  74. $actualResult = $this->block->getLink($searchQuery);
  75. $this->assertEquals($expectedResult, $actualResult);
  76. }
  77. public function testIsShowResultsCount()
  78. {
  79. $value = 'qwertyasdfzxcv';
  80. $this->dataProvider->expects($this->once())
  81. ->method('isResultsCountEnabled')
  82. ->will($this->returnValue($value));
  83. $this->assertEquals($value, $this->block->isShowResultsCount());
  84. }
  85. }