NoRouteObserverTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Test\Unit\Observer;
  7. class NoRouteObserverTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Cms\Observer\NoRouteObserver
  11. */
  12. protected $noRouteObserver;
  13. /**
  14. * @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $observerMock;
  17. /**
  18. * @var \Magento\Framework\Event|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $eventMock;
  21. /**
  22. * @var \Magento\Framework\DataObject|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $objectMock;
  25. protected function setUp()
  26. {
  27. $this->observerMock = $this
  28. ->getMockBuilder(\Magento\Framework\Event\Observer::class)
  29. ->disableOriginalConstructor()
  30. ->getMock();
  31. $this->eventMock = $this
  32. ->getMockBuilder(\Magento\Framework\Event::class)
  33. ->setMethods(
  34. [
  35. 'getStatus',
  36. 'getRedirect',
  37. ]
  38. )
  39. ->disableOriginalConstructor()
  40. ->getMock();
  41. $this->objectMock = $this
  42. ->getMockBuilder(\Magento\Framework\DataObject::class)
  43. ->setMethods(
  44. [
  45. 'setLoaded',
  46. 'setForwardModule',
  47. 'setForwardController',
  48. 'setForwardAction',
  49. 'setRedirectUrl',
  50. 'setRedirect',
  51. 'setPath',
  52. 'setArguments',
  53. ]
  54. )
  55. ->disableOriginalConstructor()
  56. ->getMock();
  57. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  58. $this->noRouteObserver = $objectManager->getObject(
  59. \Magento\Cms\Observer\NoRouteObserver::class,
  60. []
  61. );
  62. }
  63. /**
  64. * @covers \Magento\Cms\Observer\NoRouteObserver::execute
  65. */
  66. public function testNoRoute()
  67. {
  68. $this->observerMock
  69. ->expects($this->atLeastOnce())
  70. ->method('getEvent')
  71. ->willReturn($this->eventMock);
  72. $this->eventMock
  73. ->expects($this->atLeastOnce())
  74. ->method('getStatus')
  75. ->willReturn($this->objectMock);
  76. $this->objectMock
  77. ->expects($this->atLeastOnce())
  78. ->method('setLoaded')
  79. ->with(true)
  80. ->willReturnSelf();
  81. $this->objectMock
  82. ->expects($this->atLeastOnce())
  83. ->method('setForwardModule')
  84. ->with('cms')
  85. ->willReturnSelf();
  86. $this->objectMock
  87. ->expects($this->atLeastOnce())
  88. ->method('setForwardController')
  89. ->with('index')
  90. ->willReturnSelf();
  91. $this->objectMock
  92. ->expects($this->atLeastOnce())
  93. ->method('setForwardAction')
  94. ->with('noroute')
  95. ->willReturnSelf();
  96. $this->assertEquals($this->noRouteObserver, $this->noRouteObserver->execute($this->observerMock));
  97. }
  98. }