Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CheckThemeIsAssignedObserverTest.php
Go to the documentation of this file.
1 <?php
8 
9 class CheckThemeIsAssignedObserverTest extends \PHPUnit\Framework\TestCase
10 {
14  protected $themeConfig;
15 
19  protected $eventDispatcher;
20 
24  protected $themeObserver;
25 
26  protected function setUp()
27  {
28  $this->themeConfig = $this->getMockBuilder(\Magento\Theme\Model\Config\Customization::class)
29  ->disableOriginalConstructor()
30  ->getMock();
31 
32  $this->eventDispatcher = $this->getMockBuilder(\Magento\Framework\Event\ManagerInterface::class)
33  ->disableOriginalConstructor()
34  ->getMockForAbstractClass();
35 
36  $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
37  $this->themeObserver = $objectManagerHelper->getObject(
38  \Magento\Theme\Observer\CheckThemeIsAssignedObserver::class,
39  [
40  'themeConfig' => $this->themeConfig,
41  'eventDispatcher' => $this->eventDispatcher,
42  ]
43  );
44  }
45 
46  public function testCheckThemeIsAssigned()
47  {
48  $themeMock = $this->getMockBuilder(
49  \Magento\Framework\View\Design\ThemeInterface::class
50  )->getMockForAbstractClass();
51 
52  $eventMock = $this->getMockBuilder(\Magento\Framework\Event::class)->disableOriginalConstructor()->getMock();
53  $eventMock->expects($this->any())->method('getData')->with('theme')->willReturn($themeMock);
54 
55  $observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
56  ->disableOriginalConstructor()
57  ->getMock();
58  $observerMock->expects($this->any())->method('getEvent')->willReturn($eventMock);
59 
60  $this->themeConfig->expects($this->any())->method('isThemeAssignedToStore')->with($themeMock)->willReturn(true);
61 
62  $this->eventDispatcher
63  ->expects($this->any())
64  ->method('dispatch')
65  ->with('assigned_theme_changed', ['theme' => $themeMock]);
66 
67  $result = $this->themeObserver->execute($observerMock);
68  $this->assertNull($result);
69  }
70 }