Skip to content

Commit a5395f7

Browse files
committed
text expired key overwrite
1 parent 999cfca commit a5395f7

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/TarantoolStoreTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Tarantool\Client\Client;
1212
use Tarantool\Client\Exception\RequestFailed;
1313
use Tarantool\Client\Schema\Criteria;
14+
use Tarantool\Client\Schema\Operations;
1415
use Tarantool\SymfonyLock\Cleaner;
1516
use Tarantool\SymfonyLock\SchemaManager;
1617
use Tarantool\SymfonyLock\TarantoolStore;
@@ -275,4 +276,29 @@ public function testDefaultSchemaCreationIsDisabled()
275276
$store = new TarantoolStore($client);
276277
$store->save(new Key(uniqid(__METHOD__, true)));
277278
}
279+
280+
public function testExpiredKeyOverwrite()
281+
{
282+
$resource = uniqid(__METHOD__, true);
283+
$key1 = new Key($resource);
284+
$key2 = new Key($resource);
285+
286+
$store = $this->getStore();
287+
288+
$store->save($key1);
289+
$this->assertTrue($store->exists($key1));
290+
$this->assertFalse($store->exists($key2));
291+
292+
$rows = $this->client->getSpace('lock')->select(Criteria::key([]));
293+
$this->assertCount(1, $rows);
294+
$this->client->getSpace('lock')->update([$rows[0][0]], Operations::set(2, microtime(true)));
295+
296+
$this->assertFalse($store->exists($key1));
297+
$this->assertFalse($store->exists($key2));
298+
299+
$store->save($key2);
300+
301+
$this->assertFalse($store->exists($key1));
302+
$this->assertTrue($store->exists($key2));
303+
}
278304
}

0 commit comments

Comments
 (0)