psalm-plugin-phpunit/Plugin.php

38 lines
1.2 KiB
PHP
Raw Normal View History

2018-11-14 06:36:33 +01:00
<?php
namespace Psalm\PhpUnitPlugin;
2019-02-10 07:19:06 +01:00
use Composer\Semver\Comparator;
use Composer\Semver\VersionParser;
use Muglug\PackageVersions\Versions;
2018-11-14 06:36:33 +01:00
use SimpleXMLElement;
use Psalm\Plugin\PluginEntryPointInterface;
use Psalm\Plugin\RegistrationInterface;
class Plugin implements PluginEntryPointInterface
{
/** @return void */
public function __invoke(RegistrationInterface $psalm, SimpleXMLElement $config = null)
{
$psalm->addStubFile(__DIR__ . '/stubs/Assert.php');
2019-02-10 07:19:06 +01:00
if ($this->packageVersionIs('phpunit/phpunit', '>=', '7.5')) {
$psalm->addStubFile(__DIR__ . '/stubs/Assert_75.php');
}
2018-11-14 06:36:33 +01:00
$psalm->addStubFile(__DIR__ . '/stubs/TestCase.php');
2018-11-25 00:27:52 +01:00
$psalm->addStubFile(__DIR__ . '/stubs/MockBuilder.php');
2018-11-25 07:40:30 +01:00
$psalm->addStubFile(__DIR__ . '/stubs/InvocationMocker.php');
2018-12-08 23:26:47 +01:00
$psalm->addStubFile(__DIR__ . '/stubs/Prophecy.php');
2018-11-14 06:36:33 +01:00
}
2019-02-10 07:19:06 +01:00
private function packageVersionIs(string $package, string $op, string $ref): bool
{
$currentVersion = (string) Versions::getShortVersion($package);
$parser = new VersionParser();
$currentVersion = $parser->normalize($currentVersion);
$ref = $parser->normalize($ref);
return Comparator::compare($currentVersion, $op, $ref);
}
2018-11-14 06:36:33 +01:00
}