Exemple #1
0
        public void OperatorTest()
        {
            var _8k2    = new AppleVersion(8, 'K', 2);
            var _8k2bis = new AppleVersion(8, 'K', 2);
            var _8k3    = new AppleVersion(8, 'K', 3);

            // == operator
            Assert.True(_8k2 == _8k2bis);
            Assert.True(!(_8k2 == _8k3));

            // != operatior
            Assert.True(!(_8k2 != _8k2bis));
            Assert.True(_8k2 != _8k3);

            // < operator
            Assert.True(!(_8k2 < _8k2bis));
            Assert.True(_8k2 < _8k3);
            Assert.True(!(_8k3 < _8k2));

            // > operator
            Assert.True(!(_8k2 > _8k2bis));
            Assert.True(!(_8k2 > _8k3));
            Assert.True(_8k3 > _8k2);

            // <= operator
            Assert.True(_8k2 <= _8k2bis);
            Assert.True(_8k2 <= _8k3);
            Assert.False(_8k3 <= _8k2);

            // >= operator
            Assert.True(_8k2 >= _8k2bis);
            Assert.False(_8k2 >= _8k3);
            Assert.True(_8k3 >= _8k2);
        }
Exemple #2
0
        public void CompareToObjectTest()
        {
            var _8k2 = new AppleVersion(8, 'K', 2);

            Assert.Equal(1, _8k2.CompareTo((object)null));
            Assert.Equal(0, _8k2.CompareTo((object)_8k2));
        }
Exemple #3
0
        public void ToDictionary_NoBuildIDs_Works()
        {
            var version = new SystemVersion()
            {
                ProductBuildVersion = AppleVersion.Parse("17E255"),
                ProductCopyright    = "1983-2020 Apple Inc.",
                ProductName         = "iPhone OS",
                ProductVersion      = new Version(13, 4),
            };

            var dict = version.ToDictionary();

            Assert.Collection(
                dict,
                e =>
            {
                Assert.Equal("ProductBuildVersion", e.Key);
                Assert.Equal("17E255", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductCopyright", e.Key);
                Assert.Equal("1983-2020 Apple Inc.", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductName", e.Key);
                Assert.Equal("iPhone OS", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductVersion", e.Key);
                Assert.Equal("13.4", e.Value.ToObject());
            });
        }
Exemple #4
0
        public void CompareToAppleVersionTest()
        {
            var _8k2       = new AppleVersion(8, 'K', 2);
            var _13a340    = new AppleVersion(13, 'A', 340);
            var _13a344    = new AppleVersion(13, 'A', 344);
            var _13a344a   = new AppleVersion(13, 'A', 1, 344, 'a');
            var _13a344b   = new AppleVersion(13, 'A', 1, 344, 'b');
            var _13a344bis = new AppleVersion(13, 'A', 344);
            var _13b2      = new AppleVersion(13, 'B', 2);

            Assert.Equal(1, _8k2.CompareTo((AppleVersion)null));

            // Compare on major
            Assert.Equal(-1, _8k2.CompareTo(_13a340));
            Assert.Equal(1, _13a340.CompareTo(_8k2));

            // Compare on minor
            Assert.Equal(-1, _13a340.CompareTo(_13b2));
            Assert.Equal(1, _13b2.CompareTo(_13a340));

            // Compare on build
            Assert.Equal(1, _13a344.CompareTo(_13a340));
            Assert.Equal(-1, _13a340.CompareTo(_13a344));

            // Compare on revision
            Assert.Equal(1, _13a344.CompareTo(_13a344a));
            Assert.Equal(-1, _13a344a.CompareTo(_13a344));
            Assert.Equal(0, _13a344a.CompareTo(_13a344a));
            Assert.Equal(-1, _13a344a.CompareTo(_13a344b));
            Assert.Equal(1, _13a344b.CompareTo(_13a344a));

            // Compare equals
            Assert.Equal(0, _13a344.CompareTo(_13a344bis));
        }
Exemple #5
0
        public void EqualsTest()
        {
            var _8k2    = new AppleVersion(8, 'K', 2);
            var _8k2bis = new AppleVersion(8, 'K', 2);
            var _8k3    = new AppleVersion(8, 'K', 3);
            var _8l2    = new AppleVersion(8, 'L', 2);
            var _9k2    = new AppleVersion(9, 'K', 2);

            // Test for equality
            Assert.Equal(_8k2, _8k2bis);
            Assert.Equal(_8k2bis, _8k2);

            // Test for equality - differ on major
            Assert.NotEqual(_8k2, _9k2);
            Assert.NotEqual(_9k2, _8k2);

            // Test for equality - differ on minor
            Assert.NotEqual(_8k2, _8l2);
            Assert.NotEqual(_8l2, _8k2);

            // Test for equality - differ on build
            Assert.NotEqual(_8k2, _8k3);
            Assert.NotEqual(_8k3, _8k2);

            // Test for equality - with null
            Assert.False(_8k2.Equals((object)null));
            Assert.True(_8k2.Equals((object)_8k2));
            Assert.NotEqual(_8k2, (object)null);
            Assert.NotEqual(_8k2, (AppleVersion)null);
            Assert.NotEqual((object)null, _8k2);
            Assert.NotEqual((AppleVersion)null, _8k2);
        }
Exemple #6
0
        public void ConstructorTest()
        {
            var version = new AppleVersion(13, 'A', 340);

            Assert.Equal(13, version.Major);
            Assert.Equal('A', version.Minor);
            Assert.Equal(340, version.Build);
            Assert.Null(version.Revision);
        }
Exemple #7
0
        public void ConstructorTest2()
        {
            var version = new AppleVersion(13, 'A', 4, 325, 'c');

            Assert.Equal(13, version.Major);
            Assert.Equal('A', version.Minor);
            Assert.Equal(4, version.Architecture);
            Assert.Equal(325, version.Build);
            Assert.Equal('c', version.Revision);
        }
Exemple #8
0
        public void ParseiOS12VersionTest(string versionString, int expectedBuild, char expectedRevision)
        {
            var version = AppleVersion.Parse(versionString);

            Assert.Equal(16, version.Major);
            Assert.Equal('A', version.Minor);
            Assert.Equal(5, version.Architecture);
            Assert.Equal(expectedBuild, version.Build);
            Assert.Equal(expectedRevision, version.Revision);
            Assert.Equal(versionString, version.ToString());
        }
Exemple #9
0
        public void ParseiOS9VersionsTest()
        {
            var beta  = AppleVersion.Parse("13A4254v");
            var beta2 = AppleVersion.Parse("13A4280e");
            var beta3 = AppleVersion.Parse("13A4293g");
            var beta4 = AppleVersion.Parse("13A4305g");
            var beta5 = AppleVersion.Parse("13A4325c");
            var rtm   = AppleVersion.Parse("13A340");

            Assert.Equal("13A4254v", beta.ToString());
            Assert.Equal("13A4280e", beta2.ToString());
            Assert.Equal("13A4293g", beta3.ToString());
            Assert.Equal("13A4305g", beta4.ToString());
            Assert.Equal("13A4325c", beta5.ToString());
            Assert.Equal("13A340", rtm.ToString());

            Assert.Equal(13, beta.Major);
            Assert.Equal('A', beta.Minor);
            Assert.Equal(4, beta.Architecture);
            Assert.Equal(254, beta.Build);
            Assert.Equal('v', beta.Revision);

            Assert.Equal(13, beta2.Major);
            Assert.Equal('A', beta2.Minor);
            Assert.Equal(4, beta2.Architecture);
            Assert.Equal(280, beta2.Build);
            Assert.Equal('e', beta2.Revision);

            Assert.Equal(13, beta3.Major);
            Assert.Equal('A', beta3.Minor);
            Assert.Equal(4, beta3.Architecture);
            Assert.Equal(293, beta3.Build);
            Assert.Equal('g', beta3.Revision);

            Assert.Equal(13, beta4.Major);
            Assert.Equal('A', beta4.Minor);
            Assert.Equal(4, beta4.Architecture);
            Assert.Equal(305, beta4.Build);
            Assert.Equal('g', beta4.Revision);

            Assert.Equal(13, beta5.Major);
            Assert.Equal('A', beta5.Minor);
            Assert.Equal(4, beta5.Architecture);
            Assert.Equal(325, beta5.Build);
            Assert.Equal('c', beta5.Revision);

            Assert.Equal(13, rtm.Major);
            Assert.Equal('A', rtm.Minor);
            Assert.Equal(0, rtm.Architecture);
            Assert.Equal(340, rtm.Build);
            Assert.Null(rtm.Revision);
        }
Exemple #10
0
        public void CloneTest()
        {
            var _8k2  = new AppleVersion(8, 'K', 2);
            var clone = _8k2.Clone();

            Assert.IsType <AppleVersion>(clone);

            var version = (AppleVersion)clone;

            Assert.Equal(8, version.Major);
            Assert.Equal('K', version.Minor);
            Assert.Equal(2, version.Build);
            Assert.Equal(0, version.Architecture);
            Assert.Null(version.Revision);
        }
Exemple #11
0
        public void DifferByBuildNumberOnlyTests()
        {
            // iOS 9.3 == iOS 9.3
            Assert.True(AppleVersion.DifferByBuildNumberOnly(AppleVersion.Parse("13E230"), AppleVersion.Parse("13E230")));

            // iOS 9.3.1 == iOS 9.3
            Assert.True(AppleVersion.DifferByBuildNumberOnly(AppleVersion.Parse("13E230"), AppleVersion.Parse("13E238")));

            // iOS 9.0 beta 5 != iOS 9.0 RTM
            Assert.True(!AppleVersion.DifferByBuildNumberOnly(AppleVersion.Parse("13A340"), AppleVersion.Parse("13A4325c")));

            // Null tests for code coverage
            Assert.True(!AppleVersion.DifferByBuildNumberOnly(AppleVersion.Parse("13E230"), null));
            Assert.True(!AppleVersion.DifferByBuildNumberOnly(null, AppleVersion.Parse("13E230")));
            Assert.True(!AppleVersion.DifferByBuildNumberOnly(null, null));
        }
Exemple #12
0
        /// <inheritdoc/>
        public void FromDictionary(NSDictionary dictionary)
        {
            if (dictionary == null)
            {
                throw new ArgumentNullException(nameof(dictionary));
            }

            if (dictionary.ContainsKey(nameof(this.BuildID)))
            {
                this.BuildID = new Guid(dictionary.GetString(nameof(this.BuildID)));
            }

            this.ProductBuildVersion = AppleVersion.Parse(dictionary.GetString(nameof(this.ProductBuildVersion)));
            this.ProductCopyright    = dictionary.GetString(nameof(this.ProductCopyright));
            this.ProductName         = dictionary.GetString(nameof(this.ProductName));
            this.ProductVersion      = new Version(dictionary.GetString(nameof(this.ProductVersion)));
        }
Exemple #13
0
        public void OperatorTest2()
        {
            Assert.True(AppleVersion.Parse("16A5366a") < AppleVersion.Parse("16A5366b"));
            Assert.False(AppleVersion.Parse("16A5366b") < null);
            Assert.False((AppleVersion)null < null);

            Assert.True(AppleVersion.Parse("16A5366a") <= AppleVersion.Parse("16A5366b"));
            Assert.False(AppleVersion.Parse("16A5366b") <= null);
            Assert.True((AppleVersion)null <= null);

            Assert.False(AppleVersion.Parse("16A5366a") > AppleVersion.Parse("16A5366b"));
            Assert.True(AppleVersion.Parse("16A5366b") > null);
            Assert.False((AppleVersion)null > null);

            Assert.False(AppleVersion.Parse("16A5366a") >= AppleVersion.Parse("16A5366b"));
            Assert.True(AppleVersion.Parse("16A5366a") >= null);
            Assert.True((AppleVersion)null >= null);
        }
Exemple #14
0
        public void CompareiOS9VersionsTest()
        {
            var beta  = AppleVersion.Parse("13A4254v");
            var beta2 = AppleVersion.Parse("13A4280e");
            var beta3 = AppleVersion.Parse("13A4293g");
            var beta4 = AppleVersion.Parse("13A4305g");
            var beta5 = AppleVersion.Parse("13A4325c");
            var rtm   = AppleVersion.Parse("13A340");

            Assert.True(beta < beta2);
            Assert.True(beta2 < beta3);
            Assert.True(beta3 < beta4);
            Assert.True(beta4 < beta5);
            Assert.True(beta5 < rtm);

            Assert.True(beta < rtm);
            Assert.True(beta2 < rtm);
            Assert.True(beta3 < rtm);
            Assert.True(beta4 < rtm);
        }
Exemple #15
0
        public void ToDictionary_Works()
        {
            var version = new SystemVersion()
            {
                BuildID             = new Guid("BB4C82AE-5F8A-11EA-A1A5-838AD03DDE06"),
                ProductBuildVersion = AppleVersion.Parse("17E255"),
                ProductCopyright    = "1983-2020 Apple Inc.",
                ProductName         = "iPhone OS",
                ProductVersion      = new Version(13, 4),
            };

            var dict = version.ToDictionary();

            Assert.Collection(
                dict,
                e =>
            {
                Assert.Equal("BuildID", e.Key);
                Assert.Equal("BB4C82AE-5F8A-11EA-A1A5-838AD03DDE06", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductBuildVersion", e.Key);
                Assert.Equal("17E255", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductCopyright", e.Key);
                Assert.Equal("1983-2020 Apple Inc.", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductName", e.Key);
                Assert.Equal("iPhone OS", e.Value.ToObject());
            },
                e =>
            {
                Assert.Equal("ProductVersion", e.Key);
                Assert.Equal("13.4", e.Value.ToObject());
            });
        }
Exemple #16
0
        public void FromDictionary_NoBuildId_Works()
        {
            // Create a dict with sample data seen in e.g.
            // https://github.com/WebKit/WebKit/blob/master/Tools/CISupport/ews-build/steps_unittest.py#L3783-L3789
            var dict = new NSDictionary();

            dict.Add("ProductBuildVersion", "17E255");
            dict.Add("ProductCopyright", "1983-2020 Apple Inc.");
            dict.Add("ProductName", "iPhone OS");
            dict.Add("ProductVersion", "13.4");

            var version = new SystemVersion();

            version.FromDictionary(dict);

            Assert.Equal(Guid.Empty, version.BuildID);
            Assert.Equal(AppleVersion.Parse("17E255"), version.ProductBuildVersion);
            Assert.Equal("1983-2020 Apple Inc.", version.ProductCopyright);
            Assert.Equal("iPhone OS", version.ProductName);
            Assert.Equal(new Version("13.4"), version.ProductVersion);
        }
Exemple #17
0
        public void ParseVersionTest()
        {
            var version = AppleVersion.Parse("13A340");

            Assert.Equal(13, version.Major);
            Assert.Equal('A', version.Minor);
            Assert.Equal(340, version.Build);
            Assert.Equal(0, version.Architecture);
            Assert.Null(version.Revision);

            version = AppleVersion.Parse("13A4305g");
            Assert.Equal(13, version.Major);
            Assert.Equal('A', version.Minor);
            Assert.Equal(305, version.Build);
            Assert.Equal(4, version.Architecture);
            Assert.Equal('g', version.Revision);

            version = AppleVersion.Parse("8K2");
            Assert.Equal(8, version.Major);
            Assert.Equal('K', version.Minor);
            Assert.Equal(2, version.Build);
            Assert.Equal(0, version.Architecture);
            Assert.Null(version.Revision);
        }
Exemple #18
0
 public void ParseEmptyVersionTest()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => AppleVersion.Parse(string.Empty));
 }
Exemple #19
0
        public void GetHashcodeTest()
        {
            var _8k2 = new AppleVersion(8, 'K', 2);

            Assert.Equal(0x084B0200, _8k2.GetHashCode());
        }
Exemple #20
0
        public void ToStringTest()
        {
            var _8k2 = new AppleVersion(8, 'K', 2);

            Assert.Equal("8K2", _8k2.ToString());
        }
Exemple #21
0
 public void ParseVersionNullTest()
 {
     Assert.Throws <ArgumentNullException>(() => AppleVersion.Parse(null));
 }
Exemple #22
0
 public void ParseInvalidVersionTest3()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => AppleVersion.Parse("82K"));
 }