X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FCore%2FLock%2FLockTest.php;h=a7bbea265f1a9fb9caf8e80ab3cc01b215864cb5;hb=81e81bd8c8c01389a11a268407c15e56c36d9db3;hp=79ee023bd8b98b88e5208828c6d7d7d53f2bd0f5;hpb=66a103e36a42ab251fd9ca6c4b56b54380e4d535;p=friendica.git diff --git a/tests/src/Core/Lock/LockTest.php b/tests/src/Core/Lock/LockTest.php index 79ee023bd8..a7bbea265f 100644 --- a/tests/src/Core/Lock/LockTest.php +++ b/tests/src/Core/Lock/LockTest.php @@ -2,6 +2,7 @@ namespace Friendica\Test\src\Core\Lock; +use Friendica\BaseObject; use Friendica\Core\Config; use Friendica\Test\DatabaseTest; @@ -18,9 +19,10 @@ abstract class LockTest extends DatabaseTest { parent::setUp(); $this->instance = $this->getInstance(); + $this->instance->releaseAll(); // Reusable App object - $this->app = \Friendica\BaseObject::getApp(); + $this->app = BaseObject::getApp(); // Default config Config::set('config', 'hostname', 'localhost'); @@ -30,30 +32,51 @@ 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')); } + /** + * @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)); } + /** + * @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')); } + /** + * @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')); @@ -66,10 +89,16 @@ abstract class LockTest extends DatabaseTest $this->assertFalse($this->instance->isLocked('nice')); } + /** + * @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'); @@ -83,11 +112,16 @@ abstract class LockTest extends DatabaseTest $this->assertFalse($this->instance->isLocked('nice')); } + /** + * @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'));