Skip to content

Commit 98f09d8

Browse files
Stephan Wentztemp
authored andcommitted
fix: Check for 7z presence
1 parent 926998b commit 98f09d8

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

src/SevenZipContents/SevenZipArchive.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ private static function getBinary7zFromPath(): string
3838
}
3939
}
4040

41+
if (!$binary7z) {
42+
$binary7z = null;
43+
}
44+
4145
self::$binary7z = self::makeBinary7z($binary7z);
4246

4347
return self::$binary7z;

tests/SevenZipContents/SevenZipContentsTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Brainbits\FunctionalTestHelpers\Tests\SevenZipContents;
66

7+
use Archive7z\Exception;
78
use Brainbits\FunctionalTestHelpers\SevenZipContents\InvalidArchive;
89
use Brainbits\FunctionalTestHelpers\SevenZipContents\SevenZipArchive;
910
use Brainbits\FunctionalTestHelpers\SevenZipContents\SevenZipContents;
@@ -24,6 +25,18 @@ final class SevenZipContentsTest extends TestCase
2425
{
2526
private const FILE_7Z = __DIR__ . '/../files/test.7z';
2627

28+
protected function setUp(): void
29+
{
30+
try {
31+
$zipContents = new SevenZipContents();
32+
$zipContents->readFile(self::FILE_7Z);
33+
} catch (Exception $e) {
34+
if ($e->getMessage() === 'Binary of 7-zip is not available') {
35+
$this->markTestSkipped('Binary of 7-zip is not available');
36+
}
37+
}
38+
}
39+
2740
public function testItNeedsFile(): void
2841
{
2942
$this->expectException(InvalidArchive::class);

tests/SevenZipContents/SevenZipContentsTraitTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
namespace Brainbits\FunctionalTestHelpers\Tests\SevenZipContents;
66

7+
use Archive7z\Exception;
8+
use Brainbits\FunctionalTestHelpers\SevenZipContents\SevenZipContents;
79
use Brainbits\FunctionalTestHelpers\SevenZipContents\SevenZipContentsTrait;
810
use PHPUnit\Framework\Attributes\CoversClass;
911
use PHPUnit\Framework\ExpectationFailedException;
@@ -16,6 +18,18 @@ final class SevenZipContentsTraitTest extends TestCase
1618

1719
private const FILE = __DIR__ . '/../files/test.7z';
1820

21+
protected function setUp(): void
22+
{
23+
try {
24+
$zipContents = new SevenZipContents();
25+
$zipContents->readFile(self::FILE);
26+
} catch (Exception $e) {
27+
if ($e->getMessage() === 'Binary of 7-zip is not available') {
28+
$this->markTestSkipped('Binary of 7-zip is not available');
29+
}
30+
}
31+
}
32+
1933
public function testAssertZipHasSizeForZipFileFails(): void
2034
{
2135
$zip = self::read7zFile(self::FILE);

0 commit comments

Comments
 (0)