IndexTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Search\Test\Unit\Controller\Adminhtml\Term;
  8. use Magento\Framework\Controller\ResultFactory;
  9. use Magento\Backend\Model\View\Result\Page;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  11. use Magento\Framework\View\Page\Config;
  12. use Magento\Framework\View\Page\Title;
  13. use Magento\Search\Controller\Adminhtml\Term\Index;
  14. class IndexTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var ObjectManagerHelper
  18. */
  19. private $objectManagerHelper;
  20. /**
  21. * @var ResultFactory|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $resultFactoryMock;
  24. /**
  25. * @var Page|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. private $pageMock;
  28. /**
  29. * @var Config|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. private $pageConfigMock;
  32. /**
  33. * @var Title|\PHPUnit_Framework_MockObject_MockObject
  34. */
  35. private $titleMock;
  36. /**
  37. * @var Index
  38. */
  39. private $indexController;
  40. public function setUp()
  41. {
  42. $this->resultFactoryMock = $this->getMockBuilder(ResultFactory::class)
  43. ->disableOriginalConstructor()
  44. ->getMock();
  45. $this->pageMock = $this->getMockBuilder(Page::class)
  46. ->disableOriginalConstructor()
  47. ->getMock();
  48. $this->pageConfigMock = $this->getMockBuilder(Config::class)
  49. ->setMethods(['getTitle'])
  50. ->disableOriginalConstructor()
  51. ->getMock();
  52. $this->titleMock = $this->getMockBuilder(Title::class)
  53. ->disableOriginalConstructor()
  54. ->getMock();
  55. $this->objectManagerHelper = new ObjectManagerHelper($this);
  56. $this->indexController = $this->objectManagerHelper->getObject(
  57. Index::class,
  58. [
  59. 'resultFactory' => $this->resultFactoryMock
  60. ]
  61. );
  62. }
  63. public function testIndex()
  64. {
  65. $this->resultFactoryMock->expects($this->once())
  66. ->method('create')
  67. ->with(ResultFactory::TYPE_PAGE)
  68. ->willReturn($this->pageMock);
  69. $this->pageMock->expects($this->once())
  70. ->method('setActiveMenu')
  71. ->with('Magento_Search::search_terms')
  72. ->willReturnSelf();
  73. $this->pageMock->expects($this->exactly(2))
  74. ->method('addBreadcrumb')
  75. ->withConsecutive(
  76. [__('Search'), __('Search')],
  77. [__('Search'), __('Search')]
  78. );
  79. $this->pageMock->expects($this->once())
  80. ->method('getConfig')
  81. ->willReturn($this->pageConfigMock);
  82. $this->pageConfigMock->expects($this->once())->method('getTitle')->willReturn($this->titleMock);
  83. $this->titleMock->expects($this->once())
  84. ->method('prepend')
  85. ->with(__('Search Terms'))
  86. ->willReturn($this->pageMock);
  87. $this->assertSame($this->pageMock, $this->indexController->execute());
  88. }
  89. }