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)); } }
internal DbConfiguration(InternalConfiguration internalConfiguration) { DebugCheck.NotNull(internalConfiguration); _internalConfiguration = internalConfiguration; _internalConfiguration.Owner = this; }
private static DbConfiguration CreatedLockedConfiguration() { var internalConfiguration = new InternalConfiguration(); internalConfiguration.Lock(); return(new DbConfiguration(internalConfiguration)); }
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(); }
public virtual void OnLocking(InternalConfiguration configuration) { DebugCheck.NotNull(configuration); var handler = _onLockingConfiguration; if (handler != null) { handler(configuration.Owner, new DbConfigurationEventArgs(configuration)); } }
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")); }
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); }
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); }
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)); } }
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")); }