![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Cache/Test/Unit/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); /** * \Magento\Framework\Cache\Core test case */ namespace Magento\Framework\Cache\Test\Unit; use Magento\Framework\Cache\Backend\Decorator\AbstractDecorator; use Magento\Framework\Cache\Core; use PHPUnit\Framework\TestCase; class CoreTest extends TestCase { /** * @var Core */ protected $_core; /** * @var array */ protected static $_cacheStorage = []; /** * Selected mock of \Zend_Cache_Backend_File to have extended * \Zend_Cache_Backend and implemented \Zend_Cache_Backend_Interface * * @var \Zend_Cache_Backend_File */ protected $_mockBackend; protected function setUp(): void { $this->_mockBackend = $this->createMock(\Zend_Cache_Backend_File::class); } protected function tearDown(): void { unset($this->_mockBackend); } public function testSetBackendDefault() { $core = new Core(); $core->setBackend($this->_mockBackend); $this->assertNotInstanceOf( AbstractDecorator::class, $core->getBackend() ); $this->assertEquals($this->_mockBackend, $core->getBackend()); } /** * @dataProvider setBackendExceptionProvider */ public function testSetBackendException($decorators) { $this->expectException('Zend_Cache_Exception'); $core = new Core(['backend_decorators' => $decorators]); $core->setBackend($this->_mockBackend); } /** * @return array */ public function setBackendExceptionProvider() { return [ 'string' => ['string'], 'decorator setting is not an array' => [['decorator' => 'string']], 'decorator setting is empty array' => [['decorator' => []]], 'no class index in array' => [['decorator' => ['somedata']]], 'non-existing class passed' => [['decorator' => ['class' => 'NonExistingClass']]] ]; } public function testSaveDisabled() { $backendMock = $this->createMock(\Zend_Cache_Backend_BlackHole::class); $backendMock->expects($this->never())->method('save'); $frontend = new Core(['disable_save' => true]); $frontend->setBackend($backendMock); $result = $frontend->save('data', 'id'); $this->assertTrue($result); } public function testSaveNoCaching() { $backendMock = $this->createMock(\Zend_Cache_Backend_BlackHole::class); $backendMock->expects($this->never())->method('save'); $frontend = new Core(['disable_save' => false, 'caching' => false]); $frontend->setBackend($backendMock); $result = $frontend->save('data', 'id'); $this->assertTrue($result); } public function testSave() { $data = 'data'; $tags = ['abc', '!def', '_ghi']; $prefix = 'prefix_'; $prefixedTags = ['prefix_abc', 'prefix__def', 'prefix__ghi']; $backendMock = $this->createMock(\Zend_Cache_Backend_BlackHole::class); $backendMock->expects($this->once()) ->method('save') ->with($data, $this->anything(), $prefixedTags) ->willReturn(true); $backendMock->expects($this->once()) ->method('getCapabilities') ->willReturn(['priority' => null]); $frontend = new Core([ 'disable_save' => false, 'caching' => true, 'cache_id_prefix' => $prefix, 'automatic_cleaning_factor' => 0, 'write_control' => false, ]); $frontend->setBackend($backendMock); $result = $frontend->save($data, 'id', $tags); $this->assertTrue($result); } public function testClean() { $mode = 'all'; $tags = ['abc', '!def', '_ghi']; $prefix = 'prefix_'; $prefixedTags = ['prefix_abc', 'prefix__def', 'prefix__ghi']; $expectedResult = true; $backendMock = $this->createMock(\Zend_Cache_Backend_BlackHole::class); $backendMock->expects($this->once()) ->method('clean') ->with($mode, $prefixedTags) ->willReturn($expectedResult); $frontend = new Core([ 'caching' => true, 'cache_id_prefix' => $prefix, ]); $frontend->setBackend($backendMock); $result = $frontend->clean($mode, $tags); $this->assertEquals($expectedResult, $result); } public function testGetIdsMatchingTags() { $tags = ['abc', '!def', '_ghi']; $prefix = 'prefix_'; $prefixedTags = ['prefix_abc', 'prefix__def', 'prefix__ghi']; $ids = ['id', 'id2', 'id3']; $backendMock = $this->createMock(CoreTestMock::class); $backendMock->expects($this->once()) ->method('getIdsMatchingTags') ->with($prefixedTags) ->willReturn($ids); $backendMock->expects($this->any()) ->method('getCapabilities') ->willReturn(['tags' => true]); $frontend = new Core([ 'caching' => true, 'cache_id_prefix' => $prefix, ]); $frontend->setBackend($backendMock); $result = $frontend->getIdsMatchingTags($tags); $this->assertEquals($ids, $result); } public function testGetIdsNotMatchingTags() { $tags = ['abc', '!def', '_ghi']; $prefix = 'prefix_'; $prefixedTags = ['prefix_abc', 'prefix__def', 'prefix__ghi']; $ids = ['id', 'id2', 'id3']; $backendMock = $this->createMock(CoreTestMock::class); $backendMock->expects($this->once()) ->method('getIdsNotMatchingTags') ->with($prefixedTags) ->willReturn($ids); $backendMock->expects($this->any()) ->method('getCapabilities') ->willReturn(['tags' => true]); $frontend = new Core([ 'caching' => true, 'cache_id_prefix' => $prefix, ]); $frontend->setBackend($backendMock); $result = $frontend->getIdsNotMatchingTags($tags); $this->assertEquals($ids, $result); } }