Beispiel #1
0
        static void VerifyRuns <TParent, TItem>(ref MemberAccessor accessor) where TParent : new()
        {
            object obj      = new TParent();
            object expected = null;

            if (typeof(TItem) == typeof(int))
            {
                expected = 123;
            }

            if (typeof(TItem) == typeof(byte))
            {
                expected = (byte)123;
            }
            else if (typeof(TItem) == typeof(bool))
            {
                expected = true;
            }
            else if (typeof(TItem) == typeof(string))
            {
                expected = "ABC";
            }
            else if (typeof(TItem) == typeof(AllPrimitiveStruct))
            {
                expected = new AllPrimitiveStruct(true, 172, "d");
            }

            accessor.Setter(obj, expected);

            Assert.AreEqual(expected, accessor.Getter(obj));
        }
Beispiel #2
0
 public void AddHook <H, T, C>(
     H hookedItem,
     MemberAccessor <H, T> hookMember,
     C chainItem,
     MemberAccessor <C, T> chainMember,
     T defaultValue)
 {
     hooks.Add(
         new Hook <T, T>()
     {
         HookGetter    = () => hookMember.Getter(hookedItem),
         HookSetter    = (t) => hookMember.Setter(hookedItem, t),
         ChainGetter   = () => chainMember.Getter(chainItem),
         ChainSetter   = (t) => chainMember.Setter(chainItem, t),
         Default       = defaultValue,
         PullConverter = (t) => t,
         PushConverter = (t) => t
     });
 }
Beispiel #3
0
        public void AddHook <H, T, C>(
            H hookedItem,
            Expression <Func <H, T> > hookExpr,
            C chainItem,
            MemberAccessor <C, T> chainMember,
            T defaultItem)
        {
            MemberAccessor <H, T> hookMember = new MemberAccessor <H, T>(hookExpr);

            hooks.Add(
                new Hook <T, T>()
            {
                HookGetter    = () => hookMember.Getter(hookedItem),
                HookSetter    = (t) => hookMember.Setter(hookedItem, t),
                ChainGetter   = () => chainMember.Getter(chainItem),
                ChainSetter   = (t) => chainMember.Setter(chainItem, t),
                Default       = defaultItem,
                PullConverter = (t) => t,
                PushConverter = (t) => t
            });
        }
Beispiel #4
0
 public void AddHook <H, HT, C, CT>(
     H hookedItem,
     MemberAccessor <H, HT> hookMember,
     C chainItem,
     MemberAccessor <C, CT> chainMember,
     Func <HT, CT> pullConverter,
     Func <CT, HT> pushConverter,
     HT defaultItem)
 {
     hooks.Add(
         new Hook <HT, CT>()
     {
         HookGetter    = () => hookMember.Getter(hookedItem),
         HookSetter    = (t) => hookMember.Setter(hookedItem, t),
         ChainGetter   = () => chainMember.Getter(chainItem),
         ChainSetter   = (t) => chainMember.Setter(chainItem, t),
         Default       = defaultItem,
         PullConverter = pullConverter,
         PushConverter = pushConverter
     });
 }