/**
  * @test
  */
 public function createReturnsAnInstanceOfTheDefaultPackageIfNoCustomPackageExists()
 {
     $packagePath = 'vfs://Packages/Some/Path/Some.Package/';
     mkdir($packagePath, 0777, true);
     file_put_contents($packagePath . 'composer.json', '{"name": "some/package", "type": "neos-test"}');
     $package = $this->packageFactory->create('vfs://Packages/', 'Some/Path/Some.Package/', 'Some.Package', 'some/package');
     $this->assertSame(Package::class, get_class($package));
 }
 /**
  * Registers a package under the given composer name with the configuration.
  * This uses the PackageFactory to create the Package instance and sets it
  * to all relevant data arrays.
  *
  * @param string $composerName
  * @param array $packageStateConfiguration
  * @return void
  */
 protected function registerPackageFromStateConfiguration($composerName, $packageStateConfiguration)
 {
     $packagePath = isset($packageStateConfiguration['packagePath']) ? $packageStateConfiguration['packagePath'] : null;
     $packageClassInformation = isset($packageStateConfiguration['packageClassInformation']) ? $packageStateConfiguration['packageClassInformation'] : null;
     $package = $this->packageFactory->create($this->packagesBasePath, $packagePath, $packageStateConfiguration['packageKey'], $composerName, $packageStateConfiguration['autoloadConfiguration'], $packageClassInformation);
     $this->packageKeys[strtolower($package->getPackageKey())] = $package->getPackageKey();
     $this->packages[$package->getPackageKey()] = $package;
     if (isset($this->activePackages[$package->getPackageKey()])) {
         unset($this->activePackages[$package->getPackageKey()]);
     }
     if (isset($packageStateConfiguration['state']) && $packageStateConfiguration['state'] === self::PACKAGE_STATE_ACTIVE || $package->isProtected()) {
         $this->activePackages[$package->getPackageKey()] = $package;
     }
 }