public void TestDisposeAndReConfiguration() { var container = new DependencyInjector(new ServiceConfiguration(), new MoreConfig()); Assert.IsNotNull(container); Assert.IsTrue(container.ContainsObject<ISomeDomainCmdService>()); Assert.IsTrue(container.ContainsObject<ICommandManager>()); Assert.IsTrue(container.ContainsObject("SomeDomainCmdServiceB")); container.ExpandConfiguration(new ComplexConfig()); Assert.IsTrue(container.ContainsObject<IAggregate>()); container.Reconfigure(); Assert.IsTrue(container.ContainsObject<ISomeDomainCmdService>()); Assert.IsTrue(container.ContainsObject<ICommandManager>()); Assert.IsTrue(container.ContainsObject("SomeDomainCmdServiceB")); Assert.IsTrue(container.ContainsObject<IAggregate>()); IAggregate aggregate = container.GetObject<IAggregate>(); Assert.IsNotNull(aggregate); var b = container.GetObject("SomeDomainCmdServiceB"); Assert.IsNotNull(b); container.Dispose(); Assert.Throws<DependencyInjectorGetObjectException>(() => container.GetObject("SomeDomainCmdServiceB")); container = new DependencyInjector(new ServiceConfiguration(), new MoreConfig()); Assert.IsNotNull(container); Assert.IsTrue(container.ContainsObject<ISomeDomainCmdService>()); Assert.IsTrue(container.ContainsObject<ICommandManager>()); Assert.IsTrue(container.ContainsObject("SomeDomainCmdServiceB")); container.ExpandConfiguration(new ComplexConfig()); Assert.IsTrue(container.ContainsObject<IAggregate>()); container.Reconfigure(); Assert.IsTrue(container.ContainsObject<ISomeDomainCmdService>()); Assert.IsTrue(container.ContainsObject<ICommandManager>()); Assert.IsTrue(container.ContainsObject("SomeDomainCmdServiceB")); Assert.IsTrue(container.ContainsObject<IAggregate>()); aggregate = container.GetObject<IAggregate>(); Assert.IsNotNull(aggregate); b = container.GetObject("SomeDomainCmdServiceB"); Assert.IsNotNull(b); }