*/ public static function fixtureDispatchProvider(): array { return [ 'server' => ['debug-server-minimal.txt', ProjectZomboidServerLog::class], 'chat' => ['chat-minimal.txt', ProjectZomboidChatLog::class], 'client-action' => ['client-action-minimal.txt', ProjectZomboidClientActionLog::class], 'cmd' => ['cmd-minimal.txt', ProjectZomboidCmdLog::class], 'item' => ['item-minimal.txt', ProjectZomboidItemLog::class], 'map' => ['map-minimal.txt', ProjectZomboidMapLog::class], 'perk' => ['perk-minimal.txt', ProjectZomboidPerkLog::class], 'pvp' => ['pvp-minimal.txt', ProjectZomboidPvpLog::class], 'admin' => ['admin-minimal.txt', ProjectZomboidAdminLog::class], 'user' => ['user-minimal.txt', ProjectZomboidUserLog::class], 'burd-journals' => ['burd-journals-minimal.txt', ProjectZomboidBurdJournalsLog::class], ]; } #[DataProvider('fixtureDispatchProvider')] public function testDispatchesEachFixtureToCorrectLogClass(string $fixture, string $expectedClass): void { $detective = (new ProjectZomboidDetective()) ->setLogFile(new PathLogFile($this->fixturesDir() . $fixture)); $this->assertInstanceOf($expectedClass, $detective->detect()); } public function testRegistersElevenLogClasses(): void { $detective = new ProjectZomboidDetective(); $this->assertCount(11, $detective->getPossibleLogClasses()); } }