/**
  * @covers ::reset
  */
 public function testReset()
 {
     $packages = ['package' => ['machine_name' => 'package', 'config' => ['example.config', 'example.config3'], 'dependencies' => [], 'bundle' => 'giraffe'], 'package2' => ['machine_name' => 'package2', 'config' => ['example.config2'], 'dependencies' => [], 'bundle' => 'giraffe']];
     $this->featuresManager->setPackages($packages);
     $config_item = new ConfigurationItem('example', [], ['package' => 'package']);
     $config_item2 = new ConfigurationItem('example2', [], ['package' => 'package2']);
     $this->featuresManager->setConfigCollection([$config_item, $config_item2]);
     $this->featuresManager->reset();
     $this->assertEmpty($this->featuresManager->getPackages());
     $config_collection = $this->featuresManager->getConfigCollection();
     $this->assertEquals('', $config_collection[0]->getPackage());
     $this->assertEquals('', $config_collection[1]->getPackage());
 }
 /**
  * Assigns a given subdirectory to configuration of specified types.
  *
  * @param string $subdirectory
  *   The subdirectory that designated configuration should be exported to.
  */
 protected function assignSubdirectoryByConfigTypes($subdirectory)
 {
     $current_bundle = $this->assigner->getBundle();
     $settings = $current_bundle->getAssignmentSettings($this->getPluginId());
     $types = $settings['types']['config'];
     $config_collection = $this->featuresManager->getConfigCollection();
     foreach ($config_collection as &$item) {
         if (in_array($item->getType(), $types)) {
             $item->setSubdirectory($subdirectory);
         }
     }
     // Clean up the $item pass by reference.
     unset($item);
     $this->featuresManager->setConfigCollection($config_collection);
 }
 /**
  * @covers ::prepareFiles
  */
 public function testPrepareFiles()
 {
     $packages = [];
     $packages['test_feature'] = new Package('test_feature', ['config' => ['test_config'], 'name' => 'Test feature']);
     $config_collection = [];
     $config_collection['test_config'] = new ConfigurationItem('test_config', ['foo' => 'bar']);
     $this->featuresManager->setConfigCollection($config_collection);
     $this->featuresManager->prepareFiles($packages);
     $files = $packages['test_feature']->getFiles();
     $this->assertCount(2, $files);
     $this->assertEquals('test_feature.info.yml', $files['info']['filename']);
     $this->assertEquals(Yaml::encode(['name' => 'Test feature', 'type' => 'module', 'core' => '8.x', 'config' => ['test_config'], 'features' => TRUE]), $files['info']['string']);
     $this->assertEquals('test_config.yml', $files['test_config']['filename']);
     $this->assertEquals(Yaml::encode(['foo' => 'bar']), $files['test_config']['string']);
 }
 /**
  * @covers ::setConfigCollection
  * @covers ::getConfigCollection
  */
 public function testConfigCollection()
 {
     $config = ['config' => 'collection'];
     $this->featuresManager->setConfigCollection($config);
     $this->assertArrayEquals($config, $this->featuresManager->getConfigCollection());
 }