Chris@0: fileCache = new FileCache('prefix', 'test', '\Drupal\Tests\Component\FileCache\StaticFileCacheBackend', ['bin' => 'llama']); Chris@0: $this->staticFileCache = new StaticFileCacheBackend(['bin' => 'llama']); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::get Chris@0: * @covers ::__construct Chris@0: */ Chris@0: public function testGet() { Chris@0: // Test a cache miss. Chris@0: $result = $this->fileCache->get(__DIR__ . '/Fixtures/no-llama-42.yml'); Chris@0: $this->assertNull($result); Chris@0: Chris@0: // Test a cache hit. Chris@0: $filename = __DIR__ . '/Fixtures/llama-42.txt'; Chris@0: $realpath = realpath($filename); Chris@0: $cid = 'prefix:test:' . $realpath; Chris@0: $data = [ Chris@0: 'mtime' => filemtime($realpath), Chris@0: 'filepath' => $realpath, Chris@0: 'data' => 42, Chris@0: ]; Chris@0: Chris@0: $this->staticFileCache->store($cid, $data); Chris@0: Chris@0: $result = $this->fileCache->get($filename); Chris@0: $this->assertEquals(42, $result); Chris@0: Chris@0: // Cleanup static caches. Chris@0: $this->fileCache->delete($filename); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::getMultiple Chris@0: */ Chris@0: public function testGetMultiple() { Chris@0: // Test a cache miss. Chris@0: $result = $this->fileCache->getMultiple([__DIR__ . '/Fixtures/no-llama-42.yml']); Chris@0: $this->assertEmpty($result); Chris@0: Chris@0: // Test a cache hit. Chris@0: $filename = __DIR__ . '/Fixtures/llama-42.txt'; Chris@0: $realpath = realpath($filename); Chris@0: $cid = 'prefix:test:' . $realpath; Chris@0: $data = [ Chris@0: 'mtime' => filemtime($realpath), Chris@0: 'filepath' => $realpath, Chris@0: 'data' => 42, Chris@0: ]; Chris@0: Chris@0: $this->staticFileCache->store($cid, $data); Chris@0: Chris@0: $result = $this->fileCache->getMultiple([$filename]); Chris@0: $this->assertEquals([$filename => 42], $result); Chris@0: Chris@0: // Test a static cache hit. Chris@0: $file2 = __DIR__ . '/Fixtures/llama-23.txt'; Chris@0: $this->fileCache->set($file2, 23); Chris@0: Chris@0: $result = $this->fileCache->getMultiple([$filename, $file2]); Chris@0: $this->assertEquals([$filename => 42, $file2 => 23], $result); Chris@0: Chris@0: // Cleanup static caches. Chris@0: $this->fileCache->delete($filename); Chris@0: $this->fileCache->delete($file2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::set Chris@0: */ Chris@0: public function testSet() { Chris@0: $filename = __DIR__ . '/Fixtures/llama-23.txt'; Chris@0: $realpath = realpath($filename); Chris@0: $cid = 'prefix:test:' . $realpath; Chris@0: $data = [ Chris@0: 'mtime' => filemtime($realpath), Chris@0: 'filepath' => $realpath, Chris@0: 'data' => 23, Chris@0: ]; Chris@0: Chris@0: $this->fileCache->set($filename, 23); Chris@0: $result = $this->staticFileCache->fetch([$cid]); Chris@0: $this->assertEquals([$cid => $data], $result); Chris@0: Chris@0: // Cleanup static caches. Chris@0: $this->fileCache->delete($filename); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::delete Chris@0: */ Chris@0: public function testDelete() { Chris@0: $filename = __DIR__ . '/Fixtures/llama-23.txt'; Chris@0: $realpath = realpath($filename); Chris@0: $cid = 'prefix:test:' . $realpath; Chris@0: Chris@0: $this->fileCache->set($filename, 23); Chris@0: Chris@0: // Ensure data is removed after deletion. Chris@0: $this->fileCache->delete($filename); Chris@0: Chris@0: $result = $this->staticFileCache->fetch([$cid]); Chris@0: $this->assertEquals([], $result); Chris@0: Chris@0: $result = $this->fileCache->get($filename); Chris@0: $this->assertNull($result); Chris@0: } Chris@0: Chris@0: }