* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Cache\Tests\Adapter; use Psr\Cache\CacheItemInterface; use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Cache\Adapter\ProxyAdapter; use Symfony\Component\Cache\CacheItem; /** * @group time-sensitive */ class ProxyAdapterTest extends AdapterTestCase { protected $skippedTests = array( 'testDeferredSaveWithoutCommit' => 'Assumes a shared cache which ArrayAdapter is not.', 'testSaveWithoutExpire' => 'Assumes a shared cache which ArrayAdapter is not.', 'testPrune' => 'ProxyAdapter just proxies', ); public function createCachePool($defaultLifetime = 0) { return new ProxyAdapter(new ArrayAdapter(), '', $defaultLifetime); } /** * @expectedException \Exception * @expectedExceptionMessage OK bar */ public function testProxyfiedItem() { $item = new CacheItem(); $pool = new ProxyAdapter(new TestingArrayAdapter($item)); $proxyItem = $pool->getItem('foo'); $this->assertNotSame($item, $proxyItem); $pool->save($proxyItem->set('bar')); } } class TestingArrayAdapter extends ArrayAdapter { private $item; public function __construct(CacheItemInterface $item) { $this->item = $item; } public function getItem($key) { return $this->item; } public function save(CacheItemInterface $item) { if ($item === $this->item) { throw new \Exception('OK '.$item->get()); } } } __halt_compiler();----SIGNATURE:----gzRZN/e4jRYNSbwX9ZfvQivzNYJjaRptTvCP4f3V05SrOSFVhqYowlE9ULyy5eEWv/zIIbQNpwfzpi229uu5cmzymAbyOULjsUHhebyxa/3kiEH3YHYSIDIq1AThZSW2Z4mw3ivX7xUmOAcRkqCWmwYTJ7H2IddQorMGIn5729t6sNXOZsJn62aq9Y+CBIuLmK57cg3Ld5vaRTHZfH8g4wSp+H82wj/LVxXLmEcuobM8dYZZdDFaTigBoJanREaFOqocORNYa483Og4jbF+sjNgTiHd/i7Lm3E/v1sFTNtRA/i8cwoGwS0K5Rp/ViLHuW+otG+PrjUud+7rEMcgJW5B8Mndzs9tRdKK2O+UkFiAyKLDwQ/RGMdORdob+qWZ8w7PDVufOWQlZo0CyOv80TyqpJnLOmK1XRFUyAkKeTNIp0/RIT/05JikuEYunLuJ1o2E1Ayy7f95ndlmy5MhS8d7uEZ/8yISBb6xtxuFwbhxkm4+K6tHjReGmdJpsMRVjd1TzzXef+um0p+eit3N9ygrXube3XoXj/CV8p8rLWO696GLcAabBQpb5wqqdwt5lFbeJkXWwIZ6KGjeJa64+0pEcWxkEwUfUvN62VQaGuUXU610uzqLfw4QyxMFEJUXaokJc+YNB8/y1uQ4ngG4zULpJds1ZBwWp9Lm1tYaaxD0=----ATTACHMENT:----NjQ2MDk5OTU0MDAyODI3OCA4NDc2MTMxNzQ2MDQwNDkxIDg3MTU4MzI0NjkxMzkyNDk=