ResultPageBuilderTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Search\Test\Unit\Controller\Adminhtml\Synonyms;
  7. use Magento\Backend\Model\View\Result\Page;
  8. use Magento\Framework\Message\ManagerInterface;
  9. use Magento\Framework\Search\EngineResolverInterface;
  10. use Magento\Framework\Search\SearchEngine\ConfigInterface;
  11. use Magento\Framework\View\Result\PageFactory;
  12. use Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder;
  13. class ResultPageBuilderTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /** @var ResultPageBuilder */
  16. private $model;
  17. /** @var PageFactory|\PHPUnit_Framework_MockObject_MockObject */
  18. private $resultPageFactoryMock;
  19. /** @var EngineResolverInterface|\PHPUnit_Framework_MockObject_MockObject */
  20. private $engineResolverMock;
  21. /** @var ConfigInterface|\PHPUnit_Framework_MockObject_MockObject */
  22. private $searchFeatureConfigMock;
  23. /** @var ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */
  24. private $messageManagerMock;
  25. protected function setUp()
  26. {
  27. $this->resultPageFactoryMock = $this->getMockBuilder(PageFactory::class)
  28. ->disableOriginalConstructor()
  29. ->getMock();
  30. $this->engineResolverMock = $this->getMockBuilder(EngineResolverInterface::class)
  31. ->getMockForAbstractClass();
  32. $this->searchFeatureConfigMock = $this->getMockBuilder(ConfigInterface::class)
  33. ->getMockForAbstractClass();
  34. $this->messageManagerMock = $this->getMockBuilder(ManagerInterface::class)
  35. ->getMockForAbstractClass();
  36. $this->model = new ResultPageBuilder(
  37. $this->resultPageFactoryMock,
  38. $this->engineResolverMock,
  39. $this->searchFeatureConfigMock,
  40. $this->messageManagerMock
  41. );
  42. }
  43. public function testBuild()
  44. {
  45. $currentEngine = 'current_engine';
  46. $this->engineResolverMock->expects($this->once())
  47. ->method('getCurrentSearchEngine')
  48. ->willReturn($currentEngine);
  49. $this->searchFeatureConfigMock->expects($this->once())
  50. ->method('isFeatureSupported')
  51. ->with(ConfigInterface::SEARCH_ENGINE_FEATURE_SYNONYMS, $currentEngine)
  52. ->willReturn(true);
  53. $this->messageManagerMock->expects($this->never())
  54. ->method('addNoticeMessage');
  55. $resultPageMock = $this->getMockBuilder(Page::class)
  56. ->disableOriginalConstructor()
  57. ->getMock();
  58. $this->resultPageFactoryMock->expects($this->once())
  59. ->method('create')
  60. ->willReturn($resultPageMock);
  61. $this->assertEquals($resultPageMock, $this->model->build());
  62. }
  63. public function testBuildWithDisabledEngine()
  64. {
  65. $currentEngine = 'current_engine';
  66. $this->engineResolverMock->expects($this->once())
  67. ->method('getCurrentSearchEngine')
  68. ->willReturn($currentEngine);
  69. $this->searchFeatureConfigMock->expects($this->once())
  70. ->method('isFeatureSupported')
  71. ->with(ConfigInterface::SEARCH_ENGINE_FEATURE_SYNONYMS, $currentEngine)
  72. ->willReturn(false);
  73. $this->messageManagerMock->expects($this->once())
  74. ->method('addNoticeMessage');
  75. $resultPageMock = $this->getMockBuilder(Page::class)
  76. ->disableOriginalConstructor()
  77. ->getMock();
  78. $this->resultPageFactoryMock->expects($this->once())
  79. ->method('create')
  80. ->willReturn($resultPageMock);
  81. $this->assertEquals($resultPageMock, $this->model->build());
  82. }
  83. }