2016-07-25 00:02:15 +02:00
|
|
|
<?php
|
2016-07-26 00:37:44 +02:00
|
|
|
namespace Psalm\Tests;
|
2016-07-25 00:02:15 +02:00
|
|
|
|
2017-04-25 05:45:02 +02:00
|
|
|
class IssueSuppressionTest extends TestCase
|
2016-07-25 00:02:15 +02:00
|
|
|
{
|
2017-04-25 05:45:02 +02:00
|
|
|
use Traits\FileCheckerValidCodeParseTestTrait;
|
2017-10-27 00:19:19 +02:00
|
|
|
use Traits\FileCheckerInvalidCodeParseTestTrait;
|
2016-07-25 00:02:15 +02:00
|
|
|
|
2017-01-13 20:07:23 +01:00
|
|
|
/**
|
2017-04-25 05:45:02 +02:00
|
|
|
* @return array
|
2017-01-13 20:07:23 +01:00
|
|
|
*/
|
2017-04-25 05:45:02 +02:00
|
|
|
public function providerFileCheckerValidCodeParse()
|
2016-07-25 00:02:15 +02:00
|
|
|
{
|
2017-04-25 05:45:02 +02: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-27 02:05:57 +02:00
|
|
|
}',
|
2017-04-25 05:45:02 +02:00
|
|
|
],
|
2017-10-27 00:19:19 +02:00
|
|
|
'undefinedClassOneLine' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
public function b() : void {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
}
|
|
|
|
}',
|
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFile' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();',
|
|
|
|
],
|
2017-04-25 05:45:02 +02:00
|
|
|
'excludeIssue' => [
|
|
|
|
'<?php
|
|
|
|
fooFoo();',
|
|
|
|
'assertions' => [],
|
2017-05-27 02:05:57 +02:00
|
|
|
'error_levels' => ['UndefinedFunction'],
|
|
|
|
],
|
2017-04-25 05:45:02 +02:00
|
|
|
];
|
2016-12-14 18:28:38 +01:00
|
|
|
}
|
2017-10-27 00:19:19 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function providerFileCheckerInvalidCodeParse()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'undefinedClassOneLineWithLineAfter' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
public function b() {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();
|
|
|
|
}
|
|
|
|
}',
|
|
|
|
'error_message' => 'UndefinedClass - src/somefile.php:8 - Class or interface C',
|
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFileAfter' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();',
|
|
|
|
'error_message' => 'UndefinedClass - src/somefile.php:6 - Class or interface C',
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
2016-07-25 00:02:15 +02:00
|
|
|
}
|