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