50 private $objectManagerMock;
55 private $lockerProcessMock;
60 private $assetBuilderMock;
65 private $alternativeMock;
70 private $filenameResolverMock;
77 $this->sorterMock = $this->getMockBuilder(SortInterface::class)
78 ->getMockForAbstractClass();
79 $this->objectManagerMock = $this->getMockBuilder(ObjectManagerInterface::class)
80 ->getMockForAbstractClass();
81 $this->lockerProcessMock = $this->getMockBuilder(LockerProcessInterface::class)
82 ->getMockForAbstractClass();
83 $this->assetBuilderMock = $this->getMockBuilder(AssetBuilder::class)
84 ->disableOriginalConstructor()
86 $this->alternativeMock = $this->getMockBuilder(ContentProcessorInterface::class)
87 ->getMockForAbstractClass();
88 $this->filenameResolverMock = $this->getMockBuilder(FilenameResolverInterface::class)
89 ->getMockForAbstractClass();
103 $this->lockerProcessMock->expects(self::once())
104 ->method(
'lockProcess')
105 ->with(self::isType(
'string'));
106 $this->lockerProcessMock->expects(self::once())
107 ->method(
'unlockProcess');
109 $this->sorterMock->expects(self::once())
111 ->with($alternatives)
112 ->willReturn($alternatives);
114 $this->filenameResolverMock->expects(self::once())
116 ->with(self::FILE_PATH)
117 ->willReturn(self::FILE_PATH);
119 $this->assetBuilderMock->expects(self::once())
123 $this->assetBuilderMock->expects(self::once())
127 $this->assetBuilderMock->expects(self::once())
128 ->method(
'setLocale')
131 $this->assetBuilderMock->expects(self::once())
132 ->method(
'setModule')
135 $this->assetBuilderMock->expects(self::once())
137 ->with(self::FILE_PATH)
139 $this->assetBuilderMock->expects(self::once())
141 ->willReturn($this->getAssetNew());
143 $this->objectManagerMock->expects(self::once())
146 ->willReturn(
new \stdClass());
149 $this->filenameResolverMock,
150 $this->objectManagerMock,
151 $this->lockerProcessMock,
153 $this->assetBuilderMock,
158 $alternativeSource->process($this->getChainMockExpects(
'', 0));
159 }
catch (\UnexpectedValueException $e) {
160 self::assertInstanceOf(
'\UnexpectedValueException', $e);
175 $this->lockerProcessMock->expects(self::once())
176 ->method(
'lockProcess')
177 ->with(self::isType(
'string'));
178 $this->lockerProcessMock->expects(self::once())
179 ->method(
'unlockProcess');
181 $this->sorterMock->expects(self::once())
183 ->with($alternatives)
184 ->willReturn($alternatives);
186 $this->filenameResolverMock->expects(self::once())
188 ->with(self::FILE_PATH)
189 ->willReturn(self::FILE_PATH);
191 $assetMock = $this->getAssetNew();
193 $this->assetBuilderMock->expects(self::once())
197 $this->assetBuilderMock->expects(self::once())
201 $this->assetBuilderMock->expects(self::once())
202 ->method(
'setLocale')
205 $this->assetBuilderMock->expects(self::once())
206 ->method(
'setModule')
209 $this->assetBuilderMock->expects(self::once())
211 ->with(self::FILE_PATH)
213 $this->assetBuilderMock->expects(self::once())
215 ->willReturn($assetMock);
217 $this->objectManagerMock->expects(self::once())
219 ->with(\
Magento\Framework\View\
Asset\ContentProcessorInterface::class)
220 ->willReturn($this->getProcessorMock($assetMock));
223 $this->filenameResolverMock,
224 $this->objectManagerMock,
225 $this->lockerProcessMock,
227 $this->assetBuilderMock,
232 $alternativeSource->process($this->getChainMockExpects());
240 $chainMock = $this->getChainMock();
241 $assetMock = $this->getAssetMock();
243 $chainMock->expects(self::once())
244 ->method(
'getContent')
245 ->willReturn(
'test-content');
247 $chainMock->expects(self::once())
249 ->willReturn($assetMock);
251 $this->filenameResolverMock->expects(self::never())
254 $this->lockerProcessMock->expects(self::never())
255 ->method(
'lockProcess');
256 $this->lockerProcessMock->expects(self::never())
257 ->method(
'unlockProcess');
260 $this->filenameResolverMock,
261 $this->objectManagerMock,
262 $this->lockerProcessMock,
264 $this->assetBuilderMock,
269 $alternativeSource->process($chainMock);
276 private function getProcessorMock($asset)
278 $processorMock = $this->getMockBuilder(ContentProcessorInterface::class)
279 ->getMockForAbstractClass();
281 $processorMock->expects(self::once())
282 ->method(
'processContent')
284 ->willReturn(self::NEW_CONTENT);
286 return $processorMock;
292 private function getChainMock()
294 $chainMock = $this->getMockBuilder(Chain::class)
295 ->disableOriginalConstructor()
306 private function getChainMockExpects(
$content =
'', $contentExactly = 1)
308 $chainMock = $this->getChainMock();
310 $chainMock->expects(self::once())
311 ->method(
'getContent')
313 $chainMock->expects(self::exactly(3))
315 ->willReturn($this->getAssetMockExpects());
316 $chainMock->expects(self::exactly($contentExactly))
317 ->method(
'setContent')
318 ->willReturn(self::NEW_CONTENT);
326 private function getAssetNew()
328 $assetMock = $this->getMockBuilder(File::class)
329 ->disableOriginalConstructor()
338 private function getAssetMock()
340 $assetMock = $this->getMockBuilder(LocalInterface::class)
341 ->disableOriginalConstructor()
350 private function getAssetMockExpects()
352 $assetMock = $this->getAssetMock();
354 $assetMock->expects(self::once())
355 ->method(
'getContext')
356 ->willReturn($this->getContextMock());
357 $assetMock->expects(self::once())
358 ->method(
'getFilePath')
359 ->willReturn(self::FILE_PATH);
360 $assetMock->expects(self::once())
361 ->method(
'getModule')
362 ->willReturn(self::MODULE);
370 private function getContextMock()
372 $contextMock = $this->getMockBuilder(FallbackContext::class)
373 ->disableOriginalConstructor()
376 $contextMock->expects(self::once())
377 ->method(
'getAreaCode')
378 ->willReturn(self::AREA);
379 $contextMock->expects(self::once())
380 ->method(
'getThemePath')
381 ->willReturn(self::THEME);
382 $contextMock->expects(self::once())
383 ->method(
'getLocale')
384 ->willReturn(self::LOCALE);
testProcessContentNotEmpty()