33 $this->themeConfig = $this->getMockBuilder(\
Magento\Theme\Model\Config\Customization::class)
34 ->disableOriginalConstructor()
37 $this->themeImageFactory = $this->getMockBuilder(\
Magento\Framework\View\Design\Theme\ImageFactory::class)
38 ->setMethods([
'create',
'removePreviewImage'])
39 ->disableOriginalConstructor()
42 $this->updateCollection = $this->getMockBuilder(
44 )->setMethods([
'addThemeFilter',
'delete'])
45 ->disableOriginalConstructor()
48 $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
49 $this->themeObserver = $objectManagerHelper->getObject(
50 \
Magento\Theme\Observer\CleanThemeRelatedContentObserver::class,
52 'themeConfig' => $this->themeConfig,
53 'themeImageFactory' => $this->themeImageFactory,
54 'updateCollection' => $this->updateCollection,
61 $themeMock = $this->getMockBuilder(
62 \
Magento\Framework\View\Design\ThemeInterface::class
63 )->getMockForAbstractClass();
65 $eventMock = $this->getMockBuilder(\
Magento\Framework\Event::class)->disableOriginalConstructor()->getMock();
66 $eventMock->expects($this->any())->method(
'getData')->with(
'theme')->willReturn($themeMock);
68 $observerMock = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
69 ->disableOriginalConstructor()
71 $observerMock->expects($this->any())->method(
'getEvent')->willReturn($eventMock);
74 ->expects($this->any())
75 ->method(
'isThemeAssignedToStore')
79 $this->themeImageFactory
80 ->expects($this->once())
82 ->with([
'theme' => $themeMock])
84 $this->themeImageFactory->expects($this->once())->method(
'removePreviewImage');
86 $this->updateCollection->expects($this->once())->method(
'addThemeFilter')->willReturnSelf();
87 $this->updateCollection->expects($this->once())->method(
'delete');
89 $this->themeObserver->execute($observerMock);
94 $themeMock = $this->getMockBuilder(
95 \
Magento\Framework\View\Design\ThemeInterface::class
96 )->getMockForAbstractClass();
98 $eventMock = $this->getMockBuilder(\
Magento\Framework\Event::class)->disableOriginalConstructor()->getMock();
99 $eventMock->expects($this->any())->method(
'getData')->with(
'theme')->willReturn($themeMock);
101 $observerMock = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
102 ->disableOriginalConstructor()
104 $observerMock->expects($this->any())->method(
'getEvent')->willReturn($eventMock);
106 $this->themeConfig->expects($this->any())->method(
'isThemeAssignedToStore')->with($themeMock)->willReturn(
true);
108 $this->expectException(\
Magento\Framework\Exception\LocalizedException::class);
109 $this->expectExceptionMessage(
'Theme isn\'t deletable.');
110 $this->themeObserver->execute($observerMock);
115 $eventMock = $this->getMockBuilder(\
Magento\Framework\Event::class)->disableOriginalConstructor()->getMock();
116 $eventMock->expects($this->any())->method(
'getData')->with(
'theme')->willReturn(
'Theme as a string');
118 $observerMock = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
119 ->disableOriginalConstructor()
121 $observerMock->expects($this->any())->method(
'getEvent')->willReturn($eventMock);
123 $this->themeConfig->expects($this->never())->method(
'isThemeAssignedToStore');
125 $this->themeObserver->execute($observerMock);
testCleanThemeRelatedContent()
testCleanThemeRelatedContentNonObjectTheme()
testCleanThemeRelatedContentException()