From b3e6802cf8b4c2cfcb54750873a914e05be3914a Mon Sep 17 00:00:00 2001 From: David Monllao Date: Fri, 29 May 2015 17:18:31 +0800 Subject: [PATCH] MDL-42192 caches: Adding simpledata tests --- cache/tests/cache_test.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/cache/tests/cache_test.php b/cache/tests/cache_test.php index 7c5d2ef2c90..83008547839 100644 --- a/cache/tests/cache_test.php +++ b/cache/tests/cache_test.php @@ -1713,6 +1713,21 @@ class core_cache_testcase extends advanced_testcase { 'staticacceleration' => true, 'staticaccelerationsize' => 4, )); + $instance->phpunit_add_definition('phpunit/simpledataarea1', array( + 'mode' => cache_store::MODE_APPLICATION, + 'component' => 'phpunit', + 'area' => 'simpledataarea1', + 'staticacceleration' => true, + 'simpledata' => false + )); + $instance->phpunit_add_definition('phpunit/simpledataarea2', array( + 'mode' => cache_store::MODE_APPLICATION, + 'component' => 'phpunit', + 'area' => 'simpledataarea2', + 'staticacceleration' => true, + 'simpledata' => true + )); + $cache = cache::make('phpunit', 'accelerated'); $this->assertInstanceOf('cache_phpunit_application', $cache); @@ -1839,5 +1854,25 @@ class core_cache_testcase extends advanced_testcase { $this->assertTrue($cache->set('a', 'A')); $this->assertEquals('A', $cache->phpunit_static_acceleration_get('a')); $this->assertEquals('A', $cache->get('a')); + + // Setting simpledata to false objects are cloned when retrieving data. + $cache = cache::make('phpunit', 'simpledataarea1'); + $notreallysimple = new stdClass(); + $notreallysimple->name = 'a'; + $cache->set('a', $notreallysimple); + $returnedinstance1 = $cache->get('a'); + $returnedinstance2 = $cache->get('a'); + $returnedinstance1->name = 'b'; + $this->assertEquals('a', $returnedinstance2->name); + + // Setting simpledata to true we assume that data does not contain references. + $cache = cache::make('phpunit', 'simpledataarea2'); + $notreallysimple = new stdClass(); + $notreallysimple->name = 'a'; + $cache->set('a', $notreallysimple); + $returnedinstance1 = $cache->get('a'); + $returnedinstance2 = $cache->get('a'); + $returnedinstance1->name = 'b'; + $this->assertEquals('b', $returnedinstance2->name); } }