X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FCore%2FLock%2FSemaphoreLockTest.php;h=04aeb2b45dff3d5e7656f3c34fd2d9ce6c6f4525;hb=bc5a1e5acee9ceb61cd08734c554f69850120d76;hp=dd696d4aefa1f84b6bb228692ef0d3c004597b70;hpb=c803dcb6c5f808ac8f962e9bd5e631a91655cbc7;p=friendica.git diff --git a/tests/src/Core/Lock/SemaphoreLockTest.php b/tests/src/Core/Lock/SemaphoreLockTest.php index dd696d4aef..04aeb2b45d 100644 --- a/tests/src/Core/Lock/SemaphoreLockTest.php +++ b/tests/src/Core/Lock/SemaphoreLockTest.php @@ -1,32 +1,54 @@ . + * + */ namespace Friendica\Test\src\Core\Lock; use Dice\Dice; use Friendica\App; -use Friendica\BaseObject; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfig; +use Friendica\Core\Config\JitConfig; use Friendica\Core\Lock\SemaphoreLock; +use Friendica\DI; +use Mockery\MockInterface; class SemaphoreLockTest extends LockTest { public function setUp() { + /** @var MockInterface|Dice $dice */ $dice = \Mockery::mock(Dice::class)->makePartial(); $app = \Mockery::mock(App::class); $app->shouldReceive('getHostname')->andReturn('friendica.local'); $dice->shouldReceive('create')->with(App::class)->andReturn($app); - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(JitConfig::class); $configMock ->shouldReceive('get') - ->with('system', 'temppath', NULL, false) - ->andReturn('/tmp'); - $dice->shouldReceive('create')->with(Configuration::class)->andReturn($configMock); + ->with('system', 'temppath') + ->andReturn('/tmp/'); + $dice->shouldReceive('create')->with(IConfig::class)->andReturn($configMock); // @todo Because "get_temppath()" is using static methods, we have to initialize the BaseObject - BaseObject::setDependencyInjection($dice); + DI::init($dice); parent::setUp(); } @@ -43,14 +65,16 @@ class SemaphoreLockTest extends LockTest } /** - * Test if semaphore locking works even for + * Test if semaphore locking works even when trying to release locks, where the file exists + * but it shouldn't harm locking */ public function testMissingFileNotOverriding() { $file = get_temppath() . '/test.sem'; + touch($file); $this->assertTrue(file_exists($file)); - $this->assertFalse($this->instance->releaseLock('test', false)); + $this->assertFalse($this->instance->release('test', false)); $this->assertTrue(file_exists($file)); } @@ -64,9 +88,24 @@ class SemaphoreLockTest extends LockTest public function testMissingFileOverriding() { $file = get_temppath() . '/test.sem'; + touch($file); $this->assertTrue(file_exists($file)); - $this->assertFalse($this->instance->releaseLock('test', true)); + $this->assertFalse($this->instance->release('test', true)); $this->assertTrue(file_exists($file)); } + + /** + * Test acquire lock even the semaphore file exists, but isn't used + */ + public function testOverrideSemFile() + { + $file = get_temppath() . '/test.sem'; + touch($file); + + $this->assertTrue(file_exists($file)); + $this->assertTrue($this->instance->acquire('test')); + $this->assertTrue($this->instance->isLocked('test')); + $this->assertTrue($this->instance->release('test')); + } }