public function garbageCollectionIsOmittedIfAnotherProcessIsAlreadyRunning()
{
$settings = $this->settings;
$settings['session']['inactivityTimeout'] = 5000;
$settings['session']['garbageCollection']['probability'] = 100;
$metaDataCache = $this->createCache('Meta');
$storageCache = $this->createCache('Storage');
$session = new Session();
$this->inject($session, 'bootstrap', $this->mockBootstrap);
$this->inject($session, 'objectManager', $this->mockObjectManager);
$this->inject($session, 'metaDataCache', $metaDataCache);
$this->inject($session, 'storageCache', $storageCache);
$session->injectSettings($settings);
$session->initializeObject();
// No sessions need to be removed:
$this->assertSame(0, $session->collectGarbage());
$metaDataCache->set('_garbage-collection-running', true, [], 120);
// Session garbage collection is omitted:
$this->assertFalse($session->collectGarbage());
}