1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 04:45:20 +01:00
psalm/tests/DeprecatedAnnotationTest.php

156 lines
4.5 KiB
PHP
Raw Normal View History

<?php
namespace Psalm\Tests;
class DeprecatedAnnotationTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
/**
2019-03-01 21:55:20 +01:00
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
*/
public function providerValidCodeParse()
{
return [
'deprecatedMethod' => [
'<?php
class Foo {
/**
* @deprecated
*/
public static function barBar(): void {
}
}',
],
'deprecatedClassUsedInsideClass' => [
'<?php
/**
* @deprecated
*/
class Foo {
public static function barBar(): void {
new Foo();
}
}',
],
'annotationOnStatement' => [
'<?php
/** @deprecated */
$a = "A";'
],
];
}
/**
2019-03-01 21:55:20 +01:00
* @return iterable<string,array{string,error_message:string,2?:string[],3?:bool,4?:string}>
*/
public function providerInvalidCodeParse()
{
return [
'deprecatedMethodWithCall' => [
'<?php
class Foo {
/**
* @deprecated
*/
public static function barBar(): void {
}
}
Foo::barBar();',
'error_message' => 'DeprecatedMethod',
],
'deprecatedClassWithStaticCall' => [
'<?php
/**
* @deprecated
*/
class Foo {
public static function barBar(): void {
}
}
Foo::barBar();',
'error_message' => 'DeprecatedClass',
],
'deprecatedClassWithNew' => [
'<?php
/**
* @deprecated
*/
class Foo { }
$a = new Foo();',
'error_message' => 'DeprecatedClass',
],
'deprecatedClassWithExtends' => [
'<?php
/**
* @deprecated
*/
class Foo { }
class Bar extends Foo {}',
'error_message' => 'DeprecatedClass',
],
'deprecatedPropertyGet' => [
'<?php
class A{
/**
* @deprecated
* @var ?int
*/
public $foo;
}
echo (new A)->foo;',
'error_message' => 'DeprecatedProperty',
],
'deprecatedPropertySet' => [
'<?php
class A{
/**
* @deprecated
* @var ?int
*/
public $foo;
}
$a = new A;
$a->foo = 5;',
'error_message' => 'DeprecatedProperty',
],
'deprecatedClassConstant' => [
'<?php
/**
* @deprecated
*/
class Foo {
public const FOO = 5;
}
echo Foo::FOO;',
'error_message' => 'DeprecatedClass',
],
'deprecatedClassStringConstant' => [
'<?php
/**
* @deprecated
*/
class Foo {}
echo Foo::class;',
'error_message' => 'DeprecatedClass',
2019-07-05 22:24:00 +02:00
],
'deprecatedClassAsParam' => [
'<?php
/**
* @deprecated
*/
class DeprecatedClass{}
function foo(DeprecatedClass $deprecatedClass): void {}',
'error_message' => 'DeprecatedClass',
],
];
}
}