Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        public void InstanceCall()
        {
            Hijack.Setup <Random>(r => r.Next()).Returns(10);

            var untestable = new UntestableLibrary.Untestable();

            var result = untestable.InstanceCall();

            Assert.AreEqual(20, result);
        }
Esempio n. 3
0
        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));
             */
        }
Esempio n. 4
0
        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();
 }
Esempio n. 6
0
 internal static void hijack()
 {
     Hijack.hijack(typeof(Utility).GetMethod("pickFarmEvent", BindingFlags.Static | BindingFlags.Public),
                   typeof(NewUtility).GetMethod("pickFarmEvent", BindingFlags.Static | BindingFlags.Public));
 }
Esempio n. 7
0
 internal static void hijack()
 {
     Hijack.hijack(typeof(MeleeWeapon).GetMethod("drawDuringUse", BindingFlags.Static | BindingFlags.Public),
                   typeof(NewMeleeWeapon).GetMethod("drawDuringUse", BindingFlags.Static | BindingFlags.Public));
 }