Esempio n. 1
0
        public void HighestVersionMatchWithNullReference()
        {
            var fallback = new VersionedTypeFallback(
                new[]
            {
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(int).FullName, typeof(int).Assembly.GetName()),
                    new Version(1, 0)),
            });

            Assert.Throws <ArgumentNullException>(() => fallback.HighestVersionMatch(null));
        }
Esempio n. 2
0
        public void HighestVersionMatchWithNoMatch()
        {
            var first = new VersionedTypeFallback(
                new[]
            {
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(int).FullName, typeof(int).Assembly.GetName()),
                    new Version(1, 0)),
            });
            var second = new VersionedTypeFallback(
                new[]
            {
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(double).FullName, typeof(int).Assembly.GetName()),
                    new Version(1, 0)),
            });

            Assert.IsNull(first.HighestVersionMatch(second));
        }
Esempio n. 3
0
        public void HighestVersionMatchWithOverlap()
        {
            var firstType = new OfflineTypeInformation(typeof(long).FullName, typeof(long).Assembly.GetName());
            var first     = new VersionedTypeFallback(
                new[]
            {
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(int).FullName, typeof(int).Assembly.GetName()),
                    new Version(2, 0)),
                new Tuple <OfflineTypeInformation, Version>(
                    firstType,
                    new Version(2, 1)),
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(double).FullName, typeof(double).Assembly.GetName()),
                    new Version(2, 2)),
            });

            var secondType = new OfflineTypeInformation(typeof(long).FullName, typeof(long).Assembly.GetName());
            var second     = new VersionedTypeFallback(
                new[]
            {
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(sbyte).FullName, typeof(sbyte).Assembly.GetName()),
                    new Version(1, 0)),
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(short).FullName, typeof(short).Assembly.GetName()),
                    new Version(1, 1)),
                new Tuple <OfflineTypeInformation, Version>(
                    new OfflineTypeInformation(typeof(int).FullName, typeof(int).Assembly.GetName()),
                    new Version(1, 1)),
                new Tuple <OfflineTypeInformation, Version>(
                    secondType,
                    new Version(1, 2)),
            });

            var type = first.HighestVersionMatch(second);

            Assert.AreEqual(firstType, type);
        }