@drozdik.m/version
Version:
Version package for version management
130 lines (107 loc) • 4.52 kB
text/typescript
import { UnitTest, Assert } from "@drozdik.m/unit-test";
import { Version } from "../src/Version";
let unitTest = new UnitTest("Version");
unitTest.AddTestCase("Getters", function ()
{
let version = new Version(1, 2, 3);
Assert.AreEqual(1, version.Major());
Assert.AreEqual(2, version.Minor());
Assert.AreEqual(3, version.Patch());
});
unitTest.AddTestCase("Comparator patch", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 2, 4);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.AreEqual(-1, comparator(version1, version2));
Assert.AreEqual(1, comparator(version2, version1));
Assert.AreEqual(0, comparator(version3, version1));
});
unitTest.AddTestCase("Comparator minor", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 3, 0);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.AreEqual(-1, comparator(version1, version2));
Assert.AreEqual(1, comparator(version2, version1));
Assert.AreEqual(0, comparator(version3, version1));
});
unitTest.AddTestCase("Comparator major", function ()
{
let version1 = new Version(1, 2, 0);
let version2 = new Version(2, 1, 0);
let version3 = new Version(1, 2, 0);
let comparator = version1.GetComparator();
Assert.AreEqual(-1, comparator(version1, version2));
Assert.AreEqual(1, comparator(version2, version1));
Assert.AreEqual(0, comparator(version3, version1));
});
unitTest.AddTestCase("Compare to", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 2, 4);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.AreEqual(-1, version1.CompareTo(version2));
Assert.AreEqual(1, version2.CompareTo(version1));
Assert.AreEqual(0, version1.CompareTo(version3));
});
unitTest.AddTestCase("Equal", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 2, 4);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.IsFalse(version1.Equals(version2));
Assert.IsTrue(version1.Equals(version3));
Assert.IsFalse(version2.Equals(version3));
Assert.IsFalse(version2.Equals(version1));
Assert.IsTrue(version3.Equals(version1));
Assert.IsFalse(version3.Equals(version2));
});
unitTest.AddTestCase("Less than", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 2, 4);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.IsTrue(version1.LessThan(version2));
Assert.IsFalse(version1.LessThan(version3));
Assert.IsFalse(version2.LessThan(version3));
Assert.IsFalse(version2.LessThan(version1));
Assert.IsFalse(version3.LessThan(version1));
Assert.IsTrue(version3.LessThan(version2));
});
unitTest.AddTestCase("Greater than", function ()
{
let version1 = new Version(1, 2, 3);
let version2 = new Version(1, 2, 4);
let version3 = new Version(1, 2, 3);
let comparator = version1.GetComparator();
Assert.IsFalse(version1.GreaterThan(version2));
Assert.IsFalse(version1.GreaterThan(version3));
Assert.IsTrue(version2.GreaterThan(version3));
Assert.IsTrue(version2.GreaterThan(version1));
Assert.IsFalse(version3.GreaterThan(version1));
Assert.IsFalse(version3.GreaterThan(version2));
});
unitTest.AddTestCase("To string", function ()
{
Assert.AreEqual("1.2.3", new Version(1, 2, 3).toString());
Assert.AreEqual("3.2.1", new Version(3, 2, 1).toString());
});
unitTest.AddTestCase("From string", function ()
{
Assert.AreEqual("1.2.3", Version.FromString("1.2.3").toString());
Assert.AreEqual("1.2.0", Version.FromString("1.2").toString());
Assert.AreEqual("1.0.0", Version.FromString("1").toString());
Assert.AreEqual("1.2.3", Version.FromString("1.2.3.4.5.6").toString());
Assert.AreEqual("1.1.-1", Version.FromString("1.1.x").toString());
Assert.AreEqual("1.-1.-1", Version.FromString("1.x.x").toString());
Assert.AreEqual("-1.-1.-1", Version.FromString("x.x.x").toString());
Assert.AreEqual("-1.-1.-1", Version.FromString("y.x..").toString());
Assert.AreEqual("-1.0.0", Version.FromString("wtf").toString());
});
unitTest.Run();