|
4 | 4 |
|
5 | 5 | use ByJG\Cache\Psr16\BaseCacheEngine;
|
6 | 6 | use ByJG\Cache\Psr6\CachePool;
|
| 7 | +use DateInterval; |
7 | 8 |
|
8 | 9 | require_once 'BaseCacheTest.php';
|
9 | 10 |
|
@@ -96,37 +97,44 @@ public function testGetMultipleItems(BaseCacheEngine $cacheEngine)
|
96 | 97 | */
|
97 | 98 | public function testTtl(BaseCacheEngine $cacheEngine)
|
98 | 99 | {
|
99 |
| - $this->cacheEngine = $cacheEngine; |
100 |
| - |
101 |
| - $object = new CachePool($cacheEngine); |
102 |
| - if ($object->isAvailable()) { |
103 |
| - // First time |
104 |
| - $item = $object->getItem('chave'); |
105 |
| - $this->assertFalse($item->isHit()); |
106 |
| - |
107 |
| - // Set object |
108 |
| - $item->set('valor'); |
109 |
| - $item->expiresAfter(2); |
110 |
| - $object->save($item); |
111 |
| - $this->assertTrue($item->isHit()); |
112 |
| - |
113 |
| - // Get Object |
114 |
| - $item2 = $object->getItem('chave'); |
115 |
| - $this->assertTrue($item2->isHit()); |
116 |
| - $this->assertEquals('valor', $item2->get()); |
117 |
| - sleep(3); |
118 |
| - $item3 = $object->getItem('chave'); |
119 |
| - $this->assertFalse($item3->isHit()); |
120 |
| - $this->assertEquals(null, $item3->get()); |
121 |
| - |
122 |
| - // Remove |
123 |
| - $object->deleteItem('chave'); |
124 |
| - |
125 |
| - // Check Removed |
126 |
| - $item = $object->getItem('chave'); |
127 |
| - $this->assertFalse($item->isHit()); |
128 |
| - } else { |
129 |
| - $this->markTestIncomplete('Object is not fully functional'); |
| 100 | + $timeList = [ |
| 101 | + 2, |
| 102 | + DateInterval::createFromDateString("2 seconds") |
| 103 | + ]; |
| 104 | + |
| 105 | + foreach ($timeList as $time) { |
| 106 | + $this->cacheEngine = $cacheEngine; |
| 107 | + |
| 108 | + $object = new CachePool($cacheEngine); |
| 109 | + if ($object->isAvailable()) { |
| 110 | + // First time |
| 111 | + $item = $object->getItem('chave'); |
| 112 | + $this->assertFalse($item->isHit()); |
| 113 | + |
| 114 | + // Set object |
| 115 | + $item->set('valor'); |
| 116 | + $item->expiresAfter($time); |
| 117 | + $object->save($item); |
| 118 | + $this->assertTrue($item->isHit()); |
| 119 | + |
| 120 | + // Get Object |
| 121 | + $item2 = $object->getItem('chave'); |
| 122 | + $this->assertTrue($item2->isHit()); |
| 123 | + $this->assertEquals('valor', $item2->get()); |
| 124 | + sleep(3); |
| 125 | + $item3 = $object->getItem('chave'); |
| 126 | + $this->assertFalse($item3->isHit()); |
| 127 | + $this->assertEquals(null, $item3->get()); |
| 128 | + |
| 129 | + // Remove |
| 130 | + $object->deleteItem('chave'); |
| 131 | + |
| 132 | + // Check Removed |
| 133 | + $item = $object->getItem('chave'); |
| 134 | + $this->assertFalse($item->isHit()); |
| 135 | + } else { |
| 136 | + $this->markTestIncomplete('Object is not fully functional'); |
| 137 | + } |
130 | 138 | }
|
131 | 139 | }
|
132 | 140 |
|
|
0 commit comments