0e3e7319b74a0cddf5ccf07d22139dffe2bd1b97
[yaffs-website] / vendor / composer / installers / tests / Composer / Installers / Test / TestCase.php
1 <?php
2
3 /*
4  * This file is part of Composer.
5  *
6  * (c) Nils Adermann <naderman@naderman.de>
7  *     Jordi Boggiano <j.boggiano@seld.be>
8  *
9  * For the full copyright and license information, please view the LICENSE
10  * file that was distributed with this source code.
11  */
12
13 namespace Composer\Installers\Test;
14
15 use Composer\Package\Version\VersionParser;
16 use Composer\Package\Package;
17 use Composer\Package\AliasPackage;
18 use Composer\Package\LinkConstraint\VersionConstraint;
19 use Composer\Util\Filesystem;
20 use PHPUnit\Framework\TestCase as BaseTestCase;
21
22 abstract class TestCase extends BaseTestCase
23 {
24     private static $parser;
25
26     protected static function getVersionParser()
27     {
28         if (!self::$parser) {
29             self::$parser = new VersionParser();
30         }
31
32         return self::$parser;
33     }
34
35     protected function getVersionConstraint($operator, $version)
36     {
37         return new VersionConstraint(
38             $operator,
39             self::getVersionParser()->normalize($version)
40         );
41     }
42
43     protected function getPackage($name, $version)
44     {
45         $normVersion = self::getVersionParser()->normalize($version);
46
47         return new Package($name, $normVersion, $version);
48     }
49
50     protected function getAliasPackage($package, $version)
51     {
52         $normVersion = self::getVersionParser()->normalize($version);
53
54         return new AliasPackage($package, $normVersion, $version);
55     }
56
57     protected function ensureDirectoryExistsAndClear($directory)
58     {
59         $fs = new Filesystem();
60         if (is_dir($directory)) {
61             $fs->removeDirectory($directory);
62         }
63         mkdir($directory, 0777, true);
64     }
65 }