public void Setup()
            {
                AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Standard>();

                var factory = new InversionOfControlContainerFactory();

                testContainer = factory.CreateContainer(c => { c.Kernel.Resolver.AddSubResolver(new ArrayResolver(c.Kernel, true)); });

                testContainer.AddFacility <TypedFactoryFacility>();

                testContainer.Register(
                    Component
                    .For <IConfigValueProvider>()
                    .ImplementedBy <NameValueCollectionConfigValueProvider>());

                testContainer.Register(
                    Component
                    .For <ICacheProvider>()
                    .ImplementedBy <MemoryCacheProvider>());

                testContainer.Register(
                    Component
                    .For <IDatabaseConnectionStringProvider>()
                    .ImplementedBy <NullDatabaseConnectionStringProvider>());

                testContainer.Register(
                    Component
                    .For <IContextStorage>()
                    .ImplementedBy <HashtableContextStorage>());

                testContainer.Register(
                    Component
                    .For <IApiKeyContextProvider>()
                    .ImplementedBy <ApiKeyContextProvider>());

                testContainer.Register(
                    Component
                    .For <ISecurityRepository>()
                    .ImplementedBy <StubSecurityRepository>());

                testContainer.Register(
                    Component
                    .For <ISessionFactory>()
                    .Instance(MockRepository.GenerateStub <ISessionFactory>()));

                testContainer.Register(
                    Component.For <IEdFiOdsInstanceIdentificationProvider>()
                    .Instance(MockRepository.GenerateStub <IEdFiOdsInstanceIdentificationProvider>()));

                testContainer.Install(new SecurityComponentsInstaller());
            }
            private void RegisterDependencies()
            {
                var factory = new InversionOfControlContainerFactory();

                _container = factory.CreateContainer(
                    c =>
                {
                    c.AddFacility <TypedFactoryFacility>();
                    c.AddFacility <DatabaseConnectionStringProviderFacility>();
                });

                _container.Install(new LegacyEdFiOdsCommonInstaller());
                _container.Install(new EdFiOdsStandardInstaller());

                _container.Register(
                    Component.For <IConfigConnectionStringsProvider>()
                    .ImplementedBy <AppConfigConnectionStringsProvider>());

                _container.Register(
                    Component.For <IDatabaseConnectionStringProvider>()
                    .Named("IDatabaseConnectionStringProvider.Ods")
                    .Instance(CreateDatabaseConnectionStringProvider()));

                _container.Install(new LegacyEdFiOdsNHibernateInstaller());
                _container.Install(new LegacyEdFiOdsApiInstaller());

                _container.Register(
                    Component.For <IConfigValueProvider>()
                    .ImplementedBy <AppConfigValueProvider>());

                _container.Register(
                    Component.For <ICacheProvider>()
                    .ImplementedBy <MemoryCacheProvider>());

                AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Standard>();

                InitializeNHibernate(_container);

                // Register security component
                _container.Register(
                    Component
                    .For <IAuthorizationContextProvider>()
                    .ImplementedBy <AuthorizationContextProvider>());

                _container.Register(
                    Component
                    .For <IContextStorage>()
                    .ImplementedBy <HashtableContextStorage>());

                _container.Register(
                    Component.For <IClaimsIdentityProvider>()
                    .ImplementedBy <ClaimsIdentityProvider>()
                    .LifestyleTransient());

                _container.Register(
                    Component.For <ISecurityRepository>()
                    .ImplementedBy <StubSecurityRepository>());

                _container.Register(
                    Component.For <IParameterListSetter>()
                    .ImplementedBy <SqlServerTableValuedParameterListSetter>());
            }