/**
* @test
*/
public function getClassFilesReturnsAListOfClassFilesOfThePackage()
{
$packagePath = 'vfs://Packages/Application/Acme.MyPackage/';
mkdir($packagePath, 0777, true);
$rawComposerManifest = '{"name": "acme/mypackage", "type": "flow-test", "autoload": {"psr-0": {"Acme\\\\MyPackage": "Classes/"}}}';
$composerManifest = json_decode($rawComposerManifest, true);
file_put_contents($packagePath . 'composer.json', $rawComposerManifest);
mkdir($packagePath . 'Classes/Acme/MyPackage/Controller', 0770, true);
mkdir($packagePath . 'Classes/Acme/MyPackage/Domain/Model', 0770, true);
file_put_contents($packagePath . 'Classes/Acme/MyPackage/Controller/FooController.php', '');
file_put_contents($packagePath . 'Classes/Acme/MyPackage/Domain/Model/Foo.php', '');
file_put_contents($packagePath . 'Classes/Acme/MyPackage/Domain/Model/Bar.php', '');
$expectedClassFilesArray = array('Acme\\MyPackage\\Controller\\FooController' => $packagePath . 'Classes/Acme/MyPackage/Controller/FooController.php', 'Acme\\MyPackage\\Domain\\Model\\Foo' => $packagePath . 'Classes/Acme/MyPackage/Domain/Model/Foo.php', 'Acme\\MyPackage\\Domain\\Model\\Bar' => $packagePath . 'Classes/Acme/MyPackage/Domain/Model/Bar.php');
$package = new Package('Acme.MyPackage', 'acme/mypackage', $packagePath, $composerManifest['autoload']);
foreach ($package->getClassFiles() as $className => $classPath) {
$this->assertArrayHasKey($className, $expectedClassFilesArray);
$this->assertEquals($expectedClassFilesArray[$className], $classPath);
}
}