|
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