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)); }
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)); }
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); }