Example #1
0
 /**
  * Sets the global assets version
  *
  * @param CommandEvent $event A instance
  */
 public static function setAssetsVersion(CommandEvent $event)
 {
     $options = self::getOptions($event);
     $parametersFile = self::getParametersFile($options);
     if (is_file($parametersFile) && is_writable($parametersFile)) {
         $values = self::loadParametersFile($parametersFile);
         $parametersKey = self::getParametersKey($options);
         $assetsVersionHandler = new AssetsVersionHandler($event->getIO());
         if (isset($values[$parametersKey]) && $assetsVersionHandler->setAssetsVersion($values[$parametersKey], $options)) {
             self::saveParametersFile($parametersFile, $values);
         }
     } else {
         $event->getIO()->write(sprintf('<comment>Cannot set assets version because "%s" file does not exist or not writable</comment>', $parametersFile));
     }
 }
 /**
  * @dataProvider setAssetsVersionProvider
  */
 public function testSetAssetsVersion(array $parameters, array $options, array $expectedParameters, $isAssetsVersionChanged, $isAssetsVersionStrategyChanged)
 {
     $io = $this->getMock('Composer\\IO\\IOInterface');
     $writeIndex = 0;
     if ($isAssetsVersionChanged) {
         $io->expects($this->at($writeIndex))->method('write')->with('<info>Updating the "assets_version" parameter</info>');
         $writeIndex++;
     }
     if ($isAssetsVersionStrategyChanged) {
         $io->expects($this->at($writeIndex))->method('write')->with('<info>Initializing the "assets_version_strategy" parameter</info>');
     }
     $handler = new AssetsVersionHandler($io);
     $result = $handler->setAssetsVersion($parameters, $options);
     $expectedResult = $isAssetsVersionChanged || $isAssetsVersionStrategyChanged;
     // set expected assets_version for the time_hash strategy
     // we cannot set it in the data provider because this value depends on the current time
     if (isset($expectedParameters['assets_version_strategy']) && 'time_hash' === $expectedParameters['assets_version_strategy'] && isset($parameters['assets_version']) && 8 === strlen($parameters['assets_version'])) {
         $expectedParameters['assets_version'] = $parameters['assets_version'];
     }
     $this->assertEquals($expectedResult, $result);
     $this->assertEquals($expectedParameters, $parameters);
 }