public void NoDecoratedMethods() { MockBuilderContext context = new MockBuilderContext(); MethodReflectionStrategy strategy = new MethodReflectionStrategy(); strategy.BuildUp(context, typeof(object), null); IMethodCallPolicy policy = context.Policies.Get <IMethodCallPolicy>(typeof(object)); Assert.Null(policy); }
/// <summary> /// Called during the chain of responsibility for a build operation. Looks for a method call policy for the buildKey and uses it to call a method if found. /// </summary> /// <param name="context">The context for the operation.</param> public override void PreBuildUp(IBuilderContext context) { IMethodCallPolicy policy = context.Policies.Get<IMethodCallPolicy>(context.BuildKey); if (context.Existing != null && policy != null) { foreach (IMethodCallInfo method in policy.Methods) { method.Execute(context, context.Existing, context.BuildKey); } } }
public void NoDecoratedMethods() { MockBuilderContext context = new MockBuilderContext(); context.Strategies.Add( new MethodReflectionStrategy <InjectionMethodAttribute, DependencyAttribute>()); context.ExecuteBuildUp(typeof(object), null); IMethodCallPolicy policy = context.Policies.Get <IMethodCallPolicy>(typeof(object)); Assert.IsNull(policy); }
/// <summary> /// Adds <paramref name="parameters"/> to the appropriate policy. /// </summary> /// <param name="context">The build context.</param> /// <param name="member">The member that's being reflected over.</param> /// <param name="parameters">The parameters used to satisfy the method.</param> protected override void AddParametersToPolicy(IBuilderContext context, IMemberInfo <MethodInfo> member, IEnumerable <IParameter> parameters) { IMethodCallPolicy result = context.Policies.Get <IMethodCallPolicy>(context.BuildKey); if (result == null) { result = new MethodCallPolicy(); context.Policies.Set(result, context.BuildKey); } result.Methods.Add(new ReflectionMethodCallInfo(member.MemberInfo, parameters)); }
public void DecoratedMethod() { MockBuilderContext context = new MockBuilderContext(); MethodReflectionStrategy strategy = new MethodReflectionStrategy(); strategy.BuildUp(context, typeof(Decorated), null); IMethodCallPolicy policy = context.Policies.Get <IMethodCallPolicy>(typeof(Decorated)); Assert.NotNull(policy); Assert.NotEmpty(policy.Methods); foreach (ReflectionMethodCallInfo method in policy.Methods) { Assert.Equal(typeof(Decorated).GetMethod("Method"), method.Method); } }
public override object BuildUp(IBuilderContext context, object buildKey, object existing) { IMethodCallPolicy policy = context.Policies.Get <IMethodCallPolicy>(buildKey); if (existing != null && policy != null) { foreach (IMethodCallInfo method in policy.Methods) { method.Execute(context, existing, buildKey); } } return(base.BuildUp(context, buildKey, existing)); }
public void DecoratedMethod() { MockBuilderContext context = new MockBuilderContext(); context.Strategies.Add( new MethodReflectionStrategy <InjectionMethodAttribute, DependencyAttribute>()); context.ExecuteBuildUp(typeof(Decorated), null); IMethodCallPolicy policy = context.Policies.Get <IMethodCallPolicy>(typeof(Decorated)); Assert.IsNotNull(policy); AssertHelper.NotEmpty(policy.Methods); foreach (ReflectionMethodCallInfo method in policy.Methods) { Assert.AreEqual(typeof(Decorated).GetMethod("Method"), method.Method); } }