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