e36210d5ae04a09d8ca2efc4b90cdb0c5eaad14b
[yaffs-website] / vendor / composer / installers / tests / Composer / Installers / Test / SiteDirectInstallerTest.php
1 <?php
2
3 namespace Composer\Installers\Test;
4
5 use Composer\Composer;
6 use Composer\Installers\SiteDirectInstaller;
7 use Composer\Package\Package;
8
9 class SiteDirectInstallerTest extends TestCase
10 {
11     /** @var SiteDirectInstaller $installer */
12     protected $installer;
13
14     /** @var Package */
15     private $package;
16
17     public function SetUp()
18     {
19         $this->package = new Package('sitedirect/some_name', '1.0.9', '1.0');
20         $this->installer = new SiteDirectInstaller(
21             $this->package,
22             new Composer()
23         );
24
25     }
26
27     /**
28      * @dataProvider dataProvider
29      */
30     public function testInflectPackageVars($data, $expected)
31     {
32         $result = $this->installer->inflectPackageVars($data);
33         $this->assertEquals($result, $expected);
34     }
35
36     /**
37      * @dataProvider dataProvider
38      */
39     public function testInstallPath($data, $expected)
40     {
41         $result = $this->installer->inflectPackageVars($data);
42         $path = $this->createPackage($data);
43
44         // use $result to get the proper capitalization for the vendor path
45         $expectedPath = "modules/{$result['vendor']}/{$result['name']}/";
46         $notExpectedPath = "modules/{$data['vendor']}/{$data['name']}/";
47         $this->assertEquals($expectedPath, $path);
48         $this->assertNotEquals($notExpectedPath, $path);
49     }
50
51     /**
52      * @param $data
53      * @return string
54      */
55     private function createPackage($data)
56     {
57         $fullName = "{$data['vendor']}/{$data['name']}";
58
59         $package = new Package($fullName, '1.0', '1.0');
60         $package->setType('sitedirect-module');
61         $installer = new SiteDirectInstaller($package, new Composer());
62
63         $path = $installer->getInstallPath($package, 'sitedirect');
64         return $path;
65     }
66
67     public function dataProvider()
68     {
69         return array(
70             array(
71                 'data' => array(
72                     'name' => 'kernel',
73                     'vendor' => 'sitedirect',
74                     'type' => 'sitedirect-module',
75                 ),
76                 'expected' => array(
77                     'name' => 'Kernel',
78                     'vendor' => 'SiteDirect',
79                     'type' => 'sitedirect-module',
80                 )
81             ),
82             array(
83                 'data' => array(
84                     'name' => 'that_guy',
85                     'vendor' => 'whatGuy',
86                     'type' => 'sitedirect-module',
87                 ),
88                 'expected' => array(
89                     'name' => 'ThatGuy',
90                     'vendor' => 'whatGuy',
91                     'type' => 'sitedirect-module',
92                 )
93             ),
94             array(
95                 'data' => array(
96                     'name' => 'checkout',
97                     'vendor' => 'someVendor',
98                     'type' => 'sitedirect-plugin',
99                 ),
100                 'expected' => array(
101                     'name' => 'Checkout',
102                     'vendor' => 'someVendor',
103                     'type' => 'sitedirect-plugin',
104                 )
105             ),
106             array(
107                 'data' => array(
108                     'name' => 'checkout',
109                     'vendor' => 'siteDirect',
110                     'type' => 'sitedirect-plugin',
111                 ),
112                 'expected' => array(
113                     'name' => 'Checkout',
114                     'vendor' => 'SiteDirect',
115                     'type' => 'sitedirect-plugin',
116                 )
117             ),
118         );
119     }
120 }