public void ExceptionThrownWhileResolvingAParameterIsBubbledUpAndTheCurrentOperationIsNotCleared() { var exception = new ArgumentException(); var resolverPolicy = new ExceptionThrowingTestResolverPolicy(exception); MockBuilderContext context = GetContext(); var key = new NamedTypeBuildKey <ObjectWithSingleInjectionMethod>(); context.BuildKey = key; context.Existing = new ObjectWithSingleInjectionMethod(); context.Policies.Set <IMethodSelectorPolicy>( new TestSingleArgumentMethodSelectorPolicy <ObjectWithSingleInjectionMethod>(resolverPolicy), key); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, key); try { plan.BuildUp(context); Assert.Fail("failure expected"); } catch (Exception e) { Assert.AreSame(exception, e); var operation = (MethodArgumentResolveOperation)context.CurrentOperation; Assert.IsNotNull(operation); Assert.AreSame(typeof(ObjectWithSingleInjectionMethod), operation.TypeBeingConstructed); Assert.AreEqual("parameter", operation.ParameterName); } }
public void ExceptionThrownWhileResolvingAParameterIsBubbledUpAndTheCurrentOperationIsNotCleared() { var exception = new ArgumentException(); var resolverPolicy = new ExceptionThrowingTestResolverPolicy(exception); MockBuilderContext context = GetContext(); context.BuildKey = new NamedTypeBuildKey(typeof(ConstructorInjectionTestClass)); context.Policies.Set <IConstructorSelectorPolicy>( new TestSingleArgumentConstructorSelectorPolicy <ConstructorInjectionTestClass>(resolverPolicy), context.BuildKey); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, context.BuildKey); try { plan.BuildUp(context); Assert.True(false, string.Format("failure expected")); } catch (Exception e) { Assert.Same(exception, e); var operation = (ConstructorArgumentResolveOperation)context.CurrentOperation; Assert.NotNull(operation); Assert.Same(typeof(ConstructorInjectionTestClass), operation.TypeBeingConstructed); Assert.Equal("parameter", operation.ParameterName); } }
public void ExceptionThrownWhileResolvingAPropertyValueIsBubbledUpAndTheCurrentOperationIsNotCleared() { var exception = new ArgumentException(); var resolverPolicy = new ExceptionThrowingTestResolverPolicy(exception); MockBuilderContext context = GetContext(); var key = new NamedTypeBuildKey <OnePropertyClass>(); context.BuildKey = key; context.Existing = new OnePropertyClass(); context.Policies.Set <IPropertySelectorPolicy>( new TestSinglePropertySelectorPolicy <OnePropertyClass>(resolverPolicy), key); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, key); try { plan.BuildUp(context); Assert.Fail("failure expected"); } catch (Exception e) { Assert.AreSame(exception, e); var operation = (ResolvingPropertyValueOperation)context.CurrentOperation; Assert.IsNotNull(operation); Assert.AreSame(typeof(OnePropertyClass), operation.TypeBeingConstructed); Assert.AreEqual("Key", operation.PropertyName); } }
public void ExceptionThrownWhileResolvingAParameterIsBubbledUpAndTheCurrentOperationIsNotCleared() { var resolverPolicy = new ExceptionThrowingTestResolverPolicy(new ArgumentException()); MockBuilderContext context = GetContext(); context.BuildKey = new NamedTypeBuildKey(typeof(ConstructorInjectionTestClass)); context.Policies.Set <IConstructorSelectorPolicy>( new TestSingleArgumentConstructorSelectorPolicy <ConstructorInjectionTestClass>(resolverPolicy), context.BuildKey); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, context.BuildKey); var exception = Assert.Throws <ArgumentException>(() => plan.BuildUp(context)); var operation = context.CurrentOperation as ConstructorArgumentResolveOperation; Assert.NotNull(operation); Assert.IsType <ConstructorInjectionTestClass>(operation.TypeBeingConstructed); Assert.Equal("parameter", operation.ParameterName); }
public void ExceptionThrownWhileResolvingAPropertyValueIsBubbledUpAndTheCurrentOperationIsNotCleared() { var resolverPolicy = new ExceptionThrowingTestResolverPolicy(new ArgumentException()); MockBuilderContext context = GetContext(); var key = new NamedTypeBuildKey <OnePropertyClass>(); context.BuildKey = key; context.Existing = new OnePropertyClass(); context.Policies.Set <IPropertySelectorPolicy>( new TestSinglePropertySelectorPolicy <OnePropertyClass>(resolverPolicy), key); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, key); var exception = Assert.Throws <ArgumentException>(() => plan.BuildUp(context)); var operation = context.CurrentOperation as ResolvingPropertyValueOperation; Assert.NotNull(operation); Assert.IsType <OnePropertyClass>(operation.TypeBeingConstructed); Assert.Equal("Key", operation.PropertyName); }