Example #1
0
 public AircraftConsigned(AircraftState state) : base(SemanticVersion.From("1.0.0").ToValue())
 {
     AircraftId   = state.Id;
     Model        = state.ManufacturerSpecification.Model;
     SerialNumber = state.ManufacturerSpecification.SerialNumber;
     TailNumber   = state.Registration.TailNumber;
     _eventId     = Guid.NewGuid(); //TODO: Define the event id
 }
Example #2
0
        public void TestVersionIncrements()
        {
            var version = SemanticVersion.From(1, 2, 3);

            Assert.Equal(version.NextPatch(), SemanticVersion.From(1, 2, 4));
            Assert.Equal(version.NextMinor(), SemanticVersion.From(1, 3, 0));
            Assert.Equal(version.NextMajor(), SemanticVersion.From(2, 0, 0));
        }
Example #3
0
        public void RealRelease()
        {
            var v1 = SemanticVersion.From("https://github.com/OlegBoulanov/s3i/releases/download/v1.0.265/wixExample.msi", "v", "Ver");

            Assert.AreEqual(new BigInteger(1), v1.Major);
            Assert.That(v1.Minor.Equals(0));
            Assert.That(v1.Patch.Equals(265));
        }
Example #4
0
 public void FromProductVersion()
 {
     Assert.IsTrue(ProductVersion.TryParse("1.2.3.4", out var v1234));
     Assert.IsTrue(ProductVersion.TryParse("1.2.3.5", out var v1235));
     Assert.IsTrue(0 == SemanticVersion.From(v1234).CompareTo(SemanticVersion.From(v1235)));
     Assert.IsTrue(ProductVersion.TryParse("1.2.4.5", out var v1245));
     Assert.IsTrue(0 > SemanticVersion.From(v1234).CompareTo(SemanticVersion.From(v1245)));
 }
        public void Separate()
        {
            Assert.That(SemanticVersion.From("https://download/here/Prod01/9.4.7/p1.msi").CompareTo(SemanticVersion.From("https://download/here/Prod01/9.4.8+upgrade/p1.msi")), Is.LessThan(0));
            Assert.That(SemanticVersion.From("https://download/here/Prod02/3.3.5/p2.msi").CompareTo(SemanticVersion.From("https://download/here/Prod02/3.3.5+keep/p2.msi")), Is.EqualTo(0));
            Assert.That(SemanticVersion.From("https://download/there/Prod03/12.5.8/p3.msi").CompareTo(SemanticVersion.From("https://download/there/Prod03/12.5.4+downgrade/p3.msi")), Is.GreaterThan(0));
            //Assert.That(SemanticVersion.From("https://download/here/Prod01/9.4.7/p1.msi").CompareTo(SemanticVersion.From("https://download/here/Prod01/9.4.8+upgrade/p1.msi")), Is.LessThan(0));
            var installed = new Dictionary <string, string> {
                { "Prod01\\p1.msi", "https://download/here/Prod01/9.4.7/p1.msi" },
                { "Prod02\\p2.msi", "https://download/here/Prod02/3.3.5/p2.msi" },
                { "Prod03\\p3.msi", "https://download/there/Prod03/12.5.8/p3.msi" },
                { "ProdXX\\px.msi", "https://download/there/ProdXX/1.2.5.8+uninstall/px.msi" },
            };
            var products = new ProductCollection {
                new ProductInfo {
                    Name = "Prod01", Uri = new Uri("https://download/here/Prod01/9.4.8+upgrade/p1.msi"), LocalPath = "Prod01\\p1.msi",
                },
                new ProductInfo {
                    Name = "Prod02", Uri = new Uri("https://download/here/Prod02/3.3.5+keep/p2.msi"), LocalPath = "Prod02\\p2.msi",
                },
                new ProductInfo {
                    Name = "Prod03", Uri = new Uri("https://download/there/Prod03/12.5.4+downgrade/p3.msi"), LocalPath = "Prod03\\p3.msi",
                },
                new ProductInfo {
                    Name = "Prod04", Uri = new Uri("https://download/from/Prod04/1.2.3+install/p4.msi"), LocalPath = "Prod04\\p4.msi",
                },
            };
            var remove = products.FilesToUninstall(installed.Keys);

            var(uninstall, install) = products.Separate(localPath =>
            {
                var uri = installed.ContainsKey(localPath) ? installed[localPath] : null;
                return(null != uri ? new ProductInfo {
                    Uri = new Uri(uri),
                } : null);
            });
            //Console.WriteLine($"Remove:");
            //foreach (var r in remove) Console.WriteLine($"  {r}");
            //Console.WriteLine($"Uninstall:");
            //foreach(var u in uninstall) Console.WriteLine($"  {u}");
            //Console.WriteLine($"Install:");
            //foreach(var i in install) Console.WriteLine($"  {i}");
            Assert.That(remove.Count(), Is.EqualTo(1));
            Assert.That(remove.ElementAt(0), Is.EqualTo("ProdXX\\px.msi"));
            Assert.That(uninstall.Count(), Is.EqualTo(1));
            Assert.That(uninstall.ElementAt(0).Uri.ToString(), Is.EqualTo("https://download/there/Prod03/12.5.8/p3.msi"));
            Assert.That(install.Count(), Is.EqualTo(4));
            Assert.That(install.ElementAt(0).Uri.ToString(), Is.EqualTo("https://download/here/Prod01/9.4.8+upgrade/p1.msi"));
            Assert.That(install.ElementAt(1).Uri.ToString(), Is.EqualTo("https://download/here/Prod02/3.3.5+keep/p2.msi"));
            Assert.That(install.ElementAt(2).Uri.ToString(), Is.EqualTo("https://download/there/Prod03/12.5.4+downgrade/p3.msi"));
            Assert.That(install.ElementAt(3).Uri.ToString(), Is.EqualTo("https://download/from/Prod04/1.2.3+install/p4.msi"));
        }
        public void TestVersionCompatibility()
        {
            var version = SemanticVersion.From(1, 0, 0);

            var majorBump = SemanticVersion.From(2, 0, 0);

            Assert.True(majorBump.IsCompatibleWith(version));

            var minorBump = SemanticVersion.From(1, 1, 0);

            Assert.True(minorBump.IsCompatibleWith(version));

            var patchBump = SemanticVersion.From(1, 0, 1);

            Assert.True(patchBump.IsCompatibleWith(version));
        }
        public void TestVersionIncompatibility()
        {
            var version = SemanticVersion.From(1, 0, 0);

            var majorTooHigh = SemanticVersion.From(3, 0, 0);

            Assert.False(majorTooHigh.IsCompatibleWith(version));

            var majorBumpMinorTooHigh = SemanticVersion.From(2, 1, 0);

            Assert.False(majorBumpMinorTooHigh.IsCompatibleWith(version));

            var minorTooHigh = SemanticVersion.From(1, 2, 0);

            Assert.False(minorTooHigh.IsCompatibleWith(version));

            var minorBumpPatchTooHigh = SemanticVersion.From(1, 1, 1);

            Assert.False(minorBumpPatchTooHigh.IsCompatibleWith(version));

            var patchTooHigh = SemanticVersion.From(1, 0, 2);

            Assert.False(patchTooHigh.IsCompatibleWith(version));
        }
Example #8
0
 public static SemanticVersion From(this IMessage message) => SemanticVersion.From(message.Version);