Browse Source

Cache the version parser used in TestCase

Jordi Boggiano 13 years ago
parent
commit
63c6c6d875
1 changed files with 14 additions and 4 deletions
  1. 14 4
      tests/Composer/Test/TestCase.php

+ 14 - 4
tests/Composer/Test/TestCase.php

@@ -19,19 +19,29 @@ use Composer\Util\Filesystem;
 
 abstract class TestCase extends \PHPUnit_Framework_TestCase
 {
+    private static $parser;
+
+    protected static function getVersionParser()
+    {
+        if (!self::$parser) {
+            self::$parser = new VersionParser();
+        }
+
+        return self::$parser;
+    }
+
     protected function getVersionConstraint($operator, $version)
     {
-        $versionParser = new VersionParser();
         return new VersionConstraint(
             $operator,
-            $versionParser->normalize($version)
+            self::getVersionParser()->normalize($version)
         );
     }
 
     protected function getPackage($name, $version)
     {
-        $versionParser = new VersionParser();
-        $normVersion = $versionParser->normalize($version);
+        $normVersion = self::getVersionParser()->normalize($version);
+
         return new MemoryPackage($name, $normVersion, $version);
     }