/
NoNullableReturnTypeDeclarationRuleTest.php
65 lines (56 loc) 路 2 KB
/
NoNullableReturnTypeDeclarationRuleTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
declare(strict_types=1);
/**
* Copyright (c) 2018-2020 Andreas M枚ller
*
* For the full copyright and license information, please view
* the LICENSE.md file that was distributed with this source code.
*
* @see https://github.com/ergebnis/phpstan-rules
*/
namespace Ergebnis\PHPStan\Rules\Test\Integration\Closures;
use Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule;
use Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase;
use PHPStan\Rules\Rule;
/**
* @internal
*
* @covers \Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule
*/
final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase
{
public function provideCasesWhereAnalysisShouldSucceed(): iterable
{
$paths = [
'closure-with-return-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Success/closure-with-return-type-declaration.php',
'closure-function-without-return-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Success/closure-without-return-type-declaration.php',
];
foreach ($paths as $description => $path) {
yield $description => [
$path,
];
}
}
public function provideCasesWhereAnalysisShouldFail(): iterable
{
$paths = [
'closure-with-nullable-return-type-declaration' => [
__DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-return-type-declaration.php',
[
'Closure has a nullable return type declaration.',
7,
],
],
];
foreach ($paths as $description => [$path, $error]) {
yield $description => [
$path,
$error,
];
}
}
protected function getRule(): Rule
{
return new NoNullableReturnTypeDeclarationRule();
}
}