public void TestByMethod() { Container.Bind <FooFacade>().FromSubContainerResolve() .ByMethod(InstallFoo).WithKernel().AsSingle(); UniDiManagersInstaller.Install(Container); Container.ResolveRoots(); var facade = Container.Resolve <FooFacade>(); Assert.That(!facade.Foo.WasInitialized); Container.Resolve <InitializableManager>().Initialize(); Assert.That(facade.Foo.WasInitialized); }
public void TestByInstallerCustomOrder() { GlobalInitializeCount = 0; Container.BindInterfacesAndSelfTo <Bar>().AsSingle(); Container.Bind <FooFacade>().FromSubContainerResolve() .ByInstaller <FooInstaller>().WithKernel <FooKernel>().AsSingle(); UniDiManagersInstaller.Install(Container); Container.ResolveRoots(); var facade = Container.Resolve <FooFacade>(); Assert.That(!facade.Foo.WasInitialized); Container.Resolve <InitializableManager>().Initialize(); Assert.That(facade.Foo.WasInitialized); Assert.IsEqual(Container.Resolve <Bar>().InitializeCount, 1); Assert.IsEqual(facade.Foo.InitializeCount, 2); }