IndexTest.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Test\Unit\Controller\Index;
  7. class IndexTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Cms\Controller\Index\Index
  11. */
  12. protected $controller;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $cmsHelperMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $requestMock;
  21. /**
  22. * @var \Magento\Framework\Controller\Result\ForwardFactory|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $forwardFactoryMock;
  25. /**
  26. * @var \Magento\Framework\Controller\Result\Forward|\PHPUnit_Framework_MockObject_MockObject
  27. */
  28. protected $forwardMock;
  29. /**
  30. * @var \Magento\Framework\View\Result\Page|\PHPUnit_Framework_MockObject_MockObject
  31. */
  32. protected $resultPageMock;
  33. /**
  34. * @var string
  35. */
  36. protected $pageId = 'home';
  37. /**
  38. * Test setUp
  39. */
  40. protected function setUp()
  41. {
  42. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  43. $objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
  44. $responseMock = $this->createMock(\Magento\Framework\App\Response\Http::class);
  45. $this->resultPageMock = $this->getMockBuilder(\Magento\Framework\View\Result\Page::class)
  46. ->disableOriginalConstructor()
  47. ->getMock();
  48. $this->forwardFactoryMock = $this->getMockBuilder(\Magento\Framework\Controller\Result\ForwardFactory::class)
  49. ->setMethods(['create'])
  50. ->disableOriginalConstructor()
  51. ->getMock();
  52. $this->forwardMock = $this->getMockBuilder(\Magento\Framework\Controller\Result\Forward::class)
  53. ->disableOriginalConstructor()
  54. ->getMock();
  55. $this->forwardFactoryMock->expects($this->any())
  56. ->method('create')
  57. ->willReturn($this->forwardMock);
  58. $scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
  59. $this->requestMock = $this->createMock(\Magento\Framework\App\Request\Http::class);
  60. $this->cmsHelperMock = $this->createMock(\Magento\Cms\Helper\Page::class);
  61. $valueMap = [
  62. [\Magento\Framework\App\Config\ScopeConfigInterface::class,
  63. $scopeConfigMock,
  64. ],
  65. [\Magento\Cms\Helper\Page::class, $this->cmsHelperMock],
  66. ];
  67. $objectManagerMock->expects($this->any())->method('get')->willReturnMap($valueMap);
  68. $scopeConfigMock->expects($this->once())
  69. ->method('getValue')
  70. ->with(
  71. \Magento\Cms\Helper\Page::XML_PATH_HOME_PAGE,
  72. \Magento\Store\Model\ScopeInterface::SCOPE_STORE
  73. )
  74. ->willReturn($this->pageId);
  75. $this->controller = $helper->getObject(
  76. \Magento\Cms\Controller\Index\Index::class,
  77. [
  78. 'response' => $responseMock,
  79. 'objectManager' => $objectManagerMock,
  80. 'request' => $this->requestMock,
  81. 'resultForwardFactory' => $this->forwardFactoryMock,
  82. 'scopeConfig' => $scopeConfigMock,
  83. 'page' => $this->cmsHelperMock
  84. ]
  85. );
  86. }
  87. /**
  88. * Controller test
  89. */
  90. public function testExecuteResultPage()
  91. {
  92. $this->cmsHelperMock->expects($this->once())
  93. ->method('prepareResultPage')
  94. ->with($this->controller, $this->pageId)
  95. ->willReturn($this->resultPageMock);
  96. $this->assertSame($this->resultPageMock, $this->controller->execute());
  97. }
  98. /**
  99. * Controller test
  100. */
  101. public function testExecuteResultForward()
  102. {
  103. $this->forwardMock->expects($this->once())
  104. ->method('forward')
  105. ->with('defaultIndex')
  106. ->willReturnSelf();
  107. $this->assertSame($this->forwardMock, $this->controller->execute());
  108. }
  109. }