public void SetUp()
        {
            _mutableType   = MutableTypeObjectMother.Create();
            _generatedType = typeof(GeneratedType);

            _context = new GeneratedTypesContext(new[] { new KeyValuePair <MutableType, Type> (_mutableType, _generatedType) });
        }
        private static ConcreteMixinTypeIdentifier SubstituteConcreteMixinIdentifier(GeneratedTypesContext context, ConcreteMixinTypeIdentifier identifier)
        {
            var mixinType  = Substitute(context, identifier.MixinType);
            var overriders = identifier.Overriders.Select(m => Substitute(context, m));
            var overridden = identifier.Overridden.Select(m => Substitute(context, m));

            return(new ConcreteMixinTypeIdentifier(mixinType, new HashSet <MethodInfo> (overriders), new HashSet <MethodInfo> (overridden)));
        }
Example #3
0
        public void OnGenerationCompleted(GeneratedTypesContext generatedTypesContext)
        {
            var handler = GenerationCompleted;

            if (handler != null)
            {
                handler(generatedTypesContext);
            }
        }
        public ConcreteMixinType SubstituteMutableReflectionObjects(GeneratedTypesContext context)
        {
            var identifier    = SubstituteConcreteMixinIdentifier(context, _identifier);
            var generatedType = Substitute(context, _generatedType);
            var generatedOverrideInterface            = Substitute(context, _generatedOverrideInterface);
            var overrideInterfaceMethodsByMixinMethod = Substitute(context, _overrideInterfaceMethodsByMixinMethod);
            var methodWrappers = Substitute(context, _methodWrappers);

            return(new ConcreteMixinType(identifier, generatedType, generatedOverrideInterface, overrideInterfaceMethodsByMixinMethod, methodWrappers));
        }
        private static T Substitute <T> (GeneratedTypesContext context, T member)
            where T : MemberInfo
        {
            var mutableMember = member as IMutableMember;

            if (mutableMember != null)
            {
                return((T)context.GetGeneratedMember(mutableMember));
            }
            else
            {
                return(member);
            }
        }
 private static Dictionary <MethodInfo, MethodInfo> Substitute(GeneratedTypesContext context, Dictionary <MethodInfo, MethodInfo> dictionary)
 {
     return(dictionary.ToDictionary(p => Substitute(context, p.Key), p => Substitute(context, p.Value)));
 }