public void CallsMethodsMarkedWithInjectionAttribute() { MockBuilderContext context = GetContext(); var key = new NamedTypeBuildKey <ObjectWithInjectionMethod>(); object intValue = 42; object stringValue = "Hello world"; SetSingleton(context, typeof(int), intValue); SetSingleton(context, typeof(string), stringValue); IBuildPlanPolicy plan = GetPlanCreator(context).CreatePlan(context, key); ObjectWithInjectionMethod existing = new ObjectWithInjectionMethod(); context.BuildKey = key; context.Existing = existing; plan.BuildUp(context); GC.KeepAlive(intValue); GC.KeepAlive(stringValue); Assert.IsTrue(existing.WasInjected); Assert.AreEqual(intValue, existing.IntValue); Assert.AreEqual(stringValue, existing.StringValue); }
public void InjectionMethodsAreCalled() { ObjectWithInjectionMethod obj = ResolveConfiguredObject <ObjectWithInjectionMethod>("method"); Assert.AreEqual(obj.ConnectionString, "contoso"); Assert.IsInstanceOfType(obj.Logger, typeof(MockLogger)); }
public void ConfigInject_InjectionMethodWithTwoDifferentParameters() { ObjectWithInjectionMethod obj = ResolveConfiguredObject <ObjectWithInjectionMethod>("methodwithTwoDifferentInjectionParameters"); Assert.IsInstanceOfType(obj.Service, typeof(IService)); Assert.IsInstanceOfType(obj.Logger, typeof(SpecialLogger)); }
public void ConfigInject_InjectionMethodWithTwoSameParameters() { ObjectWithInjectionMethod obj = ResolveConfiguredObject <ObjectWithInjectionMethod>("methodwithTwoSameInjectionParameters"); Assert.IsInstanceOfType(obj.Logger1, typeof(MockLogger)); Assert.IsInstanceOfType(obj.Logger2, typeof(SpecialLogger)); }
public void ConfigInject_CanConfigureOnePropertyAndOneMethod() { ObjectWithInjectionMethod obj = ResolveConfiguredObject <ObjectWithInjectionMethod>( "ObjectWithInjectionMethodContainer"); Assert.IsNotNull(obj.Service); Assert.IsInstanceOfType(obj.Service, typeof(EmailService)); }
public void GetProperExceptionMessageWhenFailingToResolveMethodParameter() { TestingBuilderContext context = TestingBuilderContext.GetFullContext(); ILifetimePolicy intLifetime = new SingletonLifetimePolicy(); intLifetime.SetValue(42); context.PersistentPolicies.Set(intLifetime, typeof(int)); ObjectWithInjectionMethod existing = new ObjectWithInjectionMethod(); try { context.ExecuteBuildUp(typeof(ObjectWithInjectionMethod), existing); Assert.Fail(); } catch (BuildFailedException ex) { StringAssert.Contains(ex.Message, "DoSomething"); StringAssert.Contains(ex.Message, "stringParam"); } }