예제 #1
0
        public void Match3Test()
        {
            VersionPattern vp = new VersionPattern("2.3.1.4");

            Assert.IsFalse(vp.Matches(new Version("2.3")));
            Assert.IsFalse(vp.Matches(new Version("2.3.1")));
            Assert.IsTrue(vp.Matches(new Version("2.3.1.4")));
        }
예제 #2
0
 public static IEnumerable <string> Find(string addinsBaseDir)
 {
     return(Directory
            .EnumerateDirectories(addinsBaseDir, "Cake.Tasks.*", SearchOption.TopDirectoryOnly)
            .Select(dir =>
     {
         Match versionMatch = VersionPattern.Match(dir);
         return (path: dir,
                 name: dir.Substring(0, versionMatch.Index - 1),
                 version: SemVersion.Parse(versionMatch.Value));
     })
            .ToLookup(addin => addin.name)
            .Select(addinSet => addinSet.OrderByDescending(addin => addin.version).First().path));
 }
예제 #3
0
        public Version[] GetVersions(UnresolvedPackage package, VersionPattern pattern)
        {
            Version[]      all      = _versions[package.PackageId];
            List <Version> matching = new List <Version>();

            foreach (Version v in all)
            {
                if (pattern.Matches(v))
                {
                    matching.Add(v);
                }
            }

            return(matching.ToArray());
        }
        public void LoadVersionPattern_VersionPatternLoaded()
        {
            var pattern = new VersionPattern(Constants.VersionPatternString);
           
            Assert.AreEqual(pattern.Major.ToString(), "1");
            Assert.AreEqual(pattern.Major.Type, VersionPatternElementType.Literal);
            Assert.AreEqual(pattern.Major.Part, "1");

            Assert.AreEqual(pattern.Minor.ToString(), AssemblyPatcher.Constants.PassThroughVersionPartGenerationToken);
            Assert.AreEqual(pattern.Minor.Type, VersionPatternElementType.Token);
            Assert.AreEqual(pattern.Minor.Part, AssemblyPatcher.Constants.PassThroughVersionPartGenerationToken);

            Assert.AreEqual(pattern.Build.ToString(), AssemblyPatcher.Constants.IncrementingVersionPartGeneratorToken);
            Assert.AreEqual(pattern.Build.Type, VersionPatternElementType.Token);
            Assert.AreEqual(pattern.Build.Part, AssemblyPatcher.Constants.IncrementingVersionPartGeneratorToken);

            Assert.AreEqual(pattern.Revision.ToString(), Constants.TestVersionPartGeneratorToken);
            Assert.AreEqual(pattern.Revision.Type, VersionPatternElementType.Token);
            Assert.AreEqual(pattern.Revision.Part, Constants.TestVersionPartGeneratorToken);
        }
예제 #5
0
        public static TsVersionSigned?TryParse(string version, string platform, string sign)
        {
            var match = VersionPattern.Match(version);

            if (!match.Success)
            {
                return(null);
            }
            if (!ulong.TryParse(match.Groups[2].Value, out var build))
            {
                return(null);
            }
            var prelim = new TsVersionSigned(version, platform, build, sign);

            if (!prelim.CheckValid())
            {
                return(null);
            }
            return(prelim);
        }
예제 #6
0
 public void ValidConstructorTest()
 {
     VersionPattern p1 = new VersionPattern("11.1.1.*");
     VersionPattern p2 = new VersionPattern("12.4.*");
 }