public function setUp()
 {
     $package1 = $this->getMock('TYPO3\\Flow\\Package\\PackageInterface');
     $package1->expects($this->any())->method('getPackageKey')->will($this->returnValue('Foo.Package1'));
     $package1->expects($this->any())->method('getConfigurationPath')->will($this->returnValue(__DIR__ . '/../Fixture/Roles/Foo.Package1/'));
     $package2 = $this->getMock('TYPO3\\Flow\\Package\\PackageInterface');
     $package2->expects($this->any())->method('getPackageKey')->will($this->returnValue('Package2'));
     $package2->expects($this->any())->method('getConfigurationPath')->will($this->returnValue(__DIR__ . '/../Fixture/Roles/Package2/'));
     $this->configurationManager = new \TYPO3\Flow\Configuration\ConfigurationManager(new \TYPO3\Flow\Core\ApplicationContext('Testing'));
     $this->configurationManager->setPackages(array($package1->getPackageKey() => $package1, $package2->getPackageKey() => $package2));
     $this->configurationManager->injectConfigurationSource(new \TYPO3\Flow\Configuration\Source\YamlSource());
     $mockEnvironment = $this->getMock('TYPO3\\Flow\\Utility\\Environment', array(), array(), '', FALSE);
     $this->configurationManager->injectEnvironment($mockEnvironment);
     $this->policyService = $this->getAccessibleMock('TYPO3\\Flow\\Security\\Policy\\PolicyService', array('setAclsForEverybodyRole'), array(), '', FALSE);
     $this->policyService->injectConfigurationManager($this->configurationManager);
     $this->policyService->_set('policy', $this->configurationManager->getConfiguration(\TYPO3\Flow\Configuration\ConfigurationManager::CONFIGURATION_TYPE_POLICY));
 }
 /**
  * @param \Mrimann\CoMo\Domain\Model\Repository $repository
  * @return string path to the cache directory for this repository
  */
 protected function getCachePath(\Mrimann\CoMo\Domain\Model\Repository $repository)
 {
     $applicationContext = new \TYPO3\Flow\Core\ApplicationContext('Development');
     $environment = new \TYPO3\Flow\Utility\Environment($applicationContext);
     // Fiddle out the path to the temporary directory, depending on the Flow-Context
     $this->configurationManager->injectEnvironment($environment);
     $this->settings = $this->configurationManager->getConfiguration('Settings', 'Mrimann.CoMo');
     $environment->setTemporaryDirectoryBase($this->settings['cacheBasePath']);
     $workingBaseDirectory = $environment->getPathToTemporaryDirectory();
     // Create the working directory for this repository
     $workingDirectory = $workingBaseDirectory . 'Mrimann.CoMo/' . $repository->getIdentity();
     if (!is_dir($workingDirectory)) {
         mkdir($workingDirectory, 0777, TRUE);
     }
     return $workingDirectory;
 }