public void RegisterSingletonObject()
 {
     ObjectContainer locator = new ObjectContainer();
     locator.RegisterSingleton<object>(c => { return new object(); });
     var result = locator.Create<object>();
     Assert.IsAssignableFrom<object>(result);
     var result2 = locator.Create<object>();
     Assert.AreSame(result, result2);
 }
 public void CreateSingletonObject()
 {
     ObjectContainer locator = new ObjectContainer();
     locator.DeclareSingleton(typeof(object));
     var result = locator.Create<object>();
     Assert.IsAssignableFrom<object>(result);
     var result2 = locator.Create<object>();
     Assert.AreSame(result, result2);
 }
 public void RegisterReplacesPreviousRegistration
     ()
 {
     ObjectContainer locator = new ObjectContainer();
     var log = new Mock<ILogger>();
     locator.Register<ILogger>(c => { return log.Object; });
     var log2 = new Mock<ILogger>();
     locator.Register<ILogger>(c => { return log2.Object; });
     var result = locator.Create<ILogger>();
     Assert.AreSame(result,log2.Object);
 }
 public void CreateComplexObject()
 {
     ObjectContainer locator = new ObjectContainer();
     var dc = new Mock<IDirectoryController>();
     var log = new Mock<ILoggerContainer>();
     var log1 = new Mock<ILogger>();
     var ml = new Mock<IModuleLoader>();
     locator.Register<IDirectoryController>(c => { return dc.Object; });
     locator.Register<ILoggerContainer>(c => { return log.Object; });
     locator.Register<ILogger>(c => { return log1.Object; });
     locator.Register<IModuleLoader>(c => { return ml.Object; });
     var result = locator.Create<DefaultLoader>();
     Assert.IsAssignableFrom<DefaultLoader>(result);
 }
 public void CreateSimpleObject()
 {
     ObjectContainer locator = new ObjectContainer();
     var result = locator.Create<object>();
     Assert.IsAssignableFrom<object>(result);
 }