Ejemplo n.º 1
0
        public virtual void SetConfiguration(InternalConfiguration configuration)
        {
            DebugCheck.NotNull(configuration);

            var configurationType = _loader.TryLoadFromConfig(AppConfig.DefaultInstance);

            if (configurationType != null)
            {
                configuration = configurationType
                                .CreateInstance <DbConfiguration>(Strings.CreateInstance_BadDbConfigurationType)
                                .InternalConfiguration;
            }

            _newConfiguration = configuration.Owner;

            if (_configuration.Value.Owner.GetType() != configuration.Owner.GetType())
            {
                if (_configuration.Value.Owner.GetType() == typeof(DbConfiguration))
                {
                    throw new InvalidOperationException(Strings.DefaultConfigurationUsedBeforeSet(configuration.Owner.GetType().Name));
                }

                throw new InvalidOperationException(
                          Strings.ConfigurationSetTwice(configuration.Owner.GetType().Name, _configuration.Value.Owner.GetType().Name));
            }
        }
Ejemplo n.º 2
0
        internal DbConfiguration(InternalConfiguration internalConfiguration)
        {
            DebugCheck.NotNull(internalConfiguration);

            _internalConfiguration       = internalConfiguration;
            _internalConfiguration.Owner = this;
        }
Ejemplo n.º 3
0
        private static DbConfiguration CreatedLockedConfiguration()
        {
            var internalConfiguration = new InternalConfiguration();

            internalConfiguration.Lock();
            return(new DbConfiguration(internalConfiguration));
        }
Ejemplo n.º 4
0
            public void RootResolver_returns_the_root_resolver()
            {
                var rootResolver = new RootDependencyResolver();

                var config = new InternalConfiguration(new Mock <ResolverChain>().Object, new Mock <ResolverChain>().Object, rootResolver);

                Assert.Same(rootResolver, config.RootResolver);
            }
        public AppConfigDependencyResolver(
            AppConfig appConfig,
            InternalConfiguration internalConfiguration,
            ProviderServicesFactory providerServicesFactory = null)
        {
            DebugCheck.NotNull(appConfig);

            _appConfig               = appConfig;
            _internalConfiguration   = internalConfiguration;
            _providerServicesFactory = providerServicesFactory ?? new ProviderServicesFactory();
        }
Ejemplo n.º 6
0
        public virtual void OnLocking(InternalConfiguration configuration)
        {
            DebugCheck.NotNull(configuration);

            var handler = _onLockingConfiguration;

            if (handler != null)
            {
                handler(configuration.Owner, new DbConfigurationEventArgs(configuration));
            }
        }
Ejemplo n.º 7
0
            public void SwitchInRootResolver_leaves_other_resolvers_intact()
            {
                var configuration = new InternalConfiguration();
                var mockResolver  = new Mock <IDbDependencyResolver>();

                configuration.AddDependencyResolver(mockResolver.Object);

                configuration.SwitchInRootResolver(new Mock <RootDependencyResolver>().Object);

                configuration.DependencyResolver.GetService <object>("Foo");
                mockResolver.Verify(m => m.GetService(typeof(object), "Foo"));
            }
Ejemplo n.º 8
0
            public void SwitchInRootResolver_swicthes_in_given_root_resolver()
            {
                var configuration    = new InternalConfiguration();
                var mockRootResolver = new Mock <RootDependencyResolver>();

                configuration.SwitchInRootResolver(mockRootResolver.Object);

                Assert.Same(mockRootResolver.Object, configuration.RootResolver);

                configuration.DependencyResolver.GetService <object>("Foo");
                mockRootResolver.Verify(m => m.GetService(typeof(object), "Foo"));
            }
            public void AddSecondaryResolver_throws_if_the_configuation_is_locked()
            {
                var internalConfiguration = new InternalConfiguration();

                internalConfiguration.Lock();

                Assert.Equal(
                    Strings.ConfigurationLocked("AddSecondaryResolver"),
                    Assert.Throws <InvalidOperationException>(
                        () =>
                        new DbConfigurationEventArgs(internalConfiguration)
                        .AddSecondaryResolver(new Mock <IDbDependencyResolver>().Object)).Message);
            }
Ejemplo n.º 10
0
            public void DependencyResolver_returns_the_dependency_resolver_in_use()
            {
                var mockAppConfigChain = new Mock <ResolverChain>();
                var mockNormalChain    = new Mock <ResolverChain>();

                var config = new InternalConfiguration(
                    mockAppConfigChain.Object, mockNormalChain.Object,
                    new RootDependencyResolver());
                var resolver = (CompositeResolver <ResolverChain, ResolverChain>)config.DependencyResolver;

                Assert.Same(mockAppConfigChain.Object, resolver.First);
                Assert.Same(mockNormalChain.Object, resolver.Second);
            }
Ejemplo n.º 11
0
        public virtual void SetConfiguration(InternalConfiguration configuration, bool lookInConfig = true)
        {
            DebugCheck.NotNull(configuration);

            if (lookInConfig)
            {
                configuration = _loader.TryLoadFromConfig(AppConfig.DefaultInstance) ?? configuration;
            }

            _newConfiguration = configuration.Owner;

            if (_configuration.Value.Owner.GetType()
                != configuration.Owner.GetType())
            {
                if (_configuration.Value.Owner.GetType()
                    == typeof(DbConfiguration))
                {
                    throw new InvalidOperationException(Strings.DefaultConfigurationUsedBeforeSet(configuration.Owner.GetType().Name));
                }

                throw new InvalidOperationException(
                          Strings.ConfigurationSetTwice(configuration.Owner.GetType().Name, _configuration.Value.Owner.GetType().Name));
            }
        }
Ejemplo n.º 12
0
        internal DbConfigurationEventArgs(InternalConfiguration configuration)
        {
            DebugCheck.NotNull(configuration);

            _internalConfiguration = configuration;
        }
 private static void AssertIsNotLocked(InternalConfiguration internalConfiguration)
 {
     Assert.DoesNotThrow(() => internalConfiguration.CheckNotLocked("Foo"));
 }
 private static void AssertIsLocked(InternalConfiguration internalConfiguration)
 {
     Assert.Throws <InvalidOperationException>(() => internalConfiguration.CheckNotLocked("Foo"));
 }