private IWindsorContainer InitializeContainer()
        {
            var container = new WindsorContainer();

            container.AddFacility <LoggingFacility>(f => f.LogUsing <Log4netFactory>());

            container.Register(
                Classes.FromThisAssembly()
                .BasedOn <ApiController>()
                .LifestyleScoped());

            // Web API Dependency Injection
            container.Register(
                Component.For <System.Web.Http.Dependencies.IDependencyResolver>()
                .Instance(new WindsorDependencyResolver(container)));

            container.Register(
                Component.For <IPipelineFactory>()
                .ImplementedBy <PipelineFactory>());

            container.Register(
                Component.For <ISchoolYearContextProvider>()
                .ImplementedBy <SchoolYearContextProvider>());

            container.Register(
                Component.For <IRESTErrorProvider>()
                .ImplementedBy <EdFi.Ods.Api.ExceptionHandling.Stubs.RESTErrorProvider>());


            container.Register(Component
                               .For <IUpstreamEdFiApiInvoker>()
                               .ImplementedBy <UpstreamEdFiApiInvoker>()
                               .DependsOn(Dependency.OnValue("upstreamEdFiApiUrl", AppConfigValueProvider.GetValue("UpstreamEdFiApiUrl") ?? string.Empty))
                               .DependsOn(Dependency.OnValue("includeSchoolYearInUpstreamRoute", AppConfigValueProvider.GetBool("IncludeSchoolYearInUpstreamRoute")))
                               .LifestyleTransient());

            container.Register(Component
                               .For <IUpstreamOAuthInvoker>()
                               .ImplementedBy <UpstreamOAuthInvoker>()
                               .DependsOn(Dependency.OnValue("upstreamEdFiApiUrl", AppConfigValueProvider.GetValue("UpstreamEdFiApiUrl") ?? string.Empty))
                               .LifestyleTransient());

            return(container);
        }
 public void SetUp()
 {
     SystemUnderTest = new AppConfigValueProvider();
 }