/// <inheritdoc /> public void Start(Library rootLibrary) { Fail.IfArgumentNull(rootLibrary, nameof(rootLibrary)); Fail.IfNotNull(this.container, Violation.Of($"{nameof(WindsorEngine)} already started")); var librarian = new Librarian(rootLibrary); Library[] allLibraries = librarian.GetLibraries(); var extensions = allLibraries.SelectMany(library => library.GetWindsorEngineExtensions()).ToArray(); this.container = new WindsorContainer(); this.container.Kernel.Resolver.AddSubResolver(new ComponentCollectionResolver(this.container.Kernel)); this.container.Register(Component.For <IWindsorContainer>() .Instance(this.container)); this.container.Register(Component.For <IWindsorEngine>() .Instance(this)); this.container.Register(Component.For <ILibrarian>() .Instance(librarian)); foreach (Library library in allLibraries) { this.RegisterComponentsFrom(library, extensions); } }
public void GetLibrariesContainsCoreLibraryEvenIfItWasNotSpecifiedAsDependency() { // ARRANGE var librarian = new Librarian(new SynergyCoreSampleLibrary()); // ACT Library[] libraries = librarian.GetLibraries(); // ASSERT Assert.That(libraries, Is.EquivalentTo( new Library[] { new SynergyCoreSampleLibrary(), new SynergyCoreLibrary(), })); }