/// <summary>Initializes a new instance of the <see cref="T:System.Object"></see> class.</summary> public TypeMeta(Type typeRef, Hijack h) { _hijack = h; TypeRef = typeRef; _isAnonymous = typeRef.IsAnonymousType(); if (!_isAnonymous) { try { DefaultInstance = Activator.CreateInstance(typeRef); } catch (Exception) { DefaultInstance = typeRef.InstanceNonpublic(); } } var properties = GetProperties(); InlineProperties = properties.Where(x => x.PropertyType.IsInlineable()).ToArray(); CollectionProperties = properties.Where(x => (!x.PropertyType.IsDictionary() && x.PropertyType.IsEnumerable()) || (x.PropertyType.IsTuple() && !x.PropertyType.IsInlineable())).ToArray(); DictionaryProperties = properties.Where(x => x.PropertyType.IsDictionary()).ToArray(); NestedProperties = properties.Where(x => !InlineProperties.Contains(x) && !CollectionProperties.Contains(x) && !DictionaryProperties.Contains(x)).ToArray(); }
public void InstanceCall() { Hijack.Setup <Random>(r => r.Next()).Returns(10); var untestable = new UntestableLibrary.Untestable(); var result = untestable.InstanceCall(); Assert.AreEqual(20, result); }
internal static void fix() { Hijack.hijack(typeof(Game1).GetMethod(nameof(Game1.performTenMinuteClockUpdate), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance), typeof(NewGame1).GetMethod(nameof(NewGame1.performTenMinuteClockUpdate), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance)); Hijack.hijack(typeof(FarmAnimal).GetMethod(nameof(FarmAnimal.updateWhenCurrentLocation), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance), typeof(NewFarmAnimal).GetMethod(nameof(NewFarmAnimal.updateWhenCurrentLocation), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance)); Hijack.hijack(typeof(BlueprintsMenu).GetMethod(nameof(BlueprintsMenu.receiveLeftClick), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance), typeof(NewBlueprintsMenu).GetMethod(nameof(NewBlueprintsMenu.receiveLeftClick), BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance)); // This is causing problems, and doesn't appear to be used? /*Hijack.hijack(typeof( CataloguePage).GetMethod("receiveLeftClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance), * typeof(NewCataloguePage).GetMethod("receiveLeftClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance)); */ }
public void StaticCallOnly() { var ms = new MemoryStream(); var sw = new StreamWriter(ms); { sw.Write("hello world"); sw.Flush(); } ms.Position = 0; Hijack.Setup(() => File.Open(It.Any <string>(), It.Any <FileMode>())).Returns(ms); var untestable = new UntestableLibrary.Untestable(); string s = untestable.StaticCallOnly(); Assert.AreEqual("hello world", s); }
public TypeGeneratorRepository(Hijack hijack, CollectionStrategies collectionStrategies = null) { Hijack = hijack; CollectionStrategies = collectionStrategies ?? new CollectionStrategies(); }
internal static void hijack() { Hijack.hijack(typeof(Utility).GetMethod("pickFarmEvent", BindingFlags.Static | BindingFlags.Public), typeof(NewUtility).GetMethod("pickFarmEvent", BindingFlags.Static | BindingFlags.Public)); }
internal static void hijack() { Hijack.hijack(typeof(MeleeWeapon).GetMethod("drawDuringUse", BindingFlags.Static | BindingFlags.Public), typeof(NewMeleeWeapon).GetMethod("drawDuringUse", BindingFlags.Static | BindingFlags.Public)); }