1313use Magento \Catalog \Model \Product \Media \Config ;
1414use Magento \Framework \Config \View ;
1515use Magento \Framework \Encryption \EncryptorInterface ;
16+ use Magento \Framework \Exception \FileSystemException ;
17+ use Magento \Framework \Phrase ;
1618use Magento \Framework \Filesystem ;
1719use Magento \Framework \Filesystem \Directory \Write ;
1820use Magento \Framework \View \ConfigInterface ;
2527class RemoveDeletedImagesFromCacheTest extends TestCase
2628{
2729 /**
28- * @var RemoveDeletedImagesFromCache| MockObject
30+ * @var MockObject|RemoveDeletedImagesFromCache
2931 */
30- protected $ model ;
32+ protected RemoveDeletedImagesFromCache | MockObject $ model ;
3133
3234 /**
3335 * @var ConfigInterface|MockObject
3436 */
35- protected $ presentationConfig ;
37+ protected ConfigInterface | MockObject $ presentationConfig ;
3638
3739 /**
3840 * @var EncryptorInterface|MockObject
3941 */
40- protected $ encryptor ;
42+ protected EncryptorInterface | MockObject $ encryptor ;
4143
4244 /**
4345 * @var Config|MockObject
4446 */
45- protected $ mediaConfig ;
47+ protected Config | MockObject $ mediaConfig ;
4648
4749 /**
48- * @var Write| MockObject
50+ * @var MockObject|Write
4951 */
50- protected $ mediaDirectory ;
52+ protected Write | MockObject $ mediaDirectory ;
5153
5254 /**
53- * @var ParamsBuilder| MockObject
55+ * @var MockObject|ParamsBuilder
5456 */
55- protected $ imageParamsBuilder ;
57+ protected ParamsBuilder | MockObject $ imageParamsBuilder ;
5658
5759 /**
5860 * @var ConvertImageMiscParamsToReadableFormat|MockObject
5961 */
60- protected $ convertImageMiscParamsToReadableFormat ;
62+ protected ConvertImageMiscParamsToReadableFormat | MockObject $ convertImageMiscParamsToReadableFormat ;
6163
6264 /**
63- * @var View| MockObject
65+ * @var MockObject|View
6466 */
65- protected $ viewMock ;
67+ protected View | MockObject $ viewMock ;
6668
6769 protected function setUp (): void
6870 {
@@ -102,6 +104,55 @@ protected function setUp(): void
102104 * @dataProvider createDataProvider
103105 */
104106 public function testRemoveDeletedImagesFromCache (array $ data ): void
107+ {
108+ $ this ->getRespectiveMethodMockObjForRemoveDeletedImagesFromCache ($ data );
109+
110+ $ this ->mediaDirectory ->expects ($ this ->once ())
111+ ->method ('delete ' )
112+ ->willReturn (true );
113+
114+ $ this ->model ->removeDeletedImagesFromCache (['i/m/image.jpg ' ]);
115+ }
116+
117+ /**
118+ * @param array $data
119+ * @return void
120+ * @dataProvider createDataProvider
121+ */
122+ public function testRemoveDeletedImagesFromCacheWithException (array $ data ): void
123+ {
124+ $ this ->getRespectiveMethodMockObjForRemoveDeletedImagesFromCache ($ data );
125+
126+ $ this ->expectException ('Exception ' );
127+ $ this ->expectExceptionMessage ('Unable to write file into directory product/cache. Access forbidden. ' );
128+
129+ $ exception = new FileSystemException (
130+ new Phrase ('Unable to write file into directory product/cache. Access forbidden. ' )
131+ );
132+
133+ $ this ->mediaDirectory ->expects ($ this ->once ())
134+ ->method ('delete ' )
135+ ->willThrowException ($ exception );
136+
137+ $ this ->model ->removeDeletedImagesFromCache (['i/m/image.jpg ' ]);
138+ }
139+
140+ /**
141+ * @return void
142+ */
143+ public function testRemoveDeletedImagesFromCacheWithEmptyFiles (): void
144+ {
145+ $ this ->assertEquals (
146+ null ,
147+ $ this ->model ->removeDeletedImagesFromCache ([])
148+ );
149+ }
150+
151+ /**
152+ * @param array $data
153+ * @return void
154+ */
155+ public function getRespectiveMethodMockObjForRemoveDeletedImagesFromCache (array $ data ): void
105156 {
106157 $ this ->presentationConfig ->expects ($ this ->once ())
107158 ->method ('getViewConfig ' )
@@ -127,12 +178,6 @@ public function testRemoveDeletedImagesFromCache(array $data): void
127178 $ this ->mediaConfig ->expects ($ this ->once ())
128179 ->method ('getBaseMediaPath ' )
129180 ->willReturn ('catalog/product ' );
130-
131- $ this ->mediaDirectory ->expects ($ this ->once ())
132- ->method ('delete ' )
133- ->willReturn (true );
134-
135- $ this ->model ->removeDeletedImagesFromCache (['i/m/image.jpg ' ]);
136181 }
137182
138183 /**
0 commit comments