public void ContainerResolvesRecursiveConstructorDependencies()
        {
            IUnityContainer         container = new UnityContainer();
            ObjectWithOneDependency dep       = container.Resolve <ObjectWithOneDependency>();

            Assert.IsNotNull(dep);
            Assert.IsNotNull(dep.InnerObject);
            Assert.AreNotSame(dep, dep.InnerObject);
        }
        public void SingletonsRegisteredAsDefaultGetInjected()
        {
            IUnityContainer container = new UnityContainer()
                                        .RegisterType <ObjectWithOneDependency>(new ContainerControlledLifetimeManager());

            ObjectWithOneDependency dep = container.Resolve <ObjectWithOneDependency>();
            ObjectWithTwoConstructorDependencies dep2 =
                container.Resolve <ObjectWithTwoConstructorDependencies>();

            Assert.AreSame(dep, dep2.OneDep);
        }
 public ObjectWithTwoConstructorDependencies(ObjectWithOneDependency oneDep)
 {
     this.oneDep = oneDep;
 }
 public ObjectWithLotsOfDependencies(ILogger logger, ObjectWithOneDependency dep1)
 {
     this.ctorLogger = logger;
     this.dep1       = dep1;
 }