public void CanInstallBinsorScriptFromFile()
        {
            _container.Install(BinsorScript
                               .FromFile(Path.GetFullPath(@"Binsor\Windsor2.boo"))
                               );

            bool has_repos = _container.Kernel.HasComponent(typeof(IRepository <>));

            Assert.IsTrue(has_repos, "should have generic repository!");
        }
        public void CanInstallBinsorInlineScript()
        {
            _container.Install(BinsorScript.Inline(
                                   @"component 'default_repository', IRepository, NHRepository:
					lifestyle Transient"
                                   ));

            bool has_repos = _container.Kernel.HasComponent(typeof(IRepository <>));

            Assert.IsTrue(has_repos, "should have generic repository!");
        }
        public void CanInstallBinsorScriptWithImportedNamespaces()
        {
            _container.Install(BinsorScript
                               .FromFile(Path.GetFullPath(@"Binsor\CustomNamespaces.boo"))
                               .ImportNamespaces("Rhino.Commons.Test")
                               );

            IRepository <Fubar> fubar_repos = _container.Resolve <IRepository <Fubar> >();

            Assert.IsNotNull(fubar_repos);
        }
        public void CanInstallBinsorScriptFromRunner()
        {
            AbstractConfigurationRunner runner = BooReader.GetConfigurationInstanceFromFile(
                Path.GetFullPath(@"Binsor\Windsor2.boo"), "", _container,
                BooReader.GenerationOptions.Memory);

            _container.Install(BinsorScript.FromRunner(runner));

            bool has_repos = _container.Kernel.HasComponent(typeof(IRepository <>));

            Assert.IsTrue(has_repos, "should have generic repository!");
        }
        public void CanExtendComponentsRegisteredInCode()
        {
            using (IWindsorContainer container = new RhinoContainer())
            {
                container.Register(Component.For <GstCalculator>()
                                   .Named("gstcalculator")
                                   .DependsOn(Property.ForKey("GstRate").Eq(15m)));

                IWindsorInstaller installer = BinsorScript.Inline(new StringBuilder().AppendLine("extend \"gstcalculator\":")
                                                                  .AppendLine("	GstRate = decimal(50)").ToString());
                installer.Install(container, null);
                GstCalculator calculator = container.Resolve <GstCalculator>();
                Assert.AreEqual(50m, calculator.GstRate);
            }
        }
        public void CanInstallBinsorScriptFromGeneratedAssembly()
        {
            _container.Install(BinsorScript
                               .FromFile(Path.GetFullPath(@"Binsor\Windsor2.boo"))
                               .GenerateAssembly()
                               );

            IWindsorContainer container = new WindsorContainer()
                                          .Install(BinsorScript.FromCompiledAssembly("Windsor2.dll")
                                                   );

            bool has_repos = container.Kernel.HasComponent(typeof(IRepository <>));

            Assert.IsTrue(has_repos, "should have generic repository!");
        }
        public void CanInstallBinsorScriptFileAndReuseIt()
        {
            BinsorFileInstaller fromFile = BinsorScript
                                           .FromFile(Path.GetFullPath(@"Binsor\Windsor2.boo"))
                                           .Reusable();

            _container.Install(fromFile);

            IWindsorContainer container = new WindsorContainer()
                                          .Install(fromFile);

            bool has_repos = container.Kernel.HasComponent(typeof(IRepository <>));

            Assert.IsTrue(has_repos, "should have generic repository!");
        }
 public void InstallBinsorScriptFromInvalidAssembly_ThrowsException()
 {
     _container.Install(BinsorScript.FromCompiledAssembly(
                            Assembly.GetExecutingAssembly())
                        );
 }