2016-07-24 18:02:15 -04:00
|
|
|
<?php
|
2016-07-25 18:37:44 -04:00
|
|
|
namespace Psalm\Tests;
|
2016-07-24 18:02:15 -04:00
|
|
|
|
2017-04-24 23:45:02 -04:00
|
|
|
class IssueSuppressionTest extends TestCase
|
2016-07-24 18:02:15 -04:00
|
|
|
{
|
2017-04-24 23:45:02 -04:00
|
|
|
use Traits\FileCheckerValidCodeParseTestTrait;
|
2017-10-26 18:19:19 -04:00
|
|
|
use Traits\FileCheckerInvalidCodeParseTestTrait;
|
2016-07-24 18:02:15 -04:00
|
|
|
|
2017-01-13 14:07:23 -05:00
|
|
|
/**
|
2017-04-24 23:45:02 -04:00
|
|
|
* @return array
|
2017-01-13 14:07:23 -05:00
|
|
|
*/
|
2017-04-24 23:45:02 -04:00
|
|
|
public function providerFileCheckerValidCodeParse()
|
2016-07-24 18:02:15 -04:00
|
|
|
{
|
2017-04-24 23:45:02 -04:00
|
|
|
return [
|
|
|
|
'undefinedClass' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
* @psalm-suppress MixedMethodCall
|
|
|
|
* @psalm-suppress MissingReturnType
|
|
|
|
*/
|
|
|
|
public function b() {
|
|
|
|
B::fooFoo()->barBar()->bat()->baz()->bam()->bas()->bee()->bet()->bes()->bis();
|
|
|
|
}
|
2017-05-26 20:05:57 -04:00
|
|
|
}',
|
2017-04-24 23:45:02 -04:00
|
|
|
],
|
2017-10-26 18:19:19 -04:00
|
|
|
'undefinedClassOneLine' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
2018-01-11 15:50:45 -05:00
|
|
|
public function b(): void {
|
2017-10-26 18:19:19 -04:00
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
}
|
|
|
|
}',
|
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFile' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();',
|
|
|
|
],
|
2017-04-24 23:45:02 -04:00
|
|
|
'excludeIssue' => [
|
|
|
|
'<?php
|
|
|
|
fooFoo();',
|
|
|
|
'assertions' => [],
|
2017-05-26 20:05:57 -04:00
|
|
|
'error_levels' => ['UndefinedFunction'],
|
|
|
|
],
|
2017-04-24 23:45:02 -04:00
|
|
|
];
|
2016-12-14 12:28:38 -05:00
|
|
|
}
|
2017-10-26 18:19:19 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function providerFileCheckerInvalidCodeParse()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'undefinedClassOneLineWithLineAfter' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
public function b() {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();
|
|
|
|
}
|
|
|
|
}',
|
2018-04-13 01:42:24 +02:00
|
|
|
'error_message' => 'UndefinedClass - src' . DIRECTORY_SEPARATOR . 'somefile.php:8 - Class or interface C',
|
2017-10-26 18:19:19 -04:00
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFileAfter' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();',
|
2018-04-13 01:42:24 +02:00
|
|
|
'error_message' => 'UndefinedClass - src' . DIRECTORY_SEPARATOR . 'somefile.php:6 - Class or interface C',
|
2017-10-26 18:19:19 -04:00
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
2016-07-24 18:02:15 -04:00
|
|
|
}
|