X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FCore%2FLock%2FDatabaseLockDriverTest.php;h=c51d153efce13da26fdab419995b02449f07fba6;hb=e6c054c27602a3acadac3c423273bdf748fcee27;hp=3d641376995549a91e3c1664b8f41a3919dbc5c8;hpb=d6a82c6c2d7befde9914fce3bd4e3e07b97ca036;p=friendica.git diff --git a/tests/src/Core/Lock/DatabaseLockDriverTest.php b/tests/src/Core/Lock/DatabaseLockDriverTest.php index 3d64137699..c51d153efc 100644 --- a/tests/src/Core/Lock/DatabaseLockDriverTest.php +++ b/tests/src/Core/Lock/DatabaseLockDriverTest.php @@ -1,107 +1,74 @@ . + * + */ namespace Friendica\Test\src\Core\Lock; -use Friendica\Core\Cache; -use Friendica\Core\Lock\DatabaseLockDriver; -use Friendica\Test\Util\DbaLockMockTrait; +use Friendica\Core\Lock\DatabaseLock; +use Friendica\Factory\ConfigFactory; +use Friendica\Test\DatabaseTestTrait; +use Friendica\Test\Util\Database\StaticDatabase; +use Friendica\Test\Util\VFSTrait; +use Friendica\Util\ConfigFileLoader; +use Friendica\Util\Profiler; +use Mockery; +use Psr\Log\NullLogger; -/** - * @runTestsInSeparateProcesses - * @preserveGlobalState disabled - */ class DatabaseLockDriverTest extends LockTest { - use DbaLockMockTrait; + use VFSTrait; + use DatabaseTestTrait; protected $pid = 123; - protected function setUp() + protected function setUp(): void { - $this->mockConnected(); - $this->mockConnect(); + $this->setUpVfsDir(); - $this->mockReleaseAll($this->pid, 2); + $this->setUpDb(); parent::setUp(); } protected function getInstance() { - return new DatabaseLockDriver($this->pid); - } + $logger = new NullLogger(); + $profiler = Mockery::mock(Profiler::class); + $profiler->shouldReceive('startRecording'); + $profiler->shouldReceive('stopRecording'); + $profiler->shouldReceive('saveTimestamp')->withAnyArgs()->andReturn(true); - public function testLock() - { - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockIsLocked('foo', true, $this->startTime, 1); - $this->mockIsLocked('bar', false, $this->startTime, 1); + // load real config to avoid mocking every config-entry which is related to the Database class + $configFactory = new ConfigFactory(); + $loader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), []); + $configCache = $configFactory->createCache($loader); - parent::testLock(); - } - - public function testDoubleLock() - { - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockIsLocked('foo', true, $this->startTime, 1); - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, true, $this->pid, true, $this->startTime, 1); - - parent::testDoubleLock(); - } - - public function testReleaseLock() - { - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockIsLocked('foo', true, $this->startTime, 1); - $this->mockReleaseLock('foo', $this->pid, 1); - $this->mockIsLocked('foo', false, $this->startTime, 1); + $dba = new StaticDatabase($configCache, $profiler, $logger); - parent::testReleaseLock(); + return new DatabaseLock($dba, $this->pid); } - public function testReleaseAll() + protected function tearDown(): void { - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockAcquireLock('bar', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockAcquireLock('nice', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - - $this->mockIsLocked('foo', true, $this->startTime, 1); - $this->mockIsLocked('bar', true, $this->startTime, 1); - $this->mockIsLocked('nice', true, $this->startTime, 1); - - $this->mockReleaseAll($this->pid, 1); - - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockIsLocked('bar', false, $this->startTime, 1); - $this->mockIsLocked('nice', false, $this->startTime, 1); - - parent::testReleaseAll(); - } - - public function testReleaseAfterUnlock() - { - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockIsLocked('bar', false, $this->startTime, 1); - $this->mockIsLocked('nice', false, $this->startTime, 1); - - $this->mockAcquireLock('foo', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockAcquireLock('bar', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - $this->mockAcquireLock('nice', Cache::FIVE_MINUTES, false, $this->pid, false, $this->startTime, 1); - - $this->mockReleaseLock('foo', $this->pid, 1); - - $this->mockIsLocked('foo', false, $this->startTime, 1); - $this->mockIsLocked('bar', true, $this->startTime, 1); - $this->mockIsLocked('nice', true, $this->startTime, 1); - - $this->mockReleaseAll($this->pid, 1); - - $this->mockIsLocked('bar', false, $this->startTime, 1); - $this->mockIsLocked('nice', false, $this->startTime, 1); + $this->tearDownDb(); - parent::testReleaseAfterUnlock(); + parent::tearDown(); } }