public void CreationPolicyWillRecordSingletonsUsingLocalLifetimeContainerOnly() { BuilderStrategyChain chain = new BuilderStrategyChain(); chain.Add(new CreationStrategy()); Locator parentLocator = new Locator(); LifetimeContainer container = new LifetimeContainer(); parentLocator.Add(typeof(ILifetimeContainer), container); Locator childLocator = new Locator(parentLocator); PolicyList policies = new PolicyList(); policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy()); policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true)); BuilderContext ctx = new BuilderContext(chain, childLocator, policies); object obj = ctx.HeadOfChain.BuildUp(ctx, typeof(object), null, null); Assert.IsNotNull(obj); Assert.IsNull(childLocator.Get(new DependencyResolutionLocatorKey(typeof(object), null))); }
public void DefaultPolicyUsedWhenSpecificPolicyIsntAvailable() { PolicyList list = new PolicyList(); MockPolicy defaultPolicy = new MockPolicy(); list.SetDefault <IBuilderPolicy>(defaultPolicy); Assert.AreSame(defaultPolicy, list.Get <IBuilderPolicy>(typeof(object), null)); }
public void SpecificPolicyOverridesDefaultPolicy() { PolicyList list = new PolicyList(); MockPolicy defaultPolicy = new MockPolicy(); MockPolicy specificPolicy = new MockPolicy(); list.Set <IBuilderPolicy>(specificPolicy, typeof(object), null); list.SetDefault <IBuilderPolicy>(defaultPolicy); Assert.AreSame(specificPolicy, list.Get <IBuilderPolicy>(typeof(object), null)); }
public void CanClearDefaultPolicy() { PolicyList list = new PolicyList(); MockPolicy defaultPolicy = new MockPolicy(); list.SetDefault <IBuilderPolicy>(defaultPolicy); list.ClearDefault <IBuilderPolicy>(); Assert.IsNull(list.Get <IBuilderPolicy>(typeof(object), null)); }