Catch unknown ripper error in logchecker proper

This commit is contained in:
itismadness
2020-04-29 13:04:11 +01:00
parent b30b3ddafc
commit 63c7d8f6b5
3 changed files with 25 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ use OrpheusNET\Logchecker\Exception\UnknownRipperException;
class Ripper
{
public const UNKNOWN = 'unknown';
public const WHIPPER = 'whipper';
public const XLD = 'XLD';
public const EAC = 'EAC';

View File

@@ -3,6 +3,7 @@
namespace OrpheusNET\Logchecker;
use OrpheusNET\Logchecker\Check\Ripper;
use OrpheusNET\Logchecker\Exception\UnknownRipperException;
use OrpheusNET\Logchecker\Parser\EAC\Translator;
use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Yaml\Exception\ParseException;
@@ -108,9 +109,18 @@ class Logchecker
} catch (\Exception $exc) {
$this->Score = 0;
$this->account('Could not detect log encoding, log is corrupt.');
return;
}
try {
$this->ripper = Ripper::getRipper($this->log);
} catch (UnknownRipperException $exc) {
$this->Score = 0;
$this->account('Unknown log file, could not determine ripper.');
$this->ripper = Ripper::UNKNOWN;
return;
}
$this->ripper = Ripper::getRipper($this->log);
if ($this->ripper === Ripper::WHIPPER) {
$this->whipperParse();
} else {

View File

@@ -70,4 +70,17 @@ class LogcheckerTest extends TestCase
);
$this->assertSame($composer['version'], Logchecker::getLogcheckerVersion());
}
public function testCheckUnknownLog(): void
{
$logchecker = new Logchecker();
$logchecker->newFile(implode(DIRECTORY_SEPARATOR, [__DIR__, 'LogcheckerTest.php']));
$logchecker->parse();
$this->assertSame(Ripper::UNKNOWN, $logchecker->getRipper());
$this->assertNull($logchecker->getRipperVersion());
$this->assertSame(0, $logchecker->getScore());
$this->assertSame('en', $logchecker->getLanguage());
$this->assertSame(['Unknown log file, could not determine ripper.'], $logchecker->getDetails());
}
}