Yaffs site version 1.1
[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
21 abstract class TestCase extends \PHPUnit_Framework_TestCase
22 {
23     private static $parser;
24
25     protected static function getVersionParser()
26     {
27         if (!self::$parser) {
28             self::$parser = new VersionParser();
29         }
30
31         return self::$parser;
32     }
33
34     protected function getVersionConstraint($operator, $version)
35     {
36         return new VersionConstraint(
37             $operator,
38             self::getVersionParser()->normalize($version)
39         );
40     }
41
42     protected function getPackage($name, $version)
43     {
44         $normVersion = self::getVersionParser()->normalize($version);
45
46         return new Package($name, $normVersion, $version);
47     }
48
49     protected function getAliasPackage($package, $version)
50     {
51         $normVersion = self::getVersionParser()->normalize($version);
52
53         return new AliasPackage($package, $normVersion, $version);
54     }
55
56     protected function ensureDirectoryExistsAndClear($directory)
57     {
58         $fs = new Filesystem();
59         if (is_dir($directory)) {
60             $fs->removeDirectory($directory);
61         }
62         mkdir($directory, 0777, true);
63     }
64 }