ExceptionsTest.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Theme\Test\Unit\Model\Design\Backend;
  7. use Magento\Framework\Serialize\Serializer\Json;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Framework\App\Area;
  10. class ExceptionsTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Theme\Model\Design\Backend\Exceptions
  14. */
  15. protected $model;
  16. /**
  17. * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $contextMock;
  20. /**
  21. * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $designMock;
  24. protected function setUp()
  25. {
  26. $this->contextMock = $this->getMockBuilder(\Magento\Framework\Model\Context::class)
  27. ->disableOriginalConstructor()
  28. ->getMock();
  29. $this->designMock = $this->getMockBuilder(\Magento\Framework\View\DesignInterface::class)->getMock();
  30. $this->contextMock->expects($this->once())
  31. ->method('getEventDispatcher')
  32. ->willReturn($this->getMockBuilder(\Magento\Framework\Event\ManagerInterface::class)->getMock());
  33. $serializerMock = $this->getMockBuilder(Json::class)->getMock();
  34. $this->model = (new ObjectManager($this))->getObject(
  35. \Magento\Theme\Model\Design\Backend\Exceptions::class,
  36. [
  37. 'context' => $this->contextMock,
  38. 'design' => $this->designMock,
  39. 'serializer' => $serializerMock,
  40. ]
  41. );
  42. }
  43. /**
  44. * @test
  45. * @return void
  46. * @covers \Magento\Theme\Model\Design\Backend\Exceptions::beforeSave
  47. * @covers \Magento\Theme\Model\Design\Backend\Exceptions::_composeRegexp
  48. * @covers \Magento\Theme\Model\Design\Backend\Exceptions::_isRegexp
  49. * @covers \Magento\Theme\Model\Design\Backend\Exceptions::__construct
  50. */
  51. public function testBeforeSave()
  52. {
  53. $value = ['test' => ['search' => '1qwe', 'value' => '#val#', 'regexp' => '[a-zA-Z0-9]*']];
  54. $this->designMock->expects($this->once())
  55. ->method('setDesignTheme')
  56. ->with('#val#', Area::AREA_FRONTEND);
  57. $this->model->setValue($value);
  58. $this->model->beforeSave();
  59. }
  60. public function testAfterLoad()
  61. {
  62. $this->model->setValue(
  63. [
  64. [
  65. 'value' => 'value',
  66. 'search' => 'qwe',
  67. 'record_id' => 1
  68. ],
  69. ]
  70. );
  71. $this->model->afterLoad();
  72. $this->assertEquals(
  73. [
  74. [
  75. 'value' => 'value',
  76. 'search' => 'qwe',
  77. ],
  78. ],
  79. $this->model->getValue()
  80. );
  81. }
  82. }