ViewTest.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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\Page;
  7. class ViewTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Cms\Controller\Page\View
  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 = '2';
  37. protected function setUp()
  38. {
  39. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  40. $objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
  41. $responseMock = $this->createMock(\Magento\Framework\App\Response\Http::class);
  42. $this->resultPageMock = $this->getMockBuilder(\Magento\Framework\View\Result\Page::class)
  43. ->disableOriginalConstructor()
  44. ->getMock();
  45. $this->forwardFactoryMock = $this->getMockBuilder(\Magento\Framework\Controller\Result\ForwardFactory::class)
  46. ->setMethods(['create'])
  47. ->disableOriginalConstructor()
  48. ->getMock();
  49. $this->forwardMock = $this->getMockBuilder(\Magento\Framework\Controller\Result\Forward::class)
  50. ->disableOriginalConstructor()
  51. ->getMock();
  52. $this->forwardFactoryMock->expects($this->any())
  53. ->method('create')
  54. ->willReturn($this->forwardMock);
  55. $this->requestMock = $this->createMock(\Magento\Framework\App\Request\Http::class);
  56. $this->cmsHelperMock = $this->createMock(\Magento\Cms\Helper\Page::class);
  57. $objectManagerMock->expects($this->once())->method('get')->willReturn($this->cmsHelperMock);
  58. $this->controller = $helper->getObject(
  59. \Magento\Cms\Controller\Page\View::class,
  60. [
  61. 'response' => $responseMock,
  62. 'objectManager' => $objectManagerMock,
  63. 'request' => $this->requestMock,
  64. 'resultForwardFactory' => $this->forwardFactoryMock
  65. ]
  66. );
  67. }
  68. public function testExecuteResultPage()
  69. {
  70. $this->requestMock->expects($this->atLeastOnce())
  71. ->method('getParam')
  72. ->willReturnMap(
  73. [
  74. ['page_id', $this->pageId, $this->pageId],
  75. ['id', false, $this->pageId]
  76. ]
  77. );
  78. $this->cmsHelperMock->expects($this->once())
  79. ->method('prepareResultPage')
  80. ->with($this->controller, $this->pageId)
  81. ->willReturn($this->resultPageMock);
  82. $this->assertSame($this->resultPageMock, $this->controller->execute());
  83. }
  84. public function testExecuteResultForward()
  85. {
  86. $this->requestMock->expects($this->atLeastOnce())
  87. ->method('getParam')
  88. ->willReturnMap(
  89. [
  90. ['page_id', $this->pageId, $this->pageId],
  91. ['id', false, $this->pageId]
  92. ]
  93. );
  94. $this->forwardMock->expects($this->once())
  95. ->method('forward')
  96. ->with('noroute')
  97. ->willReturnSelf();
  98. $this->assertSame($this->forwardMock, $this->controller->execute());
  99. }
  100. }