Chris@12: package = new Package('sitedirect/some_name', '1.0.9', '1.0'); Chris@12: $this->installer = new SiteDirectInstaller( Chris@12: $this->package, Chris@12: new Composer() Chris@12: ); Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * @dataProvider dataProvider Chris@12: */ Chris@12: public function testInflectPackageVars($data, $expected) Chris@12: { Chris@12: $result = $this->installer->inflectPackageVars($data); Chris@12: $this->assertEquals($result, $expected); Chris@12: } Chris@12: Chris@12: /** Chris@12: * @dataProvider dataProvider Chris@12: */ Chris@12: public function testInstallPath($data, $expected) Chris@12: { Chris@12: $result = $this->installer->inflectPackageVars($data); Chris@12: $path = $this->createPackage($data); Chris@12: Chris@12: // use $result to get the proper capitalization for the vendor path Chris@12: $expectedPath = "modules/{$result['vendor']}/{$result['name']}/"; Chris@12: $notExpectedPath = "modules/{$data['vendor']}/{$data['name']}/"; Chris@12: $this->assertEquals($expectedPath, $path); Chris@12: $this->assertNotEquals($notExpectedPath, $path); Chris@12: } Chris@12: Chris@12: /** Chris@12: * @param $data Chris@12: * @return string Chris@12: */ Chris@12: private function createPackage($data) Chris@12: { Chris@12: $fullName = "{$data['vendor']}/{$data['name']}"; Chris@12: Chris@12: $package = new Package($fullName, '1.0', '1.0'); Chris@12: $package->setType('sitedirect-module'); Chris@12: $installer = new SiteDirectInstaller($package, new Composer()); Chris@12: Chris@12: $path = $installer->getInstallPath($package, 'sitedirect'); Chris@12: return $path; Chris@12: } Chris@12: Chris@12: public function dataProvider() Chris@12: { Chris@12: return array( Chris@12: array( Chris@12: 'data' => array( Chris@12: 'name' => 'kernel', Chris@12: 'vendor' => 'sitedirect', Chris@12: 'type' => 'sitedirect-module', Chris@12: ), Chris@12: 'expected' => array( Chris@12: 'name' => 'Kernel', Chris@12: 'vendor' => 'SiteDirect', Chris@12: 'type' => 'sitedirect-module', Chris@12: ) Chris@12: ), Chris@12: array( Chris@12: 'data' => array( Chris@12: 'name' => 'that_guy', Chris@12: 'vendor' => 'whatGuy', Chris@12: 'type' => 'sitedirect-module', Chris@12: ), Chris@12: 'expected' => array( Chris@12: 'name' => 'ThatGuy', Chris@12: 'vendor' => 'whatGuy', Chris@12: 'type' => 'sitedirect-module', Chris@12: ) Chris@12: ), Chris@12: array( Chris@12: 'data' => array( Chris@12: 'name' => 'checkout', Chris@12: 'vendor' => 'someVendor', Chris@12: 'type' => 'sitedirect-plugin', Chris@12: ), Chris@12: 'expected' => array( Chris@12: 'name' => 'Checkout', Chris@12: 'vendor' => 'someVendor', Chris@12: 'type' => 'sitedirect-plugin', Chris@12: ) Chris@12: ), Chris@12: array( Chris@12: 'data' => array( Chris@12: 'name' => 'checkout', Chris@12: 'vendor' => 'siteDirect', Chris@12: 'type' => 'sitedirect-plugin', Chris@12: ), Chris@12: 'expected' => array( Chris@12: 'name' => 'Checkout', Chris@12: 'vendor' => 'SiteDirect', Chris@12: 'type' => 'sitedirect-plugin', Chris@12: ) Chris@12: ), Chris@12: ); Chris@12: } Chris@12: }