|  | 
|  | 1 | +<?php | 
|  | 2 | + | 
|  | 3 | +/** | 
|  | 4 | + * Test: Nette\Caching\Storages\FileStorage clean with Cache::NAMESPACE | 
|  | 5 | + */ | 
|  | 6 | + | 
|  | 7 | +declare(strict_types=1); | 
|  | 8 | + | 
|  | 9 | +use Nette\Caching\Cache; | 
|  | 10 | +use Nette\Caching\Storages\FileStorage; | 
|  | 11 | +use Tester\Assert; | 
|  | 12 | + | 
|  | 13 | + | 
|  | 14 | +require __DIR__ . '/../bootstrap.php'; | 
|  | 15 | + | 
|  | 16 | +$storage = new FileStorage(TEMP_DIR); | 
|  | 17 | + | 
|  | 18 | +/* | 
|  | 19 | + * Create filestorage cache without namespace and some with namespaces | 
|  | 20 | + */ | 
|  | 21 | +$cacheA = new Cache($storage); | 
|  | 22 | +$cacheB = new Cache($storage, 'C' . Cache::NAMESPACE_SEPARATOR . 'A'); | 
|  | 23 | +$cacheC = new Cache($storage, 'C'); | 
|  | 24 | +$cacheD = new Cache($storage, 'D'); | 
|  | 25 | + | 
|  | 26 | +/* | 
|  | 27 | + * Fill with data | 
|  | 28 | + */ | 
|  | 29 | +$cacheA->save('test1', 'David'); | 
|  | 30 | +$cacheA->save('test2', 'Grudl'); | 
|  | 31 | + | 
|  | 32 | +$cacheB->save('test1', 'Barry'); | 
|  | 33 | +$cacheB->save('test2', 'Allen'); | 
|  | 34 | + | 
|  | 35 | +$cacheC->save('test1', 'Oliver'); | 
|  | 36 | +$cacheC->save('test2', 'Queen'); | 
|  | 37 | + | 
|  | 38 | +$cacheD->save('test1', 'Bruce'); | 
|  | 39 | +$cacheD->save('test2', 'Wayne'); | 
|  | 40 | + | 
|  | 41 | + | 
|  | 42 | +/* | 
|  | 43 | + * Check if fill wass successfull | 
|  | 44 | + */ | 
|  | 45 | +Assert::same('David', $cacheA->load('test1')); | 
|  | 46 | +Assert::same('Grudl', $cacheA->load('test2')); | 
|  | 47 | + | 
|  | 48 | +Assert::same('Barry', $cacheB->load('test1')); | 
|  | 49 | +Assert::same('Allen', $cacheB->load('test2')); | 
|  | 50 | + | 
|  | 51 | +Assert::same('Oliver', $cacheC->load('test1')); | 
|  | 52 | +Assert::same('Queen', $cacheC->load('test2')); | 
|  | 53 | + | 
|  | 54 | +Assert::same('Bruce', $cacheD->load('test1')); | 
|  | 55 | +Assert::same('Wayne', $cacheD->load('test2')); | 
|  | 56 | + | 
|  | 57 | + | 
|  | 58 | +/* | 
|  | 59 | + * Clean one namespace | 
|  | 60 | + */ | 
|  | 61 | +$storage->clean([Cache::NAMESPACES => [$cacheB->getNamespace()]]); | 
|  | 62 | + | 
|  | 63 | +Assert::same('David', $cacheA->load('test1')); | 
|  | 64 | +Assert::same('Grudl', $cacheA->load('test2')); | 
|  | 65 | + | 
|  | 66 | +// Only these should be null now | 
|  | 67 | +Assert::null($cacheB->load('test1')); | 
|  | 68 | +Assert::null($cacheB->load('test2')); | 
|  | 69 | + | 
|  | 70 | +Assert::same('Oliver', $cacheC->load('test1')); | 
|  | 71 | +Assert::same('Queen', $cacheC->load('test2')); | 
|  | 72 | + | 
|  | 73 | +Assert::same('Bruce', $cacheD->load('test1')); | 
|  | 74 | +Assert::same('Wayne', $cacheD->load('test2')); | 
|  | 75 | + | 
|  | 76 | + | 
|  | 77 | +/* | 
|  | 78 | + * Test cleaning multiple namespaces | 
|  | 79 | + */ | 
|  | 80 | +$storage->clean([Cache::NAMESPACES => [$cacheC->getNamespace(), $cacheD->getNamespace()]]); | 
|  | 81 | + | 
|  | 82 | +Assert::same('David', $cacheA->load('test1')); | 
|  | 83 | +Assert::same('Grudl', $cacheA->load('test2')); | 
|  | 84 | + | 
|  | 85 | +// All other should be null | 
|  | 86 | +Assert::null($cacheB->load('test1')); | 
|  | 87 | +Assert::null($cacheB->load('test2')); | 
|  | 88 | + | 
|  | 89 | +Assert::null($cacheC->load('test1')); | 
|  | 90 | +Assert::null($cacheC->load('test2')); | 
|  | 91 | + | 
|  | 92 | +Assert::null($cacheD->load('test1')); | 
|  | 93 | +Assert::null($cacheD->load('test2')); | 
0 commit comments