DepersonalizePluginTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\PageCache\Test\Unit\Model\Layout;
  7. /**
  8. * Class DepersonalizePluginTest
  9. */
  10. class DepersonalizePluginTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\PageCache\Model\Layout\DepersonalizePlugin
  14. */
  15. protected $plugin;
  16. /**
  17. * @var \Magento\Framework\View\LayoutInterface|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $layoutMock;
  20. /**
  21. * @var \Magento\Framework\Event\Manager|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $eventManagerMock;
  24. /**
  25. * @var \Magento\Framework\Message\Session|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. protected $messageSessionMock;
  28. /**
  29. * @var \Magento\PageCache\Model\DepersonalizeChecker|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. protected $depersonalizeCheckerMock;
  32. /**
  33. * SetUp
  34. */
  35. protected function setUp()
  36. {
  37. $this->layoutMock = $this->createMock(\Magento\Framework\View\Layout::class);
  38. $this->eventManagerMock = $this->createMock(\Magento\Framework\Event\Manager::class);
  39. $this->messageSessionMock = $this->createPartialMock(
  40. \Magento\Framework\Message\Session::class,
  41. ['clearStorage']
  42. );
  43. $this->depersonalizeCheckerMock = $this->createMock(\Magento\PageCache\Model\DepersonalizeChecker::class);
  44. $this->plugin = new \Magento\PageCache\Model\Layout\DepersonalizePlugin(
  45. $this->depersonalizeCheckerMock,
  46. $this->eventManagerMock,
  47. $this->messageSessionMock
  48. );
  49. }
  50. public function testAfterGenerateXml()
  51. {
  52. $expectedResult = $this->createMock(\Magento\Framework\View\Layout::class);
  53. $this->eventManagerMock->expects($this->once())
  54. ->method('dispatch')
  55. ->with($this->equalTo('depersonalize_clear_session'));
  56. $this->messageSessionMock->expects($this->once())->method('clearStorage');
  57. $this->depersonalizeCheckerMock->expects($this->once())->method('checkIfDepersonalize')->willReturn(true);
  58. $actualResult = $this->plugin->afterGenerateXml($this->layoutMock, $expectedResult);
  59. $this->assertEquals($expectedResult, $actualResult);
  60. }
  61. public function testAfterGenerateXmlNoDepersonalize()
  62. {
  63. $this->depersonalizeCheckerMock->expects($this->once())->method('checkIfDepersonalize')->willReturn(false);
  64. $this->eventManagerMock->expects($this->never())
  65. ->method('dispatch');
  66. $this->messageSessionMock->expects($this->never())->method('clearStorage');
  67. $expectedResult = $this->createMock(\Magento\Framework\View\Layout::class);
  68. $actualResult = $this->plugin->afterGenerateXml($this->layoutMock, $expectedResult);
  69. $this->assertEquals($expectedResult, $actualResult);
  70. }
  71. }