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