Skip to content

Commit

Permalink
Merge pull request #7021 from pawel-slowik/unresolvable-include-tests
Browse files Browse the repository at this point in the history
Add tests for UnresolvableInclude
  • Loading branch information
orklah committed Nov 29, 2021
2 parents ad23ab3 + 18b6fbc commit e29571d
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions tests/UnresolvableIncludeTest.php
@@ -0,0 +1,78 @@
<?php
namespace Psalm\Tests;

use Psalm\Context;
use Psalm\Exception\CodeException;

class UnresolvableIncludeTest extends TestCase
{
/**
* @dataProvider providerUnresolvableInclude
*/
public function testShouldThrowUnresolvableInclude(string $phpCode, int $expectedExceptionLine): void
{
$this->addFile('somefile.php', $phpCode);
$context = new Context();

$this->expectException(CodeException::class);
$this->expectExceptionMessage("UnresolvableInclude - somefile.php:$expectedExceptionLine:");

$this->analyzeFile('somefile.php', $context);
}

/**
* @return array<string,array{0:string,expectedExceptionLine:int}>
*/
public function providerUnresolvableInclude(): array
{
return [
'basic' => [
'<?php
function requireFile(string $s) : void {
require_once($s);
}
',
'expectedExceptionLine' => 3,
],
];
}

/**
* @dataProvider providerNoUnresolvableInclude
*/
public function testShouldNotThrowUnresolvableInclude(string $phpCode): void
{
$this->addFile('somefile.php', $phpCode);

$context = new Context();

$this->analyzeFile('somefile.php', $context);
}

/**
* @return array<string,array{0:string}>
*/
public function providerNoUnresolvableInclude(): array
{
return [
'github_issue_908_file_exists' => [
'<?php
function requireFile(string $s) : void {
if (file_exists($s)) {
require_once($s);
}
}
'
],
'github_issue_4788_is_file' => [
'<?php
function requireFile(string $s) : void {
if (is_file($s)) {
require_once($s);
}
}
'
],
];
}
}

0 comments on commit e29571d

Please sign in to comment.