Browse Source

CacheLockDriverTest Fixings

- Changing test behaviour
pull/5730/head
Philipp Holzer 3 years ago
parent
commit
f148dcabc4
No known key found for this signature in database GPG Key ID: 58160D7D6AF942B6
  1. 14
      tests/src/Core/Lock/ArrayCacheLockDriverTest.php
  2. 37
      tests/src/Core/Lock/LockTest.php
  3. 15
      tests/src/Core/Lock/MemcacheCacheLockDriverTest.php
  4. 15
      tests/src/Core/Lock/MemcachedCacheLockDriverTest.php
  5. 15
      tests/src/Core/Lock/RedisCacheLockDriverTest.php
  6. 15
      tests/src/Core/Lock/SemaphoreLockDriverTest.php

14
tests/src/Core/Lock/ArrayCacheLockDriverTest.php

@ -8,21 +8,9 @@ use Friendica\Core\Lock\CacheLockDriver;
class ArrayCacheLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
$this->cache = new ArrayCache();
return new CacheLockDriver($this->cache);
}
public function tearDown()
{
$this->cache->clear();
parent::tearDown();
return new CacheLockDriver(new ArrayCache());
}
public function testLockTTL()

37
tests/src/Core/Lock/LockTest.php

@ -19,6 +19,7 @@ abstract class LockTest extends DatabaseTest
{
parent::setUp();
$this->instance = $this->getInstance();
$this->instance->releaseAll();
// Reusable App object
$this->app = BaseObject::getApp();
@ -31,11 +32,18 @@ abstract class LockTest extends DatabaseTest
Config::set('system', 'theme', 'system_theme');
}
protected function tearDown()
{
parent::tearDown();
$this->instance->releaseAll();
}
/**
* @small
*/
public function testLock() {
$this->instance->acquireLock('foo', 1);
$this->assertFalse($this->instance->isLocked('foo'));
$this->assertTrue($this->instance->acquireLock('foo', 1));
$this->assertTrue($this->instance->isLocked('foo'));
$this->assertFalse($this->instance->isLocked('bar'));
}
@ -44,7 +52,8 @@ abstract class LockTest extends DatabaseTest
* @small
*/
public function testDoubleLock() {
$this->instance->acquireLock('foo', 1);
$this->assertFalse($this->instance->isLocked('foo'));
$this->assertTrue($this->instance->acquireLock('foo', 1));
$this->assertTrue($this->instance->isLocked('foo'));
// We already locked it
$this->assertTrue($this->instance->acquireLock('foo', 1));
@ -54,7 +63,8 @@ abstract class LockTest extends DatabaseTest
* @small
*/
public function testReleaseLock() {
$this->instance->acquireLock('foo', 1);
$this->assertFalse($this->instance->isLocked('foo'));
$this->assertTrue($this->instance->acquireLock('foo', 1));
$this->assertTrue($this->instance->isLocked('foo'));
$this->instance->releaseLock('foo');
$this->assertFalse($this->instance->isLocked('foo'));
@ -64,9 +74,9 @@ abstract class LockTest extends DatabaseTest
* @small
*/
public function testReleaseAll() {
$this->instance->acquireLock('foo', 1);
$this->instance->acquireLock('bar', 1);
$this->instance->acquireLock('nice', 1);
$this->assertTrue($this->instance->acquireLock('foo', 1));
$this->assertTrue($this->instance->acquireLock('bar', 1));
$this->assertTrue($this->instance->acquireLock('nice', 1));
$this->assertTrue($this->instance->isLocked('foo'));
$this->assertTrue($this->instance->isLocked('bar'));
@ -83,9 +93,12 @@ abstract class LockTest extends DatabaseTest
* @small
*/
public function testReleaseAfterUnlock() {
$this->instance->acquireLock('foo', 1);
$this->instance->acquireLock('bar', 1);
$this->instance->acquireLock('nice', 1);
$this->assertFalse($this->instance->isLocked('foo'));
$this->assertFalse($this->instance->isLocked('bar'));
$this->assertFalse($this->instance->isLocked('nice'));
$this->assertTrue($this->instance->acquireLock('foo', 1));
$this->assertTrue($this->instance->acquireLock('bar', 1));
$this->assertTrue($this->instance->acquireLock('nice', 1));
$this->instance->releaseLock('foo');
@ -103,10 +116,12 @@ abstract class LockTest extends DatabaseTest
* @medium
*/
function testLockTTL() {
$this->assertFalse($this->instance->isLocked('foo'));
$this->assertFalse($this->instance->isLocked('bar'));
// TODO [nupplaphil] - Because of the Datetime-Utils for the database, we have to wait a FULL second between the checks to invalidate the db-locks/cache
$this->instance->acquireLock('foo', 1, 1);
$this->instance->acquireLock('bar', 1, 3);
$this->assertTrue($this->instance->acquireLock('foo', 2, 1));
$this->assertTrue($this->instance->acquireLock('bar', 2, 3));
$this->assertTrue($this->instance->isLocked('foo'));
$this->assertTrue($this->instance->isLocked('bar'));

15
tests/src/Core/Lock/MemcacheCacheLockDriverTest.php

@ -3,7 +3,6 @@
namespace Friendica\Test\src\Core\Lock;
use Friendica\Core\Cache\CacheDriverFactory;
use Friendica\Core\Lock\CacheLockDriver;
@ -12,20 +11,8 @@ use Friendica\Core\Lock\CacheLockDriver;
*/
class MemcacheCacheLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
$this->cache = CacheDriverFactory::create('memcache');
return new CacheLockDriver($this->cache);
}
public function tearDown()
{
$this->cache->clear();
parent::tearDown();
return new CacheLockDriver(CacheDriverFactory::create('memcache'));
}
}

15
tests/src/Core/Lock/MemcachedCacheLockDriverTest.php

@ -3,7 +3,6 @@
namespace Friendica\Test\src\Core\Lock;
use Friendica\Core\Cache\CacheDriverFactory;
use Friendica\Core\Lock\CacheLockDriver;
@ -12,20 +11,8 @@ use Friendica\Core\Lock\CacheLockDriver;
*/
class MemcachedCacheLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
$this->cache = CacheDriverFactory::create('memcached');
return new CacheLockDriver($this->cache);
}
public function tearDown()
{
$this->cache->clear();
parent::tearDown();
return new CacheLockDriver(CacheDriverFactory::create('memcached'));
}
}

15
tests/src/Core/Lock/RedisCacheLockDriverTest.php

@ -3,7 +3,6 @@
namespace Friendica\Test\src\Core\Lock;
use Friendica\Core\Cache\CacheDriverFactory;
use Friendica\Core\Lock\CacheLockDriver;
@ -12,21 +11,9 @@ use Friendica\Core\Lock\CacheLockDriver;
*/
class RedisCacheLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Cache\IMemoryCacheDriver
*/
private $cache;
protected function getInstance()
{
$this->cache = CacheDriverFactory::create('redis');
return new CacheLockDriver($this->cache);
return new CacheLockDriver(CacheDriverFactory::create('redis'));
}
public function tearDown()
{
$this->cache->clear();
parent::tearDown();
}
}

15
tests/src/Core/Lock/SemaphoreLockDriverTest.php

@ -2,26 +2,13 @@
namespace Friendica\Test\src\Core\Lock;
use Friendica\Core\Lock\SemaphoreLockDriver;
class SemaphoreLockDriverTest extends LockTest
{
/**
* @var \Friendica\Core\Lock\SemaphoreLockDriver
*/
private $semaphoreLockDriver;
protected function getInstance()
{
$this->semaphoreLockDriver = new SemaphoreLockDriver();
return $this->semaphoreLockDriver;
}
public function tearDown()
{
$this->semaphoreLockDriver->releaseAll();
parent::tearDown();
return new SemaphoreLockDriver();
}
function testLockTTL()

Loading…
Cancel
Save