Exemplo n.º 1
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     WindsorContainerBuilder.BuildContainer();
 }
Exemplo n.º 2
0
        public void Configuration(IAppBuilder appBuilder)
        {
            // install logging
            XmlConfigurator.Configure();

            bool isValidConfig;

            try
            {
                EnsureAssembliesLoaded();

                // configure container
                var containerBuilder = new WindsorContainerBuilder();

                Container = containerBuilder.Build();

                ConfigurationSpecificRegistration();

                isValidConfig = true;
            }
            catch (Exception e)
            {
                // we swallow the container exceptions so we can still return a valid api with a status of 500. c.f. (ODS-3240)
                Logger.Warn("The container could not be built.");
                Logger.Error(e);
                isValidConfig = false;
            }

            appBuilder.SetLoggerFactory(new Log4NetLoggerFactory());

            if (isValidConfig)
            {
                Logger.Info("Starting ODS/API with a valid container.");

                appBuilder
                .Use <RemoveServerHeaderMiddleware>()
                .UseWebApi(Container.Resolve <HttpConfiguration>());

                // invoke any external tasks if they are installed
                foreach (var externalTask in Container.ResolveAll <IExternalTask>())
                {
                    Logger.Info($"Executing task {externalTask.GetType().Name}.");
                    externalTask.Execute();
                }
            }
            else
            {
                // Invalid windsor container
                Logger.Info("Starting ODS/API to redirect to a 500.");

                appBuilder
                .Use <InvalidWindsorContainerMiddleware>();
            }

            Logger.Info("ODS/Api is running.");
        }
Exemplo n.º 3
0
        public static TestContext Get(Action <WindsorRegistrationOptions> configure = null, Func <IServiceProvider> serviceProviderFactory = null)
        {
            IServiceProvider serviceProvider = null;

            var serviceCollection = ServiceCollectionBuilder.New();

            var container = WindsorContainerBuilder.New(serviceCollection,
                                                        configure ?? (opts => opts.UseEntryAssembly(typeof(TestContextFactory).Assembly)),
                                                        serviceProviderFactory ?? (() => serviceProvider = ServiceProviderBuilder.New(serviceCollection)));

            var applicationBuilder = ApplicationBuilder.New(serviceProvider);

            return(new TestContext(serviceCollection, serviceProvider, applicationBuilder, container, container.RequireScope()));
        }
Exemplo n.º 4
0
        public void CreateWindsorContainerBuilderResolver()
        {
            var apperCase       = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var classesToCreate = new List <string>();

            for (var i = 0; i < apperCase.Length; i++)
            {
                for (var j = 0; j < firstInt; j++)
                {
                    for (var k = 0; k < secondInt; k++)
                    {
                        var className = $"{apperCase[i]}{j}{k}";
                        classesToCreate.Add($"{className}Resolve");
                    }
                }
            }
            var nameSpace  = "WindsorIoc";
            var folderPath = $"/Users/yoavhagashi/Project/IOCTest/{nameSpace}";
            var builder    = new ClassBuilder();
            var writer     = new ClassWriter();
            var windsorContainerBuilder = new WindsorContainerBuilder();
            var constractorParams       = new Dictionary <string, string>();
            var usingInClass            = new StringBuilder();

            usingInClass.AppendLine("using Castle.Windsor;");
            usingInClass.AppendLine("using Castle.MicroKernel.Registration;");
            foreach (var className in classesToCreate)
            {
                var newClass = builder.Build("WindsorIoc", className, false, constractorParams, null, usingInClass.ToString());
                var path     = Path.Join(folderPath, "Classes", $"{className}.cs");
                writer.Write(path, newClass);
                constractorParams.Add($"I{className}", className);
                windsorContainerBuilder.AddRegisteration($"I{className}", className);
                // windsorContainerBuilder.AddResolve($"I{className}");

                if (constractorParams.Count >= maxConstructor)
                {
                    constractorParams.Clear();
                }
            }
            // windsorContainerBuilder.WithTimer();
            var containerTestMethod          = windsorContainerBuilder.Build();
            var windsorContainerTestnewClass = builder.Build(nameSpace, "WindsorContainerTestResolve", true, null, new Dictionary <string, string> {
                { "TestContainer", containerTestMethod }
            }, windsorContainerBuilder.GetUsingSection());
            var pathWindsorContainerTest = Path.Join(folderPath, $"WindsorContainerTestResolve.cs");

            writer.Write(pathWindsorContainerTest, windsorContainerTestnewClass);
        }
 protected override void Arrange()
 {
     AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Standard>();
     _systemUnderTest = new WindsorContainerBuilder();
 }
Exemplo n.º 6
0
 public void SetUp()
 {
     Target = new WindsorContainerBuilder();
 }