Skip to content

Commit 82d45df

Browse files
author
thinkingmedia
committed
adds test for caching result set with file engine. References issue #10111 and this test is failing for me on PHP 7.1.1
1 parent 17e96e1 commit 82d45df

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

tests/TestCase/Cache/Engine/FileEngineTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,27 @@
1717
use Cake\Cache\Cache;
1818
use Cake\Cache\Engine\FileEngine;
1919
use Cake\Core\Configure;
20+
use Cake\ORM\ResultSet;
21+
use Cake\ORM\TableRegistry;
2022
use Cake\TestSuite\TestCase;
23+
use TestApp\Model\Table\ArticlesTable;
2124

2225
/**
2326
* FileEngineTest class
2427
*/
2528
class FileEngineTest extends TestCase
2629
{
30+
/**
31+
* @var array
32+
*/
33+
public $fixtures = [
34+
'core.articles'
35+
];
36+
37+
/**
38+
* @var bool
39+
*/
40+
public $autoFixtures = false;
2741

2842
/**
2943
* setUp method
@@ -192,6 +206,34 @@ public function testSerialize()
192206
$this->assertSame(unserialize($read), $data);
193207
}
194208

209+
/**
210+
* Verify across PHP versions that caching of ResultSet objects works as expected.
211+
*
212+
* @see https://github.com/cakephp/cakephp/issues/10111
213+
* @return void
214+
*/
215+
public function testResultSetCache()
216+
{
217+
Configure::write('App.namespace', 'TestApp');
218+
$this->loadFixtures('Articles');
219+
220+
/* @var ArticlesTable $articles */
221+
$articles = TableRegistry::get('Articles');
222+
$query = $articles->find()->all();
223+
$this->assertInstanceOf(ResultSet::class, $query);
224+
$this->assertSame(3, count($query->toArray()));
225+
226+
$this->_configCache(['serialize' => true]);
227+
$write = Cache::write('articles', $query, 'file_test');
228+
$this->assertTrue($write);
229+
230+
$read = Cache::read('articles', 'file_test');
231+
$this->assertInstanceOf(ResultSet::class, $read);
232+
$this->assertSame(3, count($read->toArray()));
233+
234+
TableRegistry::clear();
235+
}
236+
195237
/**
196238
* testClear method
197239
*

0 commit comments

Comments
 (0)