public function testMultiVersionMatchFails()
 {
     $versionRequireStart = new VersionConstraint('>', '1.0');
     $versionRequireEnd = new VersionConstraint('<', '1.2');
     $versionProvide = new VersionConstraint('==', '1.2');
     $multiRequire = new MultiConstraint(array($versionRequireStart, $versionRequireEnd));
     $this->assertFalse($multiRequire->matches($versionProvide));
 }
 /**
  * Check if CakePHP version matches against a version
  *
  * @param string $matcher
  * @param string $version
  * @return bool
  */
 protected function matchesCakeVersion($matcher, $version)
 {
     $repositoryManager = $this->composer->getRepositoryManager();
     if ($repositoryManager) {
         $repos = $repositoryManager->getLocalRepository();
         if (!$repos) {
             return false;
         }
         $cake3 = new MultiConstraint(array(new VersionConstraint($matcher, $version), new VersionConstraint('!=', '9999999-dev')));
         $pool = new Pool('dev');
         $pool->addRepository($repos);
         $packages = $pool->whatProvides('cakephp/cakephp');
         foreach ($packages as $package) {
             $installed = new VersionConstraint('=', $package->getVersion());
             if ($cake3->matches($installed)) {
                 return true;
                 break;
             }
         }
     }
     return false;
 }
 /**
  * Change the default plugin location when cakephp >= 3.0
  */
 public function getLocations()
 {
     $repositoryManager = $this->composer->getRepositoryManager();
     if ($repositoryManager) {
         $repos = $repositoryManager->getLocalRepository();
         if (!$repos) {
             return $this->locations;
         }
         $cake3 = new MultiConstraint(array(new VersionConstraint('>=', '3.0.0'), new VersionConstraint('!=', '9999999-dev')));
         $pool = new Pool('dev');
         $pool->addRepository($repos);
         $packages = $pool->whatProvides('cakephp/cakephp');
         foreach ($packages as $package) {
             $installed = new VersionConstraint('=', $package->getVersion());
             if ($cake3->matches($installed)) {
                 $this->locations['plugin'] = 'plugins/{$name}/';
                 break;
             }
         }
     }
     return $this->locations;
 }