public function saveConfigurationCacheSavesTheCurrentConfigurationAsPhpCode()
{
vfsStream::setup('Flow');
mkdir(vfsStream::url('Flow/Cache'));
$temporaryDirectoryPath = 'vfs://Flow/Cache/';
$cachedConfigurationsPathAndFilename = vfsStream::url('Flow/Cache/Configurations.php');
$mockConfigurations = [ConfigurationManager::CONFIGURATION_TYPE_ROUTES => ['routes'], ConfigurationManager::CONFIGURATION_TYPE_CACHES => ['caches'], ConfigurationManager::CONFIGURATION_TYPE_SETTINGS => ['settings' => ['foo' => 'bar']]];
$configurationManager = $this->getAccessibleMock(ConfigurationManager::class, ['postProcessConfiguration', 'constructConfigurationCachePath'], [], '', false);
$configurationManager->setTemporaryDirectoryPath($temporaryDirectoryPath);
$configurationManager->expects($this->any())->method('constructConfigurationCachePath')->willReturn($cachedConfigurationsPathAndFilename);
$configurationManager->_set('configurations', $mockConfigurations);
$configurationManager->_set('configurationTypes', [ConfigurationManager::CONFIGURATION_TYPE_ROUTES => array('processingType' => ConfigurationManager::CONFIGURATION_PROCESSING_TYPE_ROUTES, 'allowSplitSource' => false), ConfigurationManager::CONFIGURATION_TYPE_CACHES => array('processingType' => ConfigurationManager::CONFIGURATION_PROCESSING_TYPE_DEFAULT, 'allowSplitSource' => false), ConfigurationManager::CONFIGURATION_TYPE_SETTINGS => array('processingType' => ConfigurationManager::CONFIGURATION_PROCESSING_TYPE_DEFAULT, 'allowSplitSource' => false)]);
$configurationManager->_call('saveConfigurationCache');
$expectedInclusionCode = '<?php return ' . var_export($mockConfigurations, true) . ';';
$this->assertStringEqualsFile($cachedConfigurationsPathAndFilename, $expectedInclusionCode);
}