objectManager->get(SequenceGenerator::class); self::assertEquals(0, $sequenceGenerator->getLastNumberFor($sequenceGenerator)); self::assertEquals(1, $sequenceGenerator->getNextNumberFor($sequenceGenerator)); $pIds = []; for ($i = 0; $i < 10; $i++) { $pId = \pcntl_fork(); if ($pId > 0) { $pIds[] = $pId; } else { for ($j = 0; $j < 10; $j++) { $sequenceGenerator->getNextNumberFor($sequenceGenerator); } // making a hard exit to avoid phpunit having the tables cleaned up again exit; } } foreach ($pIds as $pId) { $status = 0; \pcntl_waitpid($pId, $status); } self::assertEquals(101, $sequenceGenerator->getLastNumberFor($sequenceGenerator)); } /** * @test * @throws DoctrineDBALDriverException * @throws DoctrineDBALException * @throws InvalidSourceException */ public function setLastNumberForTest(): void { $sequenceGenerator = $this->objectManager->get(SequenceGenerator::class); $sequenceGenerator->setLastNumberFor($sequenceGenerator, 100); self::assertEquals(100, $sequenceGenerator->getLastNumberFor($sequenceGenerator)); self::assertEquals(0, $sequenceGenerator->getLastNumberFor('otherSequence')); } }