32 'concrete_backend' => $this->createMock(\Zend_Cache_Backend_File::class),
33 'compression_threshold' => strlen($this->_testString),
35 $this->_decorator = new \Magento\Framework\Cache\Backend\Decorator\Compression(
$options);
40 unset($this->_decorator);
41 self::$_cacheStorage = [];
46 $method = new \ReflectionMethod(
47 \
Magento\Framework\Cache\Backend\Decorator\Compression::class,
52 $this->assertStringStartsWith(
'CACHE_COMPRESSION',
$method->invoke($this->_decorator, $this->_testString));
57 $methodCompress = new \ReflectionMethod(
58 \
Magento\Framework\Cache\Backend\Decorator\Compression::class,
61 $methodCompress->setAccessible(
true);
63 $methodDecompress = new \ReflectionMethod(
64 \
Magento\Framework\Cache\Backend\Decorator\Compression::class,
67 $methodDecompress->setAccessible(
true);
71 $methodDecompress->invoke(
73 $methodCompress->invoke($this->_decorator, $this->_testString)
80 $method = new \ReflectionMethod(
81 \
Magento\Framework\Cache\Backend\Decorator\Compression::class,
82 '_isCompressionNeeded' 86 $this->assertFalse(
$method->invoke($this->_decorator, $this->_testString));
87 $this->assertFalse(
$method->invoke($this->_decorator, substr($this->_testString, 0, -1)));
88 $this->assertTrue(
$method->invoke($this->_decorator, $this->_testString .
's'));
95 $method = new \ReflectionMethod(
96 \
Magento\Framework\Cache\Backend\Decorator\Compression::class,
97 '_isDecompressionNeeded' 101 $this->assertFalse(
$method->invoke($this->_decorator, $this->_testString));
102 $this->assertFalse(
$method->invoke($this->_decorator,
's' .
$prefix . $this->_testString));
103 $this->assertTrue(
$method->invoke($this->_decorator,
$prefix . $this->_testString));
108 $cacheId =
'cacheId' . rand(1, 100);
110 $backend = $this->createPartialMock(\Zend_Cache_Backend_File::class, [
'save',
'load']);
111 $backend->expects($this->once())->method(
'save')->will($this->returnCallback([__CLASS__,
'mockSave']));
113 $backend->expects($this->once())->method(
'load')->will($this->returnCallback([__CLASS__,
'mockLoad']));
115 $options = [
'concrete_backend' => $backend,
'compression_threshold' => strlen($this->_testString)];
117 $decorator = new \Magento\Framework\Cache\Backend\Decorator\Compression(
$options);
119 $decorator->setOption(
'write_control',
false);
120 $decorator->setOption(
'automatic_cleaning_factor', 0);
122 $decorator->save($this->_testString, $cacheId);
124 $this->assertArrayHasKey($cacheId, self::$_cacheStorage);
125 $this->assertInternalType(
'string', self::$_cacheStorage[$cacheId]);
127 $loadedValue = $decorator->load($cacheId);
129 $this->assertEquals($this->_testString, $loadedValue);
139 self::$_cacheStorage[$cacheId] =
$data;
149 return array_key_exists($cacheId, self::$_cacheStorage) ? self::$_cacheStorage[$cacheId] :
false;
static mockLoad($cacheId)
testIsDecompressionNeeded()
testIsCompressionNeeded()
static mockSave($data, $cacheId)