public void Installers_defined_after_ConfigurationResolver_are_processed()
		{
			var container = new WindsorContainer();
			var configurationResolver = new ConfigurationResolver(container.Kernel);

			// Register installer prior to registering 
			container.Register(
				Component.For<IConfigurationBuilder>()
					.ImplementedBy<DefaultInstaller>()
				);

			Assert.IsTrue(configurationResolver.IsAliasDefined("default-installer"));
		}
		public void Default_alias_used_for_null_alias()
		{
			using (var container = new WindsorContainer())
			{
				var configurationResolver = new ConfigurationResolver(container.Kernel) {DefaultAlias = TestConfigurationBuilder.Alias};

				// Register installer prior to registering 
				container.Register(
					Component.For<IConfigurationBuilder>()
						.ImplementedBy<TestConfigurationBuilder>(),
					Component.For<IConfigurationBuilder>()
						.ImplementedBy<NonDefaultInstaller>(),
					Component.For<IConfigurationSerializer>()
						.ImplementedBy<TestSerializer>()
					);

				var testdbConfiguration = configurationResolver.GetConfiguration(TestConfigurationBuilder.Alias);
				var defaultConfiguration = configurationResolver.GetConfiguration(null);

				Assert.AreSame(testdbConfiguration, defaultConfiguration);
			}
		}
		public void No_default_installer()
		{
			var container = new WindsorContainer();
			var configurationResolver = new ConfigurationResolver(container.Kernel);

			Assert.IsNull(configurationResolver.DefaultAlias);

			container.Register(
				Component.For<IConfigurationBuilder>()
					.ImplementedBy<NonDefaultInstaller>()
				);

			Assert.IsNull(configurationResolver.DefaultAlias);
			Assert.Throws<NHibernateFacilityException>(() => configurationResolver.GetConfiguration(null));
		}
		public void Unknown_alias()
		{
			var container = new WindsorContainer();
			var configurationResolver = new ConfigurationResolver(container.Kernel);

			container.Register(
				Component.For<IConfigurationBuilder>()
					.ImplementedBy<NonDefaultInstaller>()
				);

			Assert.Throws<NHibernateFacilityException>(() => configurationResolver.GetConfiguration("some-random-alias"));
		}
		public void Installers_with_dependencies_are_processed_when_possible()
		{
			var container = new WindsorContainer();
			var configurationResolver = new ConfigurationResolver(container.Kernel);

			// Register installer prior to registering 
			container.Register(
				Component.For<IConfigurationBuilder>()
					.ImplementedBy<InstallerWithDependency>()
				);

			Assert.IsFalse(configurationResolver.IsAliasDefined("installer-with-dependency"));

			container.Register(Component.For<DependencyClass>());

			Assert.IsTrue(configurationResolver.IsAliasDefined("installer-with-dependency"));
		}