SuggestedQueriesTest.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AdvancedSearch\Test\Unit\Model;
  7. use Magento\Framework\Search\EngineResolverInterface;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. use Magento\Framework\ObjectManagerInterface;
  10. class SuggestedQueriesTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\AdvancedSearch\Model\SuggestedQueries;
  14. */
  15. protected $model;
  16. /**
  17. * @var EngineResolverInterface|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $engineResolverMock;
  20. /**
  21. * @var ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $objectManagerMock;
  24. /**
  25. * @var ObjectManagerHelper
  26. */
  27. protected $objectManagerHelper;
  28. /**
  29. * Set up test environment.
  30. *
  31. * @return void
  32. */
  33. protected function setUp()
  34. {
  35. $this->engineResolverMock = $this->getMockBuilder(\Magento\Search\Model\EngineResolver::class)
  36. ->setMethods(['getCurrentSearchEngine'])
  37. ->disableOriginalConstructor()
  38. ->getMock();
  39. $this->engineResolverMock->expects($this->any())
  40. ->method('getCurrentSearchEngine')
  41. ->willReturn('my_engine');
  42. /**
  43. * @var \Magento\AdvancedSearch\Model\SuggestedQueriesInterface|
  44. * \PHPUnit_Framework_MockObject_MockObject
  45. */
  46. $suggestedQueriesMock = $this->createMock(\Magento\AdvancedSearch\Model\SuggestedQueriesInterface::class);
  47. $suggestedQueriesMock->expects($this->any())
  48. ->method('isResultsCountEnabled')
  49. ->willReturn(true);
  50. $suggestedQueriesMock->expects($this->any())
  51. ->method('getItems')
  52. ->willReturn([]);
  53. $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
  54. ->disableOriginalConstructor()
  55. ->getMock();
  56. $this->objectManagerMock->expects($this->any())
  57. ->method('create')
  58. ->with('search_engine')
  59. ->willReturn($suggestedQueriesMock);
  60. $this->objectManagerHelper = new ObjectManagerHelper($this);
  61. $this->model = $this->objectManagerHelper->getObject(
  62. \Magento\AdvancedSearch\Model\SuggestedQueries::class,
  63. [
  64. 'engineResolver' => $this->engineResolverMock,
  65. 'objectManager' => $this->objectManagerMock,
  66. 'data' => ['my_engine' => 'search_engine']
  67. ]
  68. );
  69. }
  70. /**
  71. * Test isResultsCountEnabled method.
  72. *
  73. * @return void
  74. */
  75. public function testIsResultsCountEnabled()
  76. {
  77. $result = $this->model->isResultsCountEnabled();
  78. $this->assertTrue($result);
  79. }
  80. /**
  81. * Test isResultsCountEnabled() method failure.
  82. * @expectedException \InvalidArgumentException
  83. *
  84. * @return void
  85. */
  86. public function testIsResultsCountEnabledException()
  87. {
  88. $objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
  89. ->disableOriginalConstructor()
  90. ->getMock();
  91. $objectManagerMock->expects($this->once())
  92. ->method('create')
  93. ->willReturn(null);
  94. $objectManagerHelper = new ObjectManagerHelper($this);
  95. /* @var $model \Magento\AdvancedSearch\Model\SuggestedQueries */
  96. $model = $objectManagerHelper->getObject(
  97. \Magento\AdvancedSearch\Model\SuggestedQueries::class,
  98. [
  99. 'engineResolver' => $this->engineResolverMock,
  100. 'objectManager' => $objectManagerMock,
  101. 'data' => ['my_engine' => 'search_engine']
  102. ]
  103. );
  104. $model->isResultsCountEnabled();
  105. }
  106. /**
  107. * Test testGetItems() method.
  108. *
  109. * @return void
  110. */
  111. public function testGetItems()
  112. {
  113. /** @var $queryInterfaceMock \Magento\Search\Model\QueryInterface */
  114. $queryInterfaceMock = $this->createMock(\Magento\Search\Model\QueryInterface::class);
  115. $result = $this->model->getItems($queryInterfaceMock);
  116. $this->assertEquals([], $result);
  117. }
  118. }