]> git.mxchange.org Git - friendica-addons.git/blob
c2b9b81a326921c3fa51738df703e4d1359e4981
[friendica-addons.git] /
1 <?php
2
3 /*
4  * This file is part of the Fxp Composer Asset Plugin package.
5  *
6  * (c) François Pluchino <francois.pluchino@gmail.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Fxp\Composer\AssetPlugin\Tests\Fixtures\Repository\Vcs;
13
14 /**
15  * Mock vcs driver for packages test.
16  *
17  * @author François Pluchino <francois.pluchino@gmail.com>
18  */
19 class MockVcsDriverWithPackages extends MockVcsDriver
20 {
21     protected $composer = array(
22         'branch:master' => array(
23             'name' => 'foobar',
24             'version' => '2.0',
25         ),
26         'branch:1.x' => array(
27             'name' => 'foobar',
28             'version' => '1.1',
29         ),
30         'tag:v1.0.0' => array(
31             'name' => 'foobar',
32             'version' => '1.0',
33         ),
34         'tag:v1.0.1' => array(
35             'name' => 'foobar',
36         ),
37         'tag:invalid' => array(
38             'name' => 'foobar',
39             'description' => 'invalid tag name',
40         ),
41     );
42
43     /**
44      * {@inheritdoc}
45      */
46     public function getRootIdentifier()
47     {
48         return 'master';
49     }
50
51     /**
52      * {@inheritdoc}
53      */
54     public function hasComposerFile($identifier)
55     {
56         return isset($this->composer['branch:'.$identifier])
57             || isset($this->composer['tag:'.$identifier]);
58     }
59
60     /**
61      * {@inheritdoc}
62      */
63     public function getComposerInformation($identifier)
64     {
65         $composer = null;
66
67         if ($this->hasComposerFile($identifier)) {
68             if (isset($this->composer['branch:'.$identifier])) {
69                 $composer = $this->composer['branch:'.$identifier];
70             } elseif (isset($this->composer['tag:'.$identifier])) {
71                 $composer = $this->composer['tag:'.$identifier];
72             }
73         }
74
75         return $composer;
76     }
77
78     /**
79      * {@inheritdoc}
80      */
81     public function getBranches()
82     {
83         return $this->getDataPackages('branch');
84     }
85
86     /**
87      * {@inheritdoc}
88      */
89     public function getTags()
90     {
91         return $this->getDataPackages('tag');
92     }
93
94     /**
95      * @param string $type
96      *
97      * @return array
98      */
99     protected function getDataPackages($type)
100     {
101         $packages = array();
102
103         foreach ($this->composer as $name => $data) {
104             if (0 === strpos($name, $type.':')) {
105                 $name = substr($name, strpos($name, ':') + 1);
106                 $packages[$name] = $data;
107             }
108         }
109
110         return $packages;
111     }
112 }