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 }
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)); }
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)); }
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)); }
public static SemanticVersion From(this IMessage message) => SemanticVersion.From(message.Version);