Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Composer\Installers\Test;
|
Chris@0
|
4
|
Chris@0
|
5 use Composer\Installers\CraftInstaller;
|
Chris@0
|
6
|
Chris@0
|
7 /**
|
Chris@0
|
8 * Tests for the CraftInstaller Class
|
Chris@0
|
9 *
|
Chris@0
|
10 * @coversDefaultClass Composer\Installers\CraftInstaller
|
Chris@0
|
11 */
|
Chris@0
|
12 class CraftInstallerTest extends TestCase
|
Chris@0
|
13 {
|
Chris@0
|
14 /** @var CraftInstaller */
|
Chris@0
|
15 private $installer;
|
Chris@0
|
16
|
Chris@0
|
17 /**
|
Chris@0
|
18 * Sets up the fixture, for example, instantiate the class-under-test.
|
Chris@0
|
19 *
|
Chris@0
|
20 * This method is called before a test is executed.
|
Chris@0
|
21 */
|
Chris@0
|
22 final public function setup()
|
Chris@0
|
23 {
|
Chris@0
|
24 $this->installer = new CraftInstaller();
|
Chris@0
|
25 }
|
Chris@0
|
26
|
Chris@0
|
27 /**
|
Chris@0
|
28 * @param string $packageName
|
Chris@0
|
29 * @param string $expectedName
|
Chris@0
|
30 *
|
Chris@0
|
31 * @covers ::inflectPackageVars
|
Chris@0
|
32 *
|
Chris@0
|
33 * @dataProvider provideExpectedInflectionResults
|
Chris@0
|
34 */
|
Chris@0
|
35 final public function testInflectPackageVars($packageName, $expectedName)
|
Chris@0
|
36 {
|
Chris@0
|
37 $installer = $this->installer;
|
Chris@0
|
38
|
Chris@0
|
39 $vars = array('name' => $packageName);
|
Chris@0
|
40 $expected = array('name' => $expectedName);
|
Chris@0
|
41
|
Chris@0
|
42 $actual = $installer->inflectPackageVars($vars);
|
Chris@0
|
43
|
Chris@0
|
44 $this->assertEquals($actual, $expected);
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 /**
|
Chris@0
|
48 * Provides various names for packages and the expected result after inflection
|
Chris@0
|
49 *
|
Chris@0
|
50 * @return array
|
Chris@0
|
51 */
|
Chris@0
|
52 final public function provideExpectedInflectionResults()
|
Chris@0
|
53 {
|
Chris@0
|
54 return array(
|
Chris@0
|
55 // lowercase
|
Chris@0
|
56 array('foo', 'foo'),
|
Chris@0
|
57 array('craftfoo', 'craftfoo'),
|
Chris@0
|
58 array('fooplugin', 'fooplugin'),
|
Chris@0
|
59 array('craftfooplugin', 'craftfooplugin'),
|
Chris@0
|
60 // lowercase - dash
|
Chris@0
|
61 array('craft-foo', 'foo'),
|
Chris@0
|
62 array('foo-plugin', 'foo'),
|
Chris@0
|
63 array('craft-foo-plugin', 'foo'),
|
Chris@0
|
64 // lowercase - underscore
|
Chris@0
|
65 array('craft_foo', 'craft_foo'),
|
Chris@0
|
66 array('foo_plugin', 'foo_plugin'),
|
Chris@0
|
67 array('craft_foo_plugin', 'craft_foo_plugin'),
|
Chris@0
|
68 // CamelCase
|
Chris@0
|
69 array('Foo', 'Foo'),
|
Chris@0
|
70 array('CraftFoo', 'CraftFoo'),
|
Chris@0
|
71 array('FooPlugin', 'FooPlugin'),
|
Chris@0
|
72 array('CraftFooPlugin', 'CraftFooPlugin'),
|
Chris@0
|
73 // CamelCase - Dash
|
Chris@0
|
74 array('Craft-Foo', 'Foo'),
|
Chris@0
|
75 array('Foo-Plugin', 'Foo'),
|
Chris@0
|
76 array('Craft-Foo-Plugin', 'Foo'),
|
Chris@0
|
77 // CamelCase - underscore
|
Chris@0
|
78 array('Craft_Foo', 'Craft_Foo'),
|
Chris@0
|
79 array('Foo_Plugin', 'Foo_Plugin'),
|
Chris@0
|
80 array('Craft_Foo_Plugin', 'Craft_Foo_Plugin'),
|
Chris@0
|
81 );
|
Chris@0
|
82 }
|
Chris@0
|
83 }
|