コード例 #1
0
        public void VersionSortTest()
        {
            SemanticVersion[] versions = new SemanticVersion[] {
                new SemanticVersion(1, 0, 0, null, null),
                new SemanticVersion(0, 0, 0, null, null),
                new SemanticVersion(3, 0, 0, null, null)
            };

            Assert.AreEqual(0, versions.OrderBy(x => x).FirstOrDefault().Major);
            Assert.AreEqual(3, versions.OrderByDescending(x => x).FirstOrDefault().Major);
        }
コード例 #2
0
        public void MetadataDoesNotInfluencePrecedence()
        {
            var versions = new SemanticVersion[]
            {
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("2")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("1")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("3")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("b")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("a")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("c")),
                new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("c.1")),
            };

            Assert.Equal(versions, versions.OrderByDescending(x => x));
            Assert.Equal(versions, versions.OrderBy(x => x));
        }
コード例 #3
0
        public void TestSorting()
        {
            var versions = new SemanticVersion[]
            {
                SemanticVersion.Parse("1.0.0"),
                SemanticVersion.Parse("1.0.0+debug"),
                SemanticVersion.Parse("4.3.5"),
                SemanticVersion.Parse("4.3.2-beta1+fix2"),
                SemanticVersion.Parse("3.0.0"),
                SemanticVersion.Parse("4.3.2-beta1+fix1"),
                SemanticVersion.Parse("4.3.0"),
                SemanticVersion.Parse("2.0.0"),
                SemanticVersion.Parse("4.3.1"),
                SemanticVersion.Parse("4.3.2-beta1"),
                SemanticVersion.Parse("4.1.0"),
                SemanticVersion.Parse("4.3.2-beta2"),
                SemanticVersion.Parse("5.0.0"),
            };

            var sorted = new SemanticVersion[]
            {
                SemanticVersion.Parse("1.0.0"),
                SemanticVersion.Parse("1.0.0+debug"),
                SemanticVersion.Parse("2.0.0"),
                SemanticVersion.Parse("3.0.0"),
                SemanticVersion.Parse("4.1.0"),
                SemanticVersion.Parse("4.3.0"),
                SemanticVersion.Parse("4.3.1"),
                SemanticVersion.Parse("4.3.2-beta1"),
                SemanticVersion.Parse("4.3.2-beta1+fix1"),
                SemanticVersion.Parse("4.3.2-beta1+fix2"),
                SemanticVersion.Parse("4.3.2-beta2"),
                SemanticVersion.Parse("4.3.5"),
                SemanticVersion.Parse("5.0.0"),
            };

            Assert.IsTrue(versions.OrderBy(x => x).SequenceEqual(sorted));
        }
コード例 #4
0
        public void Create_Chronology_Valid_Disordered()
        {
            var ch = new SemanticVersion[]
            {
                new SemanticVersion(2, 2),
                new SemanticVersion(1, 0),
                new SemanticVersion(1, 1),
            };
            var mv = new MonotonicVersioner(ch);

            Assert.AreEqual(2, mv.Compatibility);
            Assert.AreEqual(2, mv.Release);

            Assert.AreEqual(ch[0], mv.Latest);

            Assert.AreEqual(ch[2], mv.LatestVersions[1]);
            Assert.AreEqual(ch[0], mv.LatestVersions[2]);

            Assert.AreEqual(2, mv.LatestVersions.Keys.Count());

            Assert.IsTrue(mv.Chronology.SequenceEqual(
                              ch.OrderBy(sv => sv.Minor)
                              ));
        }
コード例 #5
0
        public void Create_Chronology_Valid_Disordered()
        {
            var ch = new SemanticVersion[]
            {
                new SemanticVersion(2, 2),
                new SemanticVersion(1, 0),
                new SemanticVersion(1, 1),
            };
            var mv = new MonotonicVersioner(ch);

            Assert.AreEqual(2, mv.Compatibility);
            Assert.AreEqual(2, mv.Release);

            Assert.AreEqual(ch[0], mv.Latest);

            Assert.AreEqual(ch[2], mv.LatestVersions[1]);
            Assert.AreEqual(ch[0], mv.LatestVersions[2]);

            Assert.AreEqual(2, mv.LatestVersions.Keys.Count());

            Assert.IsTrue(mv.Chronology.SequenceEqual(
                ch.OrderBy(sv => sv.Minor)
                ));
        }