From 87b0322330124d0a4b8739ef0bd73eed5741b9e8 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Tue, 5 Dec 2023 17:21:30 +0100 Subject: [PATCH 01/11] RM-XXXX: Change PEVerify to use a re-motion provided implementation. TypePipe uses an older implementation of PEVerify lookup. In order to reduce development dependencies, removing this dependency from the unit tests unlinks this dependency chain. --- .../UnitTests/Core/CodeGeneration/SetUpFixture.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs index b54748acc4..e9472bab62 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs @@ -17,6 +17,7 @@ using System; using NUnit.Framework; using Remotion.Development.UnitTesting; +using Remotion.Development.UnitTesting.PEVerifyPathSources; using Remotion.Mixins.CodeGeneration; using Remotion.Mixins.CodeGeneration.TypePipe; using Remotion.ServiceLocation; @@ -117,7 +118,15 @@ public void OneTimeTearDown () } #if ENABLE_PEVERIFY - s_assemblyTrackingCodeManager.PeVerifySavedAssemblies(); + // Instead of using the TypePipe-provided version of PEVerify, we supply the latest version available in the Framework codebase + // to decouple the installed version of Windows Kit from the versions supported by TypePipe. + + // s_assemblyTrackingCodeManager.PeVerifySavedAssemblies(); + + var peVerifier = PEVerifier.CreateDefault(); + var savedAssemblies = s_assemblyTrackingCodeManager.SavedAssemblies; + foreach (var savedAssembly in savedAssemblies) + peVerifier.VerifyPEFile(savedAssembly, PEVerifyVersion.DotNet4); #endif if (!s_skipDeletion) From f2c603c4f57308ec0b301c8f35116cbcab168aeb Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Thu, 7 Dec 2023 10:16:48 +0100 Subject: [PATCH 02/11] RM-XXXX: Optimize DefaultServiceLocator lookup performance --- .../Core/Core/ServiceLocation/DefaultServiceLocator.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs index cf407bb430..ba830ab401 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs @@ -203,7 +203,10 @@ public IEnumerable GetAllInstances () if (registration.CompoundFactory != null) return InvokeInstanceFactoryWithActivationException(registration.CompoundFactory, serviceType); - if (registration.SingleFactory == null && registration.MultipleFactories.Any()) + if (registration.SingleFactory != null) + return InvokeInstanceFactoryWithActivationException(registration.SingleFactory, serviceType); + + if (registration.SingleFactory == null && registration.MultipleFactories.Count > 0) { throw new ActivationException( string.Format( @@ -211,9 +214,6 @@ public IEnumerable GetAllInstances () serviceType)); } - if (registration.SingleFactory != null) - return InvokeInstanceFactoryWithActivationException(registration.SingleFactory, serviceType); - return null; } From 25a659424d5f4692d8cb141fedce760bfb8f2a82 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Sun, 3 Dec 2023 19:54:36 +0100 Subject: [PATCH 03/11] RM-5931 Rewrite BootstrapServiceConfiguration to allow registration overrides. --- .../BootstrapServiceConfiguration.cs | 47 +++---- ...BootstrapServiceConfigurationExtensions.cs | 67 +++++++++ .../ServiceLocation/DefaultServiceLocator.cs | 2 - .../DefaultServiceLocatorProvider.cs | 4 +- .../IBootstrapServiceConfiguration.cs | 16 +-- .../IServiceLocatorProvider.cs | 4 +- .../ServiceLocation/SafeServiceLocator.cs | 29 ++-- .../FakeServiceLocatorProvider.cs | 4 +- .../BootstrapServiceConfigurationTest.cs | 70 +++++----- .../ServiceLocation/SafeServiceLocatorTest.cs | 132 ++++++++++++++---- 10 files changed, 248 insertions(+), 127 deletions(-) create mode 100644 Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs index cb37c257a1..f2c3683f2c 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs @@ -16,6 +16,7 @@ // using System; using System.Collections.Generic; +using Remotion.Logging; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -27,57 +28,43 @@ namespace Remotion.ServiceLocation public class BootstrapServiceConfiguration : IBootstrapServiceConfiguration { private readonly object _lock = new object(); - private readonly List _registrations = new List(); - - private DefaultServiceLocator _bootstrapServiceLocator = DefaultServiceLocator.Create(); + private readonly Dictionary _registrations = new(); public BootstrapServiceConfiguration () { + // Logging + RegisterAsSingleton(() => new Log4NetLogManager()); - } - - public IServiceLocator BootstrapServiceLocator - { - get { return _bootstrapServiceLocator; } - } - - public ServiceConfigurationEntry[] Registrations - { - get + // ReSharper disable once LocalFunctionHidesMethod + void RegisterAsSingleton (Func factory) + where TService : class + where TImplementation : class, TService { lock (_lock) { - return _registrations.ToArray(); + var singleton = new Lazy(factory); + _registrations.Add( + typeof(TService), + new ServiceConfigurationEntry(typeof(TService), ServiceImplementationInfo.CreateSingle(() => singleton.Value, LifetimeKind.Singleton))); } } } - public void Register (ServiceConfigurationEntry entry) + public IReadOnlyCollection GetRegistrations () { - ArgumentUtility.CheckNotNull("entry", entry); - lock (_lock) { - _bootstrapServiceLocator.Register(entry); - _registrations.Add(entry); + return _registrations.Values; } } - public void Register (Type serviceType, Type implementationType, LifetimeKind lifetime) + public void Register (ServiceConfigurationEntry entry) { - ArgumentUtility.CheckNotNull("serviceType", serviceType); - ArgumentUtility.CheckNotNull("implementationType", implementationType); - - var entry = new ServiceConfigurationEntry(serviceType, new ServiceImplementationInfo(implementationType, lifetime)); - Register(entry); - } + ArgumentUtility.CheckNotNull("entry", entry); - public void Reset () - { lock (_lock) { - _bootstrapServiceLocator = DefaultServiceLocator.Create(); - _registrations.Clear(); + _registrations[entry.ServiceType] = entry; } } } diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs new file mode 100644 index 0000000000..40b342fd9e --- /dev/null +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs @@ -0,0 +1,67 @@ +// This file is part of the re-motion Core Framework (www.re-motion.org) +// Copyright (c) rubicon IT GmbH, www.rubicon.eu +// +// The re-motion Core Framework is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// re-motion is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with re-motion; if not, see http://www.gnu.org/licenses. +// +using System; +using Remotion.Utilities; + +namespace Remotion.ServiceLocation +{ + /// + /// Extension methods for . + /// + public static class BootstrapServiceConfigurationExtensions + { + /// + /// Registers an entry with the given instances and a .. + /// + /// The for which the registration is performed. + /// The service type. This is a type for which instances are requested from a service locator. + /// The concrete implementation of the service type. + public static void Register (this IBootstrapServiceConfiguration bootstrapServiceConfiguration, Type serviceType, Type implementationType) + { + ArgumentUtility.CheckNotNull("bootstrapServiceConfiguration", bootstrapServiceConfiguration); + ArgumentUtility.CheckNotNull("serviceType", serviceType); + ArgumentUtility.CheckNotNull("implementationType", implementationType); + ArgumentUtility.CheckNotNullAndTypeIsAssignableFrom("implementationType", implementationType, serviceType); + + bootstrapServiceConfiguration.Register( + new ServiceConfigurationEntry( + serviceType, + new ServiceImplementationInfo( + implementationType, + LifetimeKind.Singleton, + RegistrationType.Single))); + } + + /// + /// Registers an entry with the given instances and a .. + /// + /// The service type to register the factories for. + /// The for which the registration is performed. + /// The instance to return when resolving for the . + public static void Register (this IBootstrapServiceConfiguration bootstrapServiceConfiguration, TService instance) + where TService : class + { + ArgumentUtility.CheckNotNull("bootstrapServiceConfiguration", bootstrapServiceConfiguration); + ArgumentUtility.CheckNotNull("instance", instance); + + bootstrapServiceConfiguration.Register( + new ServiceConfigurationEntry( + typeof(TService), + ServiceImplementationInfo.CreateSingle(() => instance, LifetimeKind.Singleton))); + } + } +} diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs index ba830ab401..ed00076fdf 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs @@ -76,8 +76,6 @@ public DefaultServiceLocator (IServiceConfigurationDiscoveryService serviceConfi // Optimized for memory allocations _createRegistrationFromTypeFunc = CreateRegistrationFromType; - - Register(new ServiceConfigurationEntry(typeof(ILogManager), new ServiceImplementationInfo(typeof(Log4NetLogManager), LifetimeKind.Singleton))); } /// diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs index e28f7c2fb8..ff245c0700 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs @@ -15,7 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.Collections.ObjectModel; +using System.Collections.Generic; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -29,7 +29,7 @@ public DefaultServiceLocatorProvider () { } - public IServiceLocator GetServiceLocator (ReadOnlyCollection serviceConfigurationEntries) + public IServiceLocator GetServiceLocator (IReadOnlyCollection serviceConfigurationEntries) { ArgumentUtility.CheckNotNull("serviceConfigurationEntries", serviceConfigurationEntries); diff --git a/Remotion/Core/Core/ServiceLocation/IBootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/IBootstrapServiceConfiguration.cs index 18c1338aa5..72288d85a4 100644 --- a/Remotion/Core/Core/ServiceLocation/IBootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/IBootstrapServiceConfiguration.cs @@ -15,6 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.Collections.Generic; namespace Remotion.ServiceLocation { @@ -27,25 +28,12 @@ public interface IBootstrapServiceConfiguration /// /// Returns the instances registered so far. /// - ServiceConfigurationEntry[] Registrations { get; } + IReadOnlyCollection GetRegistrations (); /// /// Registers the given with this . /// /// The to be registered. void Register (ServiceConfigurationEntry entry); - - /// - /// Registers an entry with the given instances and . - /// - /// The service type. This is a type for which instances are requested from a service locator. - /// The concrete implementation of the service type. - /// The lifetime of the instances of . - void Register (Type serviceType, Type implementationType, LifetimeKind lifetime); - - /// - /// Removes all registered data. - /// - void Reset (); } } diff --git a/Remotion/Core/Core/ServiceLocation/IServiceLocatorProvider.cs b/Remotion/Core/Core/ServiceLocation/IServiceLocatorProvider.cs index ce2b1f6bf6..d967cd458d 100644 --- a/Remotion/Core/Core/ServiceLocation/IServiceLocatorProvider.cs +++ b/Remotion/Core/Core/ServiceLocation/IServiceLocatorProvider.cs @@ -15,7 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.Collections.ObjectModel; +using System.Collections.Generic; namespace Remotion.ServiceLocation { @@ -34,6 +34,6 @@ public interface IServiceLocatorProvider /// for the boostrapping service locator. /// /// An instance of . - IServiceLocator GetServiceLocator (ReadOnlyCollection bootstrapConfiguration); + IServiceLocator GetServiceLocator (IReadOnlyCollection bootstrapConfiguration); } } diff --git a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs index b0c5f75a42..c21f3eea88 100644 --- a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs @@ -51,13 +51,14 @@ namespace Remotion.ServiceLocation /// public static class SafeServiceLocator { - private static readonly BootstrapServiceConfiguration s_bootstrapServiceConfiguration = new BootstrapServiceConfiguration(); + /// Workaround to allow reflection to reset the fields since setting a static readonly field is not supported in .NET 3.0 and later. + private class Fields + { + public readonly BootstrapServiceConfiguration BootstrapConfiguration = new(); + public readonly DoubleCheckedLockingContainer DefaultServiceLocator = new(GetDefaultServiceLocator); + } - // This is a DoubleCheckedLockingContainer rather than a static field (maybe wrapped in a nested class to improve laziness) because we want - // any exceptions thrown by GetDefaultServiceLocator to bubble up to the caller normally. (Exceptions during static field initialization get - // wrapped in a TypeInitializationException.) - private static readonly DoubleCheckedLockingContainer s_defaultServiceLocator = - new DoubleCheckedLockingContainer(GetDefaultServiceLocator); + private static readonly Fields s_fields = new(); /// /// Gets the currently configured . @@ -75,10 +76,10 @@ public static IServiceLocator Current get { if (ServiceLocator.IsLocationProviderSet) - return ServiceLocator.Current ?? s_defaultServiceLocator.Value; + return ServiceLocator.Current ?? s_fields.DefaultServiceLocator.Value; - ServiceLocator.SetLocatorProvider(() => s_defaultServiceLocator.Value); - return s_defaultServiceLocator.Value; + ServiceLocator.SetLocatorProvider(() => s_fields.DefaultServiceLocator.Value); + return s_fields.DefaultServiceLocator.Value; } } @@ -100,17 +101,21 @@ public static IServiceLocator Current /// public static IBootstrapServiceConfiguration BootstrapConfiguration { - get { return s_bootstrapServiceConfiguration; } + get { return s_fields.BootstrapConfiguration; } } private static IServiceLocator GetDefaultServiceLocator () { + var bootstrapServiceLocatorEntries = s_fields.BootstrapConfiguration.GetRegistrations(); + // Temporarily set the bootstrapper to allow for reentrancy to SafeServiceLocator.Current. // Since we're called from s_defaultServiceLocator.Value's getter, we can be sure that our return value will overwrite the bootstrapper. - s_defaultServiceLocator.Value = s_bootstrapServiceConfiguration.BootstrapServiceLocator; + var bootstrapServiceLocatorProvider = new DefaultServiceLocatorProvider(); + var bootstrapServiceLocator = bootstrapServiceLocatorProvider.GetServiceLocator(bootstrapServiceLocatorEntries); + s_fields.DefaultServiceLocator.Value = bootstrapServiceLocator; var serviceLocatorProvider = ServiceLocationConfiguration.Current.CreateServiceLocatorProvider(); - return serviceLocatorProvider.GetServiceLocator(Array.AsReadOnly(s_bootstrapServiceConfiguration.Registrations)); + return serviceLocatorProvider.GetServiceLocator(bootstrapServiceLocatorEntries); } } } diff --git a/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs b/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs index 20db0a8b66..e7609f6afb 100644 --- a/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs +++ b/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs @@ -15,14 +15,14 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.Collections.ObjectModel; +using System.Collections.Generic; using Remotion.ServiceLocation; namespace Remotion.UnitTests.Configuration.ServiceLocation { public class FakeServiceLocatorProvider : IServiceLocatorProvider { - public IServiceLocator GetServiceLocator (ReadOnlyCollection bootstrapConfiguration) + public IServiceLocator GetServiceLocator (IReadOnlyCollection bootstrapConfiguration) { throw new NotImplementedException(); } diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs index 4729378374..6a782e79a2 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs @@ -15,7 +15,9 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.Linq; using NUnit.Framework; +using Remotion.Logging; using Remotion.ServiceLocation; namespace Remotion.UnitTests.ServiceLocation @@ -32,58 +34,47 @@ public void SetUp () } [Test] - public void Register_ServiceConfigurationEntry_AddsEntryToRegistrations_AndToBootstrapLocator () + public void Register_ServiceConfigurationEntry_AddsEntryToRegistrations () { var entry = new ServiceConfigurationEntry(typeof(IService), new ServiceImplementationInfo(typeof(Service), LifetimeKind.Singleton)); _configuration.Register(entry); - Assert.That(_configuration.Registrations, Is.EqualTo(new[] { entry })); - Assert.That(_configuration.BootstrapServiceLocator.GetInstance(), Is.Not.Null.And.TypeOf()); + Assert.That(_configuration.GetRegistrations(), Has.Member(entry)); } [Test] - public void Register_ServiceConfigurationEntry_IfLocatorThrows_NoRegistrationIsAdded () + public void Register_ServiceConfigurationEntry_OverridesExistingEntry () { - // This causes the association between IServiceWithAttribute and ServiceWithAttribute1 to be stored in the BootstrapServiceLocator, so it will - // later throw on Register. - _configuration.BootstrapServiceLocator.GetInstance(); + var entry1 = new ServiceConfigurationEntry(typeof(IService), new ServiceImplementationInfo(typeof(Service), LifetimeKind.Singleton)); + _configuration.Register(entry1); - var entry = new ServiceConfigurationEntry( - typeof(IServiceWithAttribute), - new ServiceImplementationInfo(typeof(ServiceWithAttribute2), LifetimeKind.Singleton)); - Assert.That(() => _configuration.Register(entry), Throws.InvalidOperationException); + var entry2 = new ServiceConfigurationEntry(typeof(IService), new ServiceImplementationInfo(typeof(Service), LifetimeKind.Singleton)); + _configuration.Register(entry2); - Assert.That(_configuration.Registrations, Is.Empty); - Assert.That(_configuration.BootstrapServiceLocator.GetInstance(), Is.Not.Null.And.TypeOf()); + Assert.That(_configuration.GetRegistrations(), Has.Member(entry2).And.Not.Member(entry1)); } [Test] - public void Register_Types_AddsEntry () + public void GetRegistrations_HasDefaultRegistrations () { - _configuration.Register(typeof(IService), typeof(Service), LifetimeKind.InstancePerDependency); - - Assert.That(_configuration.Registrations, Has.Length.EqualTo(1)); - Assert.That(_configuration.Registrations[0].ServiceType, Is.SameAs(typeof(IService))); - - Assert.That(_configuration.Registrations[0].ImplementationInfos.Count, Is.EqualTo(1)); - Assert.That(_configuration.Registrations[0].ImplementationInfos[0].ImplementationType, Is.EqualTo(typeof(Service))); - Assert.That(_configuration.Registrations[0].ImplementationInfos[0].Lifetime, Is.EqualTo(LifetimeKind.InstancePerDependency)); - - Assert.That(_configuration.BootstrapServiceLocator.GetInstance(), Is.Not.Null.And.TypeOf()); + var serviceConfigurationEntries = _configuration.GetRegistrations(); + Assert.That( + serviceConfigurationEntries.Select(e => e.ServiceType), + Is.EquivalentTo(new[] { typeof(ILogManager) })); + Assert.That( + serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.ImplementationType)), + Is.EquivalentTo(new[] { typeof(Log4NetLogManager) })); + Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.Lifetime)), Has.All.EqualTo(LifetimeKind.Singleton)); } [Test] - public void Reset () + public void GetRegistrations_AllowsOverridingDefaultRegistrations () { - _configuration.Register(typeof(IService), typeof(Service), LifetimeKind.InstancePerDependency); - - Assert.That(_configuration.Registrations, Is.Not.Empty); - Assert.That(_configuration.BootstrapServiceLocator.GetInstance(), Is.Not.Null.And.TypeOf()); - - _configuration.Reset(); + var entry = new ServiceConfigurationEntry(typeof(ILogManager), new ServiceImplementationInfo(typeof(FakeLogManager), LifetimeKind.Singleton)); + _configuration.Register(entry); - Assert.That(_configuration.Registrations, Is.Empty); - Assert.That(() => _configuration.BootstrapServiceLocator.GetInstance(), Throws.TypeOf()); + var serviceConfigurationEntries = _configuration.GetRegistrations(); + Assert.That(serviceConfigurationEntries.SingleOrDefault(e => e.ServiceType == typeof(ILogManager)), Is.EqualTo(entry)); } public interface IService { } @@ -101,5 +92,18 @@ public class ServiceWithAttribute1 : IServiceWithAttribute public class ServiceWithAttribute2 : IServiceWithAttribute { } + + public class FakeLogManager : ILogManager + { + ILog ILogManager.GetLogger (string name) => throw new NotImplementedException(); + + ILog ILogManager.GetLogger (Type type) => throw new NotImplementedException(); + + void ILogManager.Initialize () => throw new NotImplementedException(); + + void ILogManager.InitializeConsole () => throw new NotImplementedException(); + + void ILogManager.InitializeConsole (LogLevel defaultThreshold, params LogThreshold[] logThresholds) => throw new NotImplementedException(); + } } } diff --git a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs index 9a9eb2e2d3..a65bcd362f 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs @@ -15,12 +15,14 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.Collections.ObjectModel; +using System.Collections.Generic; using Moq; using NUnit.Framework; using Remotion.Configuration.ServiceLocation; using Remotion.Development.UnitTesting; +using Remotion.Logging; using Remotion.ServiceLocation; +using Remotion.Utilities; namespace Remotion.UnitTests.ServiceLocation { @@ -35,6 +37,7 @@ public void OneTimeSetUp () { _serviceLocatorProviderBackup = (ServiceLocatorProvider)PrivateInvoke.GetNonPublicStaticField(typeof(ServiceLocator), "_currentProvider"); PrivateInvoke.SetNonPublicStaticField(typeof(ServiceLocator), "_currentProvider", null); + ResetSafeServiceLocator(); } [OneTimeTearDown] @@ -48,16 +51,13 @@ public void SetUp () { _previousConfiguration = ServiceLocationConfiguration.Current; ServiceLocationConfiguration.SetCurrent(null); - ResetDefaultServiceLocator(); - SafeServiceLocator.BootstrapConfiguration.Reset(); } [TearDown] public void TearDown () { ServiceLocationConfiguration.SetCurrent(_previousConfiguration); - ResetDefaultServiceLocator(); - SafeServiceLocator.BootstrapConfiguration.Reset(); + ResetSafeServiceLocator(); } [Test] @@ -96,7 +96,7 @@ public void GetCurrent_WithoutLocatorProvider_ReturnsConfiguredServiceLocator () var serviceLocatorProviderStub = new Mock(); var fakeServiceLocator = new Mock(); serviceLocatorProviderStub - .Setup(stub => stub.GetServiceLocator(It.IsAny>())) + .Setup(stub => stub.GetServiceLocator(It.IsAny>())) .Returns(fakeServiceLocator.Object); ConfigureServiceLocatorProvider(serviceLocatorProviderStub.Object); @@ -116,22 +116,26 @@ public void GetCurrent_WithoutLocatorProvider_ReturnsConfiguredServiceLocator_Wi typeof(IService2), new ServiceImplementationInfo(typeof(Service2), LifetimeKind.InstancePerDependency)); - SafeServiceLocator.BootstrapConfiguration.Register(entry1); - SafeServiceLocator.BootstrapConfiguration.Register(entry2); - - var serviceLocatorProviderMock = new Mock(MockBehavior.Strict); + var serviceLocatorProviderMock = new Mock(MockBehavior.Loose); var fakeServiceLocator = new Mock(); + IReadOnlyCollection bootstrapConfigurationParameter = null; serviceLocatorProviderMock - .Setup(mock => mock.GetServiceLocator(new ReadOnlyCollection(new[] { entry1, entry2 }))) + .Setup(mock => mock.GetServiceLocator(It.IsNotNull>())) .Returns(fakeServiceLocator.Object) + .Callback((IReadOnlyCollection bootstrapConfiguration) => bootstrapConfigurationParameter = bootstrapConfiguration) .Verifiable(); ConfigureServiceLocatorProvider(serviceLocatorProviderMock.Object); + SafeServiceLocator.BootstrapConfiguration.Register(entry1); + SafeServiceLocator.BootstrapConfiguration.Register(entry2); + var result = SafeServiceLocator.Current; serviceLocatorProviderMock.Verify(); Assert.That(result, Is.SameAs(fakeServiceLocator.Object)); + Assert.That(bootstrapConfigurationParameter, Is.Not.Null); + Assert.That(bootstrapConfigurationParameter, Has.Member(entry1).And.Member(entry2)); } [Test] @@ -159,7 +163,7 @@ public void GetCurrent_WithLocatorProviderReturningNull_ReturnsConfiguredService var serviceLocatorProviderStub = new Mock(); var fakeServiceLocator = new Mock(); serviceLocatorProviderStub - .Setup(stub => stub.GetServiceLocator(It.IsAny>())) + .Setup(stub => stub.GetServiceLocator(It.IsAny>())) .Returns(fakeServiceLocator.Object); ConfigureServiceLocatorProvider(serviceLocatorProviderStub.Object); @@ -183,7 +187,10 @@ public void GetCurrent_WithInvalidServiceLocationConfiguration () var exception = new Exception(); var serviceLocatorProvider = new Mock(); - serviceLocatorProvider.Setup(mock => mock.GetServiceLocator(It.IsAny>())).Throws(exception).Verifiable(); + serviceLocatorProvider + .Setup(mock => mock.GetServiceLocator(It.IsAny>())) + .Throws(exception) + .Verifiable(); ConfigureServiceLocatorProvider(serviceLocatorProvider.Object); @@ -196,15 +203,9 @@ public void GetCurrent_ProvidesAccessToBootstrapLocator_WhileConfiguredLocatorIs var serviceLocatorProvider = new Mock(); var fakeServiceLocator = new Mock(); serviceLocatorProvider - .Setup(stub => stub.GetServiceLocator(It.IsAny>())) + .Setup(stub => stub.GetServiceLocator(It.IsAny>())) .Returns(fakeServiceLocator.Object) - .Callback( - (ReadOnlyCollection bootstrapConfiguration) => - { - Assert.That( - SafeServiceLocator.Current, - Is.Not.Null.And.SameAs(((BootstrapServiceConfiguration)SafeServiceLocator.BootstrapConfiguration).BootstrapServiceLocator)); - }); + .Callback((IReadOnlyCollection bootstrapConfiguration) => Assert.That(SafeServiceLocator.Current, Is.Not.Null)); ConfigureServiceLocatorProvider(serviceLocatorProvider.Object); @@ -214,29 +215,88 @@ public void GetCurrent_ProvidesAccessToBootstrapLocator_WhileConfiguredLocatorIs } [Test] - public void DefaultConfiguration_IntegrationTest () + public void DefaultConfiguration_IntegrationTest_CreatesDefaultServiceLocator () { - SafeServiceLocator.BootstrapConfiguration.Register(typeof(IService1), typeof(Service1), LifetimeKind.InstancePerDependency); - Assert.That(SafeServiceLocator.Current, Is.TypeOf()); - Assert.That(SafeServiceLocator.Current.GetInstance(), Is.Not.Null.And.TypeOf()); + } + + [Test] + public void DefaultConfiguration_IntegrationTest_WithManualRegistration () + { + SafeServiceLocator.BootstrapConfiguration.Register(typeof(IService1), typeof(Service1)); + Assert.That(SafeServiceLocator.Current.GetInstance(), Is.Not.Null.And.TypeOf()); + } + + [Test] + public void DefaultConfiguration_IntegrationTest_WithAttributeBasedRegistration () + { + Assert.That(SafeServiceLocator.Current.GetInstance(), Is.Not.Null.And.TypeOf()); + } + + [Test] + public void DefaultConfiguration_IntegrationTest_WithoutRegistrationRegistration () + { Assert.That(() => SafeServiceLocator.Current.GetInstance(), Throws.TypeOf()); } + [Test] + public void DefaultConfiguration_IntegrationTest_WithDependency () + { + SafeServiceLocator.BootstrapConfiguration.Register(typeof(IServiceWithDependency), typeof(ServiceWithDependency)); + + var serviceWithDependency = SafeServiceLocator.Current.GetInstance(); + var logManager = SafeServiceLocator.Current.GetInstance(); + Assert.That(serviceWithDependency, Is.Not.Null.And.TypeOf()); + Assert.That(((ServiceWithDependency)serviceWithDependency).LogManager, Is.SameAs(logManager)); + } + + [Test] + public void DefaultConfiguration_IntegrationTest_PreservesBootstrappedSingletons () + { + var serviceLocator1 = SafeServiceLocator.Current; + var logManagerInServiceLocator1 = serviceLocator1.GetInstance(); + Assert.That(serviceLocator1, Is.TypeOf()); + + ServiceLocator.SetLocatorProvider(null); + ResetSafeServiceLocator(resetBootstrapConfiguration: false, resetDefaultServiceLocator: true); + + var serviceLocator2 = SafeServiceLocator.Current; + var logManagerInServiceLocator2 = serviceLocator2.GetInstance(); + Assert.That(serviceLocator2, Is.Not.SameAs(serviceLocator1)); + Assert.That(logManagerInServiceLocator2, Is.SameAs(logManagerInServiceLocator1)); + } + + [Test] + public void DefaultConfiguration_IntegrationTest_ILogManager () + { + Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); + } + private void ConfigureServiceLocatorProvider (IServiceLocatorProvider serviceLocatorProvider) { var serviceLocationConfiguration = new Mock(); serviceLocationConfiguration.Setup(stub => stub.CreateServiceLocatorProvider()).Returns(serviceLocatorProvider); ServiceLocationConfiguration.SetCurrent(serviceLocationConfiguration.Object); - ResetDefaultServiceLocator(); + ResetSafeServiceLocator(); } - private void ResetDefaultServiceLocator () + private void ResetSafeServiceLocator (bool resetBootstrapConfiguration = true, bool resetDefaultServiceLocator = true) { - var defaultServiceLocatorContainer = - (DoubleCheckedLockingContainer)PrivateInvoke.GetNonPublicStaticField(typeof(SafeServiceLocator), "s_defaultServiceLocator"); - defaultServiceLocatorContainer.Value = null; + var fields = PrivateInvoke.GetNonPublicStaticField(typeof(SafeServiceLocator), "s_fields"); + Assertion.IsNotNull(fields); + + if (resetBootstrapConfiguration) + { + PrivateInvoke.SetPublicField(fields, "BootstrapConfiguration", new BootstrapServiceConfiguration()); + } + + if (resetDefaultServiceLocator) + { + var defaultServiceLocatorContainer = (DoubleCheckedLockingContainer)PrivateInvoke.GetPublicField(fields, "DefaultServiceLocator"); + Assertion.IsNotNull(defaultServiceLocatorContainer); + defaultServiceLocatorContainer.Value = null; + } } interface IService1 { } @@ -248,5 +308,17 @@ class Service2 : IService2 { } interface IServiceWithAttribute { } [ImplementationFor(typeof(IServiceWithAttribute))] class ServiceWithAttribute : IServiceWithAttribute { } + + interface IServiceWithDependency { } + + class ServiceWithDependency : IServiceWithDependency + { + public ILogManager LogManager { get; } + + public ServiceWithDependency (ILogManager logManager) + { + LogManager = logManager; + } + } } } From 1703b86d61247ece58ba4d40c9db98c8c3bf4e4f Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Mon, 4 Dec 2023 10:31:53 +0100 Subject: [PATCH 04/11] RM-5931 Update DefaultServiceLocator.Create() method to add bootstrapped services. --- ...ultServiceConfigurationDiscoveryService.cs | 3 ++- .../ServiceLocation/DefaultServiceLocator.cs | 17 +++++++++++--- .../DefaultServiceLocatorProvider.cs | 4 +++- .../ExtensibleEnumDefinitionCacheTest.cs | 2 +- ...ExtensibleEnumValueDiscoveryServiceTest.cs | 2 +- .../ITypeConverterFactoryTest.cs | 2 +- .../Reflection/IDelegateFactoryTest.cs | 2 +- .../CachePerformanceTest.cs | 2 +- .../IPipelineFactoryTest.cs | 2 +- .../IPipelineRegistryTest.cs | 2 +- .../IPipelineSettingsProviderTest.cs | 2 +- .../IMemberInfoNameResolverTest.cs | 2 +- .../ISafeContextStorageProviderTest.cs | 2 +- .../SafeContextTests/SafeContextTestBase.cs | 2 +- .../Core/UnitTests/Logging/ILogManagerTest.cs | 2 +- ...erviceConfigurationDiscoveryServiceTest.cs | 4 +++- .../DefaultServiceLocatorTest.cs | 2 +- .../IMemberInformationNameResolverTest.cs | 2 +- .../ServiceLocation/ServiceLocatorTests.cs | 9 +++++++- .../Utilities/IAppContextProviderTest.cs | 2 +- .../Utilities/ITypeConversionProviderTest.cs | 2 +- .../Utilities/ITypeConverterFactoryTest.cs | 2 +- .../IBindablePropertReadAccessStrategyTest.cs | 2 +- ...BindablePropertyWriteAccessStrategyTest.cs | 2 +- .../SecurityIntegrationTest.cs | 2 +- .../SetUpFixture.cs | 2 +- .../GetDisplayNameTest.cs | 2 +- .../IBindablePropertReadAccessStrategyTest.cs | 2 +- ...BindablePropertyWriteAccessStrategyTest.cs | 2 +- .../SetUpFixture.cs | 2 +- .../BindableObjectWithSecurityTest.cs | 2 +- .../BindableObjectWithoutSecurityTest.cs | 2 +- .../PropertyTest.cs | 2 +- .../StandardConfiguration.cs | 2 +- .../RdbmsToolsRunner.cs | 2 +- ...ientTransactionExtensionIntegrationTest.cs | 2 +- .../TestHelper.cs | 2 +- .../SetupFixture.cs | 2 +- .../EntityFrameworkIntegrationTest.cs | 2 +- .../LinqToSqlIntegrationTest.cs | 2 +- .../SetUpFixture.cs | 2 +- .../IClientTransactionExtensionFactoryTest.cs | 2 +- .../IDomainModelConstraintProviderTest.cs | 2 +- .../IInterceptedPropertyFinderTest.cs | 2 +- .../TypePipe/ITypeDefinitionProviderTest.cs | 2 +- .../EagerFetching/EagerFetchingTest.cs | 2 +- .../CustomQueryDatabaseBehaviorTest.cs | 2 +- .../ParticipantRegistrationTest.cs | 11 +++++----- .../Mapping/IClassIDProviderTest.cs | 2 +- .../Mapping/IMappingConfigurationTest.cs | 2 +- .../Mapping/IMappingLoaderTest.cs | 2 +- .../Mapping/IPersistenceModelLoader.cs | 2 +- .../IPropertyDefaultValueProviderTest.cs | 2 +- .../Mapping/IPropertyMetadataProviderTest.cs | 2 +- .../Mapping/ISortExpressionProviderTest.cs | 2 +- .../IStorageObjectFactoryFactoryTest.cs | 2 +- .../IStorageSettingsFactoryResolverTest.cs | 2 +- .../IStorageSettingsFactoryTest.cs | 2 +- .../Configuration/IStorageSettingsTest.cs | 2 +- .../StorageObjectFactoryFactoryTest.cs | 4 ++-- .../StorageSettingsFactoryResolverTest.cs | 4 ++-- .../Persistence/IPersistenceModelTest.cs | 2 +- .../CustomStorageObjectFactoryTestBase.cs | 2 +- .../IQueryDefinitionRepositoryTest.cs | 2 +- .../Loader/IQueryDefinitionLoaderTest.cs | 2 +- .../Loader/IQueryFileFinderTest.cs | 2 +- .../Queries/QueryFactoryTest.cs | 8 +++---- .../Serialization/QueriesTest.cs | 8 +++---- .../DomainObjects.UnitTests/SetupFixture.cs | 2 +- .../IPersistenceExtensionFactoryTest.cs | 2 +- .../IClientTransactionExtensionFactoryTest.cs | 2 +- .../Validation/IDataContainerValidatorTest.cs | 2 +- .../IPersistableDataValidatorTest.cs | 2 +- .../IntegrationTestBase.cs | 2 +- .../SetupFixture.cs | 2 +- .../IClientTransactionExtensionFactoryTest.cs | 2 +- .../IValidationRuleCollectorProviderTest.cs | 2 +- .../SetupFixture.cs | 2 +- .../SetUpFixture.cs | 2 +- .../SecuredFunctionTestBase.cs | 2 +- .../DomainObjects.Web.Test/Global.asax.cs | 2 +- .../Core/UnitTesting/ServiceLocatorScope.cs | 15 ------------- .../UnitTesting/ServiceLocatorScopeTest.cs | 22 ------------------- ...IExtensibleEnumGlobalizationServiceTest.cs | 2 +- .../IGlobalizationServiceTest.cs | 2 +- .../IEnumerationGlobalizationServiceTest.cs | 2 +- .../UnitTests/IGlobalizationServiceTest.cs | 2 +- ...mberInformationGlobalizationServiceTest.cs | 2 +- .../IResourceManagerFactoryTest.cs | 2 +- .../IResourceManagerResolverTest.cs | 2 +- .../UnitTests/DynamicMixinBuilderTest.cs | 2 +- .../IObjectFactoryImplementationTest.cs | 2 +- .../ITypeFactoryImplementationTest.cs | 2 +- .../LoadingFlushedCodeTest.cs | 2 +- .../ParticipantRegistrationTest.cs | 7 +++--- .../Core/CodeGeneration/SetUpFixture.cs | 2 +- .../IConcreteTypeMetadataImporterTest.cs | 2 +- .../TypePipe/IConfigurationProviderTest.cs | 2 +- .../TypePipe/IMixinTypeProviderTest.cs | 2 +- .../TypePipe/INextCallProxyGeneratorTest.cs | 2 +- .../TypePipe/ITargetTypeModifierTest.cs | 2 +- .../ITargetClassDefinitionBuilderTest.cs | 2 +- .../IMixinDefinitionSorterTest.cs | 2 +- .../IBindablePropertReadAccessStrategyTest.cs | 2 +- ...BindablePropertyWriteAccessStrategyTest.cs | 2 +- .../BindableObject/IntegrationTest.cs | 2 +- ...dBindablePropertyReadAccessStrategyTest.cs | 2 +- ...BindablePropertyWriteAccessStrategyTest.cs | 2 +- ...jectGlobalizationServiceIntegrationTest.cs | 2 +- .../BindableObjectGlobalizationServiceTest.cs | 2 +- .../IBindablePropertReadAccessStrategyTest.cs | 2 +- ...BindablePropertyWriteAccessStrategyTest.cs | 2 +- ...essObjectPropertyConstraintProviderTest.cs | 2 +- ...essObjectPropertyConstraintProviderTest.cs | 2 +- ...ssObjectPropertyConstraintConverterTest.cs | 2 +- ...bleWebControlValidatorConfigurationTest.cs | 2 +- .../Global.asax.cs | 2 +- .../Global.asax.cs | 2 +- .../ObjectBinding/Web.Test/Global.asax.cs | 2 +- .../Web.UnitTests/SetUpFixture.cs | 2 +- .../Rendering/IBocBooleanValueRendererTest.cs | 2 +- .../IBocBooleanValueResourceSetFactoryTest.cs | 2 +- .../IBocCheckBoxRendererFactoryTest.cs | 2 +- .../IBocBooleanValueValidatorFactoryTest.cs | 2 +- .../IBocCheckBoxValidatorFactoryTest.cs | 2 +- .../IDateTimeFormatterTest.cs | 2 +- .../IBocDateTimeValueRendererTest.cs | 2 +- .../IBocDateTimeValueValidatorFactoryTest.cs | 2 +- .../Rendering/IBocEnumValueRendererTest.cs | 2 +- .../IBocEnumValueValidatorFactoryTest.cs | 2 +- .../BocColumnRendererArrayBuilderTest.cs | 2 +- .../Rendering/BocColumnRendererBaseTest.cs | 2 +- .../BocListCssClassDefinitionTest.cs | 2 +- .../IBocCommandColumnRendererTest.cs | 2 +- .../IBocCompoundColumnRendererTest.cs | 2 +- .../Rendering/IBocCustomColumnRendererTest.cs | 2 +- .../IBocDropDownMenuColumnRendererTest.cs | 2 +- .../Rendering/IBocIndexColumnRendererTest.cs | 2 +- .../IBocListMenuBlockRendererTest.cs | 2 +- .../IBocListNavigationBlockRendererTest.cs | 2 +- .../Rendering/IBocListRendererTest.cs | 2 +- .../IBocListTableBlockRendererTest.cs | 2 +- .../IBocRowEditModeColumnRendererTest.cs | 2 +- .../Rendering/IBocRowRendererTest.cs | 2 +- .../IBocSelectorColumnRendererTest.cs | 2 +- .../Rendering/IBocSimpleColumnRendererTest.cs | 2 +- ...sible_BocColumnRendererArrayBuilderTest.cs | 2 +- .../IBocListValidatorFactoryTest.cs | 2 +- ...cAutoCompleteReferenceValueRendererTest.cs | 2 +- .../IBocReferenceValueRendererTest.cs | 2 +- ...pleteReferenceValueValidatorFactoryTest.cs | 2 +- .../IBocReferenceValueValidatorFactoryTest.cs | 2 +- .../IBocMultilineTextValueRendererTest.cs | 2 +- .../Rendering/IBocTextValueRendererTest.cs | 2 +- ...cMultilineTextValueValidatorFactoryTest.cs | 2 +- .../IBocTextValueValidatorFactoryTest.cs | 2 +- ...ceDataSourceControlValidatorFactoryTest.cs | 2 +- ...IUserControlBindingValidatorFactoryTest.cs | 2 +- .../ValidationBocListValidatorFactoryTest.cs | 2 +- ...ReferenceDataSourceValidatorFactoryTest.cs | 2 +- ...dEditableWebControlValidatorFactoryTest.cs | 2 +- ...nUserControlBindingValidatorFactoryTest.cs | 2 +- .../IBocListValidationFailureHandlerTest.cs | 2 +- ...bleWebControlValidatorConfigurationTest.cs | 2 +- .../IFunctionalSecurityStrategyTest.cs | 2 +- .../UnitTests/IPrincipalProviderTest.cs | 2 +- .../UnitTests/ISecurityProviderTest.cs | 2 +- .../UnitTests/Metadata/IMemberResolverTest.cs | 2 +- .../Metadata/IPermissionProviderTest.cs | 2 +- .../CreateSecurityClientFromConfiguration.cs | 2 +- .../IValidationMessageFactoryTest.cs | 2 +- .../IntegrationTests/IntegrationTestBase.cs | 2 +- .../IntegrationTestBase.cs | 2 +- .../IInvolvedTypeProviderTest.cs | 2 +- .../IValidatedTypeResolverTest.cs | 2 +- .../IValidationRuleCollectorValidatorTest.cs | 2 +- .../IValidationTypeFilterTest.cs | 2 +- .../IValidationRuleCollectorProviderTest.cs | 2 +- .../UnitTests/IValidatorProviderTest.cs | 2 +- .../IInvolvedTypeProviderTest.cs | 2 +- .../IValidatedTypeResolverTest.cs | 2 +- .../IValidationMessageFactoryTest.cs | 2 +- .../IValidationRuleCollectorReflectorTest.cs | 2 +- .../IValidationRuleCollectorValidatorTest.cs | 2 +- .../IValidationTypeFilterTest.cs | 2 +- .../Implementation/IValidatorBuilderTest.cs | 2 +- .../Implementation/IValidatorFormatterTest.cs | 2 +- ...idatorBuilderSerializationDecoratorTest.cs | 2 +- .../IObjectValidatorExtractorFactoryTest.cs | 2 +- .../IPropertyValidatorExtractorFactoryTest.cs | 2 +- .../IValidationRuleCollectorMergerTest.cs | 2 +- ...tMetaValidationRuleValidatorFactoryTest.cs | 2 +- ...yMetaValidationRuleValidatorFactoryTest.cs | 2 +- ...tyMetaValidationRuleProviderFactoryTest.cs | 2 +- .../IValidationRuleCollectorProviderTest.cs | 2 +- .../Global.asax.cs | 2 +- .../Global.asax.cs | 2 +- Remotion/Web/Test.NetFramework/Global.asax.cs | 2 +- Remotion/Web/Test/Global.asax.cs | 2 +- .../IControlBuilderCodeProcessorTest.cs | 2 +- .../ISafeContextStorageProviderTest.cs | 2 +- .../IWxeLifetimeManagementSettingsTest.cs | 2 +- .../UrlMapping/IUrlMappingFileFinderTest.cs | 2 +- .../UrlMapping/IUrlMappingFileLoader.cs | 2 +- .../UrlMapping/UrlMappingConfigurationTest.cs | 2 +- .../Core/ExecutionEngine/WxeContextTest.cs | 2 +- .../WxeFunctionTests/Security.cs | 4 ++-- .../ExecutionEngine/WxeUrlSettingsTest.cs | 2 +- .../UnitTests/Core/IResourceUrlFactoryTest.cs | 2 +- .../Core/Infrastructure/IBuildManagerTest.cs | 2 +- .../IHttpContextProviderTest.cs | 2 +- .../IInfrastructureResourceUrlFactoryTest.cs | 2 +- .../ICacheableResourcePathBuilderTest.cs | 2 +- .../Resources/IResourcePathBuilderTest.cs | 2 +- .../IStaticResourceCacheKeyProviderTest.cs | 2 +- .../Core/Resources/ResourceRootTest.cs | 4 ++-- .../IWxeSecurityAdapterTest.cs | 2 +- ...apterTestWithPermissionsFromConstructor.cs | 2 +- ...erTestWithPermissionsFromInstanceMethod.cs | 2 +- ...pterTestWithPermissionsFromStaticMethod.cs | 2 +- ...tyAdapterTestWithoutPermissionAttribute.cs | 2 +- .../Core/Security/IPrincipalProviderTest.cs | 2 +- .../Security/UI/IWebSecurityAdapterTest.cs | 2 +- .../PermissionFromSecurableObjectTest.cs | 2 +- .../PermissionFromWxeFunctionTest.cs | 2 +- .../Core/Services/IWebServiceFactoryTest.cs | 2 +- Remotion/Web/UnitTests/Core/SetUpFixture.cs | 2 +- .../Rendering/IDatePickerPageRendererTest.cs | 2 +- .../Rendering/IDropDownMenuRendererTest.cs | 2 +- .../Controls/Hotkey/IHotkeyFormatterTest.cs | 2 +- .../IHtmlHeadContentsRendererTest.cs | 2 +- .../UI/Controls/IClientScriptBehaviorTest.cs | 2 +- .../IFallbackNavigationUrlProviderTest.cs | 2 +- .../Rendering/IListMenuRendererTest.cs | 2 +- .../Rendering/ListMenuRendererTest.cs | 2 +- .../MenuTabTests/SecurityTestWithVisible.cs | 2 +- .../Core/UI/Controls/NavigationCommandTest.cs | 2 +- .../Rendering/ILabelReferenceRendererTest.cs | 2 +- .../IValidationErrorsRendererTest.cs | 2 +- .../Rendering/ISingleViewRendererTest.cs | 2 +- .../Rendering/IMenuTabRendererTest.cs | 2 +- .../Rendering/ITabbedMenuRendererTest.cs | 2 +- .../Rendering/ITabbedMultiViewRendererTest.cs | 2 +- .../IWebButtonRendererTest.cs | 2 +- .../WebButtonTests/SecurityTestWithEnabled.cs | 6 ++--- .../WebButtonTests/SecurityTestWithVisible.cs | 6 ++--- .../WebButtonDiagnosticMetadataTest.cs | 2 +- .../SecurityTestWithVisible.cs | 2 +- .../Rendering/IWebTabRendererTest.cs | 2 +- .../Rendering/IWebTabStripRendererTest.cs | 2 +- .../IWebTreeViewRendererTest.cs | 2 +- .../IInternalControlMemberCallerTest.cs | 2 +- .../Core/Utilities/IScriptUtilityTest.cs | 2 +- .../Clients.Web.Test/Global.asax.cs | 2 +- .../IAccessControlListFinderTest.cs | 2 +- .../AccessEvaluation/IAccessResolverTest.cs | 2 +- .../ISecurityContextRepositoryTest.cs | 2 +- .../ISecurityPrincipalRepositoryTest.cs | 2 +- .../ISecurityTokenBuilderTest.cs | 2 +- .../IAccessControlSettingsTest.cs | 2 +- .../Domain/IDomainRevisionProviderTest.cs | 2 +- .../Domain/IPrincipalProviderTest.cs | 2 +- .../ISecurityManagerPrincipalFactoryTest.cs | 2 +- .../Domain/IUserNamesRevisionProviderTest.cs | 2 +- .../Domain/IUserRevisionProviderTest.cs | 2 +- .../GroupTests/GetHierarchy.cs | 4 ++-- .../GroupTests/GetParents.cs | 4 ++-- .../IOrganizationalStructureFactoryTest.cs | 2 +- .../TenantTests/GetHierachy.cs | 4 ++-- .../TenantTests/GetParents.cs | 4 ++-- .../UserTests/GetActiveSubstitutions.cs | 2 +- .../SearchPositionWithSecurityChecks.cs | 2 +- .../SecurityManagerPrincipalTests/Common.cs | 2 +- .../GetTenants.cs | 2 +- .../SecurityProvider/ISecurityProviderTest.cs | 2 +- .../SecurityProvider/SecurityServiceTest.cs | 2 +- .../Core.UnitTests/SetUpFixture.cs | 2 +- .../Expansion/AclExpanderApplication.cs | 2 +- SecurityManager/Metadata.Importer/Program.cs | 2 +- SecurityManager/PerformanceTests/Program.cs | 2 +- 280 files changed, 329 insertions(+), 341 deletions(-) diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceConfigurationDiscoveryService.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceConfigurationDiscoveryService.cs index eb3f8fb1a1..a739d9808a 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceConfigurationDiscoveryService.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceConfigurationDiscoveryService.cs @@ -50,9 +50,10 @@ public class DefaultServiceConfigurationDiscoveryService : IServiceConfiguration private readonly bool _excludeGlobalTypesForDefaultConfiguration = !AssemblyTypeCache.IsGacAssembly(typeof(ImplementationForAttribute).Assembly); + [Obsolete("Use the constructor instead, and pass ContextAwareTypeUtility.GetTypeDiscoveryService() as parameter. (Version 6.0.0)", true)] public static DefaultServiceConfigurationDiscoveryService Create () { - return new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); + throw new NotSupportedException("Use the constructor instead, and pass ContextAwareTypeUtility.GetTypeDiscoveryService() as parameter. (Version 6.0.0)"); } public DefaultServiceConfigurationDiscoveryService (ITypeDiscoveryService typeDiscoveryService) diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs index ed00076fdf..43b277dd41 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs @@ -18,6 +18,8 @@ using System.Collections.Generic; using System.Linq; using Remotion.Logging; +using Remotion.Reflection; +using Remotion.Reflection.TypeDiscovery; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -61,13 +63,22 @@ namespace Remotion.ServiceLocation /// public sealed partial class DefaultServiceLocator : IServiceLocator { - private readonly IServiceConfigurationDiscoveryService _serviceConfigurationDiscoveryService; + [Obsolete("Use DefaultServiceLocator.CreateWithBootstrappedServices() instead. (Version 6.0.0)")] + public static DefaultServiceLocator Create () => CreateWithBootstrappedServices(); - public static DefaultServiceLocator Create () + public static DefaultServiceLocator CreateWithBootstrappedServices () { - return new DefaultServiceLocator(DefaultServiceConfigurationDiscoveryService.Create()); + var defaultServiceLocator = new DefaultServiceLocator(new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService())); + + var bootstrapServiceLocatorEntries = SafeServiceLocator.BootstrapConfiguration.GetRegistrations(); + foreach (var serviceConfigurationEntry in bootstrapServiceLocatorEntries) + defaultServiceLocator.Register(serviceConfigurationEntry); + + return defaultServiceLocator; } + private readonly IServiceConfigurationDiscoveryService _serviceConfigurationDiscoveryService; + public DefaultServiceLocator (IServiceConfigurationDiscoveryService serviceConfigurationDiscoveryService) { ArgumentUtility.CheckNotNull("serviceConfigurationDiscoveryService", serviceConfigurationDiscoveryService); diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs index ff245c0700..a698b045be 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs @@ -16,6 +16,7 @@ // using System; using System.Collections.Generic; +using Remotion.Reflection; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -33,7 +34,8 @@ public IServiceLocator GetServiceLocator (IReadOnlyCollection storageSettingsFactory); diff --git a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineFactoryTest.cs b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineFactoryTest.cs index 8bfb3ca8b4..22bfd893f6 100644 --- a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineFactoryTest.cs +++ b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineFactoryTest.cs @@ -29,7 +29,7 @@ public class IPipelineFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineRegistryTest.cs b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineRegistryTest.cs index 5b4eaa52a0..ed2ca2c589 100644 --- a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineRegistryTest.cs +++ b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineRegistryTest.cs @@ -29,7 +29,7 @@ public class IPipelineRegistryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineSettingsProviderTest.cs b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineSettingsProviderTest.cs index f9087ca7f5..8fada081fa 100644 --- a/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineSettingsProviderTest.cs +++ b/Remotion/Core/Reflection.CodeGeneration.TypePipe.UnitTests/IPipelineSettingsProviderTest.cs @@ -28,7 +28,7 @@ public class IPipelineSettingsProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/Reflection.UnitTests/IMemberInfoNameResolverTest.cs b/Remotion/Core/Reflection.UnitTests/IMemberInfoNameResolverTest.cs index 304fbaa1de..709ffc6523 100644 --- a/Remotion/Core/Reflection.UnitTests/IMemberInfoNameResolverTest.cs +++ b/Remotion/Core/Reflection.UnitTests/IMemberInfoNameResolverTest.cs @@ -28,7 +28,7 @@ public class IMemberInfoNameResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/Context/ISafeContextStorageProviderTest.cs b/Remotion/Core/UnitTests/Context/ISafeContextStorageProviderTest.cs index 3c403e1015..0f38b91293 100644 --- a/Remotion/Core/UnitTests/Context/ISafeContextStorageProviderTest.cs +++ b/Remotion/Core/UnitTests/Context/ISafeContextStorageProviderTest.cs @@ -28,7 +28,7 @@ public class ISafeContextStorageProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/Context/SafeContextTests/SafeContextTestBase.cs b/Remotion/Core/UnitTests/Context/SafeContextTests/SafeContextTestBase.cs index f91ed1412c..c559910e75 100644 --- a/Remotion/Core/UnitTests/Context/SafeContextTests/SafeContextTestBase.cs +++ b/Remotion/Core/UnitTests/Context/SafeContextTests/SafeContextTestBase.cs @@ -46,7 +46,7 @@ public void TearDown () protected static IDisposable SetupImplicitSafeContextStorageProvider (ISafeContextStorageProvider safeContextStorageProvider) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => safeContextStorageProvider); return new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Core/UnitTests/Logging/ILogManagerTest.cs b/Remotion/Core/UnitTests/Logging/ILogManagerTest.cs index 03be44ce5e..baca892901 100644 --- a/Remotion/Core/UnitTests/Logging/ILogManagerTest.cs +++ b/Remotion/Core/UnitTests/Logging/ILogManagerTest.cs @@ -29,7 +29,7 @@ public class ILogManagerTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs index 1ad69189ed..cd1f46e14f 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs @@ -21,6 +21,8 @@ using System.Reflection; using Moq; using NUnit.Framework; +using Remotion.Reflection; +using Remotion.Reflection.TypeDiscovery; using Remotion.ServiceLocation; using Remotion.UnitTests.ServiceLocation.TestDomain; @@ -389,7 +391,7 @@ public void GetDefaultConfiguration_WithMultipleRegistrationsWithRegistrationTyp [Test] public void GetDefaultConfiguration_Assembly () { - var defaultServiceConfigurationDiscoveryService = DefaultServiceConfigurationDiscoveryService.Create(); + var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); // Because the TestDomain contains test classes with ambiguous attributes, we expect an exception here. Assert.That( diff --git a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorTests/DefaultServiceLocatorTest.cs b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorTests/DefaultServiceLocatorTest.cs index 204d3cee08..a88d9518ea 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorTests/DefaultServiceLocatorTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorTests/DefaultServiceLocatorTest.cs @@ -28,7 +28,7 @@ public class DefaultServiceLocatorTest public void GetInstance_TypeWithGenericServiceInterface () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); Assert.That(serviceLocator.GetInstance(typeof(ITestOpenGenericService)), Is.TypeOf(typeof(TestOpenGenericIntImplementation))); Assert.That(serviceLocator.GetInstance(typeof(ITestOpenGenericService)), Is.TypeOf(typeof(TestOpenGenericStringImplementation))); diff --git a/Remotion/Core/UnitTests/ServiceLocation/IMemberInformationNameResolverTest.cs b/Remotion/Core/UnitTests/ServiceLocation/IMemberInformationNameResolverTest.cs index 9a8b026f01..34bdb1ad8f 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/IMemberInformationNameResolverTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/IMemberInformationNameResolverTest.cs @@ -29,7 +29,7 @@ public class IMemberInformationNameResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/ServiceLocation/ServiceLocatorTests.cs b/Remotion/Core/UnitTests/ServiceLocation/ServiceLocatorTests.cs index 81b1708d78..7d4ab1d65d 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/ServiceLocatorTests.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/ServiceLocatorTests.cs @@ -15,6 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using Moq; using NUnit.Framework; using Remotion.ServiceLocation; @@ -29,10 +30,16 @@ public void SetUp () ServiceLocator.SetLocatorProvider(null); } + [TearDown] + public void TearDown () + { + ServiceLocator.SetLocatorProvider(null); + } + [Test] public void IsLocationProviderSet_WithSetProvider_ReturnsTrue () { - ServiceLocator.SetLocatorProvider(() => new DefaultServiceLocator(DefaultServiceConfigurationDiscoveryService.Create())); + ServiceLocator.SetLocatorProvider(() => Mock.Of()); Assert.That(ServiceLocator.IsLocationProviderSet, Is.True); } diff --git a/Remotion/Core/UnitTests/Utilities/IAppContextProviderTest.cs b/Remotion/Core/UnitTests/Utilities/IAppContextProviderTest.cs index 3c0da299b4..3c0a4e92a3 100644 --- a/Remotion/Core/UnitTests/Utilities/IAppContextProviderTest.cs +++ b/Remotion/Core/UnitTests/Utilities/IAppContextProviderTest.cs @@ -29,7 +29,7 @@ public class IAppContextProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/Utilities/ITypeConversionProviderTest.cs b/Remotion/Core/UnitTests/Utilities/ITypeConversionProviderTest.cs index cde3c6f684..4402c549f7 100644 --- a/Remotion/Core/UnitTests/Utilities/ITypeConversionProviderTest.cs +++ b/Remotion/Core/UnitTests/Utilities/ITypeConversionProviderTest.cs @@ -29,7 +29,7 @@ public class ITypeConversionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Core/UnitTests/Utilities/ITypeConverterFactoryTest.cs b/Remotion/Core/UnitTests/Utilities/ITypeConverterFactoryTest.cs index 7e85e95b1f..d3338435a6 100644 --- a/Remotion/Core/UnitTests/Utilities/ITypeConverterFactoryTest.cs +++ b/Remotion/Core/UnitTests/Utilities/ITypeConverterFactoryTest.cs @@ -30,7 +30,7 @@ public class ITypeConverterFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertReadAccessStrategyTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertReadAccessStrategyTest.cs index f98ed6e3ac..af99935fd5 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertReadAccessStrategyTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertReadAccessStrategyTest.cs @@ -31,7 +31,7 @@ public class IBindablePropertReadAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertyWriteAccessStrategyTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertyWriteAccessStrategyTest.cs index d3b968e045..0086e38591 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertyWriteAccessStrategyTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/IBindablePropertyWriteAccessStrategyTest.cs @@ -31,7 +31,7 @@ public class IBindablePropertyWriteAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SecurityIntegrationTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SecurityIntegrationTest.cs index 22492e565f..64b7ad839f 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SecurityIntegrationTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SecurityIntegrationTest.cs @@ -56,7 +56,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => _principalProviderStub.Object); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SetUpFixture.cs b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SetUpFixture.cs index 5c3fd266f5..0f29dac285 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SetUpFixture.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.IntegrationTests/SetUpFixture.cs @@ -54,7 +54,7 @@ public void OneTimeSetUp () { var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(TestDomainConnectionString); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/BindableDomainObjectMixinTests/GetDisplayNameTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/BindableDomainObjectMixinTests/GetDisplayNameTest.cs index 55976bf41c..54a9b98645 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/BindableDomainObjectMixinTests/GetDisplayNameTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/BindableDomainObjectMixinTests/GetDisplayNameTest.cs @@ -41,7 +41,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _bindablePropertyReadAccessStrategyMock.Object); serviceLocator.RegisterSingle(() => storageSettings); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertReadAccessStrategyTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertReadAccessStrategyTest.cs index c704d5f35a..68d0deed3c 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertReadAccessStrategyTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertReadAccessStrategyTest.cs @@ -30,7 +30,7 @@ public class IBindablePropertReadAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertyWriteAccessStrategyTest.cs b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertyWriteAccessStrategyTest.cs index f769f60d51..6889e2ae34 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertyWriteAccessStrategyTest.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/IBindablePropertyWriteAccessStrategyTest.cs @@ -30,7 +30,7 @@ public class IBindablePropertyWriteAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/SetUpFixture.cs b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/SetUpFixture.cs index 6059a4aa86..44f4e389fd 100644 --- a/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/SetUpFixture.cs +++ b/Remotion/Data/DomainObjects.ObjectBinding.UnitTests/SetUpFixture.cs @@ -41,7 +41,7 @@ public void OneTimeSetUp () var storageSettings = new SerializableStorageSettings(new StorageSettings(storageProviderDefinition, new[] { storageProviderDefinition })); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettings); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithSecurityTest.cs b/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithSecurityTest.cs index 0f55140a1d..0f5ab67758 100644 --- a/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithSecurityTest.cs +++ b/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithSecurityTest.cs @@ -39,7 +39,7 @@ public void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => stubSecurityProvider); serviceLocator.RegisterSingle(() => threadPrincipalProvider); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithoutSecurityTest.cs b/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithoutSecurityTest.cs index 84d40e3572..80942190da 100644 --- a/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithoutSecurityTest.cs +++ b/Remotion/Data/DomainObjects.PerformanceTests/BindableObjectWithoutSecurityTest.cs @@ -44,7 +44,7 @@ public void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => bindablePropertyReadAccessStrategy); serviceLocator.RegisterSingle(() => storageSettings); serviceLocator.RegisterSingle(() => bindablePropertyWriteAccessStrategy); diff --git a/Remotion/Data/DomainObjects.PerformanceTests/PropertyTest.cs b/Remotion/Data/DomainObjects.PerformanceTests/PropertyTest.cs index e4a00d0d23..d09f064e37 100644 --- a/Remotion/Data/DomainObjects.PerformanceTests/PropertyTest.cs +++ b/Remotion/Data/DomainObjects.PerformanceTests/PropertyTest.cs @@ -48,7 +48,7 @@ public void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => bindablePropertyReadAccessStrategy); serviceLocator.RegisterSingle(() => bindablePropertyWriteAccessStrategy); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs b/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs index ba386f93af..5103370299 100644 --- a/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs +++ b/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs @@ -36,7 +36,7 @@ public static void Initialize () { var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(ConnectionString); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.RdbmsTools/RdbmsToolsRunner.cs b/Remotion/Data/DomainObjects.RdbmsTools/RdbmsToolsRunner.cs index 928e6fe28b..cbf29855f3 100644 --- a/Remotion/Data/DomainObjects.RdbmsTools/RdbmsToolsRunner.cs +++ b/Remotion/Data/DomainObjects.RdbmsTools/RdbmsToolsRunner.cs @@ -87,7 +87,7 @@ protected virtual void InitializeConfiguration () if (ServiceLocator.IsLocationProviderSet == false) { var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(_rdbmsToolsParameters.ConnectionString); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => serviceLocator); } diff --git a/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionIntegrationTest.cs b/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionIntegrationTest.cs index 96f3f99cfe..02a32b6f6d 100644 --- a/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionIntegrationTest.cs +++ b/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionIntegrationTest.cs @@ -61,7 +61,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => storageSettings); serviceLocator.RegisterSingle(() => _principalProviderStub.Object); diff --git a/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionTests/TestHelper.cs b/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionTests/TestHelper.cs index 697b0a93c8..1e51b32dd5 100644 --- a/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionTests/TestHelper.cs +++ b/Remotion/Data/DomainObjects.Security.UnitTests/SecurityClientTransactionExtensionTests/TestHelper.cs @@ -100,7 +100,7 @@ public void SetupSecurityIoCConfiguration () { var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _stubPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _mockMemberResolver.Object); diff --git a/Remotion/Data/DomainObjects.Security.UnitTests/SetupFixture.cs b/Remotion/Data/DomainObjects.Security.UnitTests/SetupFixture.cs index f4d1161f37..731a9235f3 100644 --- a/Remotion/Data/DomainObjects.Security.UnitTests/SetupFixture.cs +++ b/Remotion/Data/DomainObjects.Security.UnitTests/SetupFixture.cs @@ -41,7 +41,7 @@ public void OneTimeSetUp () var storageSettings = new StorageSettings(storageProviderDefinition, new[] { storageProviderDefinition }); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettings); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/EntityFrameworkIntegrationTest.cs b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/EntityFrameworkIntegrationTest.cs index 7439dfd006..0f24fbdf47 100644 --- a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/EntityFrameworkIntegrationTest.cs +++ b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/EntityFrameworkIntegrationTest.cs @@ -44,7 +44,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var locator = DefaultServiceLocator.Create(); + var locator = DefaultServiceLocator.CreateWithBootstrappedServices(); var factory = new EntityFrameworkExtensionFactory(); locator.RegisterSingle(() => factory); locator.RegisterSingle(() => factory); diff --git a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/LinqToSqlIntegrationTest.cs b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/LinqToSqlIntegrationTest.cs index 2c45e1867d..bdf495fadc 100644 --- a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/LinqToSqlIntegrationTest.cs +++ b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/LinqToSqlIntegrationTest.cs @@ -44,7 +44,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var locator = DefaultServiceLocator.Create(); + var locator = DefaultServiceLocator.CreateWithBootstrappedServices(); var factory = new LinqToSqlExtensionFactory(); locator.RegisterSingle(() => factory); locator.RegisterSingle(() => factory); diff --git a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/SetUpFixture.cs b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/SetUpFixture.cs index d2c949014a..0985642be2 100644 --- a/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/SetUpFixture.cs +++ b/Remotion/Data/DomainObjects.UberProfIntegration.UnitTests/SetUpFixture.cs @@ -54,7 +54,7 @@ public void OneTimeSetUp () { var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(TestDomainConnectionString); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/IClientTransactionExtensionFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/IClientTransactionExtensionFactoryTest.cs index d6d63831b5..b2f268752e 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IClientTransactionExtensionFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IClientTransactionExtensionFactoryTest.cs @@ -29,7 +29,7 @@ public class IClientTransactionExtensionFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/IDomainModelConstraintProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/IDomainModelConstraintProviderTest.cs index 86b274d4c3..d4d5ea356f 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IDomainModelConstraintProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IDomainModelConstraintProviderTest.cs @@ -13,7 +13,7 @@ public class IDomainModelConstraintProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/IInterceptedPropertyFinderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/IInterceptedPropertyFinderTest.cs index 561ac5ff73..f4f66cc73c 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/IInterceptedPropertyFinderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/IInterceptedPropertyFinderTest.cs @@ -29,7 +29,7 @@ public class IInterceptedPropertyFinderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/ITypeDefinitionProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/ITypeDefinitionProviderTest.cs index a82f3d03d7..dea458b27f 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/ITypeDefinitionProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Infrastructure/TypePipe/ITypeDefinitionProviderTest.cs @@ -29,7 +29,7 @@ public class ITypeDefinitionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/EagerFetching/EagerFetchingTest.cs b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/EagerFetching/EagerFetchingTest.cs index 37de11170b..6946c959ab 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/EagerFetching/EagerFetchingTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/EagerFetching/EagerFetchingTest.cs @@ -307,7 +307,7 @@ private ServiceLocatorScope ScopeWithPersistenceExtension (IPersistenceExtension persistenceExtensionFactoryStub .Setup(stub => stub.CreatePersistenceExtensions(It.IsAny())) .Returns(new[] { persistenceExtensionMock }); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => persistenceExtensionFactoryStub.Object); RegisterStandardConfiguration(serviceLocator); return new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/Queries/CustomQueryDatabaseBehaviorTest.cs b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/Queries/CustomQueryDatabaseBehaviorTest.cs index c665648958..119efce8ed 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/Queries/CustomQueryDatabaseBehaviorTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/Queries/CustomQueryDatabaseBehaviorTest.cs @@ -41,7 +41,7 @@ public override void SetUp () .Setup(stub => stub.CreatePersistenceExtensions(It.Is(value => value == TestableClientTransaction.ID))) .Returns(new[] { _persistenceExtensionMock.Object }); - var locator = DefaultServiceLocator.Create(); + var locator = DefaultServiceLocator.CreateWithBootstrappedServices(); locator.RegisterSingle(() => persistenceExtensionFactoryStub.Object); RegisterStandardConfiguration(locator); _serviceLocatorScope = new ServiceLocatorScope(locator); diff --git a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs index 0df896b4c0..83c4dae0f4 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs @@ -19,6 +19,7 @@ using NUnit.Framework; using Remotion.Data.DomainObjects.Infrastructure.TypePipe; using Remotion.Mixins.CodeGeneration.TypePipe; +using Remotion.Reflection; using Remotion.ServiceLocation; using Remotion.TypePipe; @@ -30,7 +31,7 @@ public class ParticipantRegistrationTest [Test] public void DefaultServiceLocator_ReturnsDomainObjectParticipant () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var participants = serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Has.Member(typeof(DomainObjectParticipant))); } @@ -38,7 +39,7 @@ public void DefaultServiceLocator_ReturnsDomainObjectParticipant () [Test] public void DefaultServiceLocator_OrdersDomainObjectParticipantAfterMixinParticipant () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var participants = serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Is.EqualTo(new[] { typeof(MixinParticipant), typeof(DomainObjectParticipant) })); } @@ -46,7 +47,7 @@ public void DefaultServiceLocator_OrdersDomainObjectParticipantAfterMixinPartici [Test] public void DefaultServiceConfigurationDiscoveryService_ReturnsDomainObjectParticipant () { - var discoveryService = DefaultServiceConfigurationDiscoveryService.Create(); + var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); var services = discoveryService.GetDefaultConfiguration(); var participantService = services.SingleOrDefault(s => s.ServiceType == typeof(IParticipant)); @@ -55,9 +56,9 @@ public void DefaultServiceConfigurationDiscoveryService_ReturnsDomainObjectParti } [Test] - public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticpant () + public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticipant () { - var discoveryService = DefaultServiceConfigurationDiscoveryService.Create(); + var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); var services = discoveryService.GetDefaultConfiguration(); var participantService = services.SingleOrDefault(s => s.ServiceType == typeof(IParticipant)); diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IClassIDProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IClassIDProviderTest.cs index 6f50ca26a2..35c9f5e17c 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IClassIDProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IClassIDProviderTest.cs @@ -28,7 +28,7 @@ public class IClassIDProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingConfigurationTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingConfigurationTest.cs index a44bfd595b..89348cf92e 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingConfigurationTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingConfigurationTest.cs @@ -16,7 +16,7 @@ public class IMappingConfigurationTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _serviceLocator.RegisterSingle(() => Mock.Of()); _serviceLocator.RegisterSingle(() => Mock.Of()); } diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingLoaderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingLoaderTest.cs index dc24da6a22..065af22e95 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingLoaderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IMappingLoaderTest.cs @@ -13,7 +13,7 @@ public class IMappingLoaderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPersistenceModelLoader.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPersistenceModelLoader.cs index d01f755b33..63c07160f6 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPersistenceModelLoader.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPersistenceModelLoader.cs @@ -31,7 +31,7 @@ public class IPersistenceModelLoaderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _serviceLocator.RegisterSingle(() => Mock.Of()); } diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyDefaultValueProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyDefaultValueProviderTest.cs index fd0c97dcf4..38d024da28 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyDefaultValueProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyDefaultValueProviderTest.cs @@ -12,7 +12,7 @@ public class IPropertyDefaultValueProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyMetadataProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyMetadataProviderTest.cs index 3697682c17..15b2751268 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyMetadataProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/IPropertyMetadataProviderTest.cs @@ -28,7 +28,7 @@ public class IPropertyMetadataProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/ISortExpressionProviderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/ISortExpressionProviderTest.cs index 3174bad47f..f4b43febd5 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/ISortExpressionProviderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/ISortExpressionProviderTest.cs @@ -13,7 +13,7 @@ public class ISortExpressionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageObjectFactoryFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageObjectFactoryFactoryTest.cs index 9f41c20714..7fa3e3f84e 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageObjectFactoryFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageObjectFactoryFactoryTest.cs @@ -28,7 +28,7 @@ public class IStorageObjectFactoryFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryResolverTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryResolverTest.cs index 2d6c1c657e..e8066d8c21 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryResolverTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryResolverTest.cs @@ -28,7 +28,7 @@ public class IStorageSettingsFactoryResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryTest.cs index 621f47d5db..f758a8d82c 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsFactoryTest.cs @@ -27,7 +27,7 @@ public class IStorageSettingsFactoryTest [Test] public void GetInstance_ThrowsNoInstanceRegistered () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); Assert.That( () => serviceLocator.GetInstance(), diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsTest.cs index 6a255f92c1..fd43aee1a9 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/IStorageSettingsTest.cs @@ -29,7 +29,7 @@ public class IStorageSettingsTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _serviceLocator.RegisterSingle(() => Mock.Of()); } diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageObjectFactoryFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageObjectFactoryFactoryTest.cs index 1b512c9c51..3e81c12ce4 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageObjectFactoryFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageObjectFactoryFactoryTest.cs @@ -81,7 +81,7 @@ public IDomainObjectQueryGenerator CreateDomainObjectQueryGenerator ( [Test] public void Create_WithoutIoCRegistration_CreatesObject () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageObjectFactoryFactory = new StorageObjectFactoryFactory(); Assert.That(((IServiceProvider)serviceLocator).GetService(typeof(UnitTestStorageObjectFactoryStub)), Is.Null); @@ -97,7 +97,7 @@ public void Create_WithoutIoCRegistration_CreatesObject () [Test] public void Create_WithIoCRegistration_GetsFromIoC () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageObjectFactoryFactory = new StorageObjectFactoryFactory(); var resultFromServiceLocator = ((IServiceProvider)serviceLocator).GetService(typeof(SqlStorageObjectFactory)); diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageSettingsFactoryResolverTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageSettingsFactoryResolverTest.cs index 0cb4ce27c3..9fced7bae5 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageSettingsFactoryResolverTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Configuration/StorageSettingsFactoryResolverTest.cs @@ -32,7 +32,7 @@ public void Resolve_ReturnsValueFromServiceLocator () var storageSettingsFactoryStub = Mock.Of(); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettingsFactoryStub); using (new ServiceLocatorScope(defaultServiceLocator)) @@ -47,7 +47,7 @@ public void Resolve_ReturnsValueFromServiceLocator () public void Resolve_Throws () { var storageSettingsFactoryResolver = new StorageSettingsFactoryResolver(); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); using (new ServiceLocatorScope(defaultServiceLocator)) { diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/IPersistenceModelTest.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/IPersistenceModelTest.cs index 5fe47fc208..b21abed89f 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/IPersistenceModelTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/IPersistenceModelTest.cs @@ -29,7 +29,7 @@ public class IPersistenceModelTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs index a879fc385e..7f0553da95 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs @@ -54,7 +54,7 @@ public override void SetUp () _storageProviderDefinition = (RdbmsProviderDefinition)storageSettings.GetDefaultStorageProviderDefinition(); _storageObjectFactory = (SqlStorageObjectFactory)_storageProviderDefinition.Factory; - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => storageSettings); SetupServiceLocator(serviceLocator); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/IQueryDefinitionRepositoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/IQueryDefinitionRepositoryTest.cs index 22c1567d25..0d411efc00 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/IQueryDefinitionRepositoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/IQueryDefinitionRepositoryTest.cs @@ -31,7 +31,7 @@ public override void SetUp () { base.SetUp(); - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryDefinitionLoaderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryDefinitionLoaderTest.cs index 602f7762aa..1c2fd5d137 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryDefinitionLoaderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryDefinitionLoaderTest.cs @@ -29,7 +29,7 @@ public class IQueryDefinitionLoaderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryFileFinderTest.cs b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryFileFinderTest.cs index 935a6497d0..23854c00cb 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryFileFinderTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Queries/Configuration/Loader/IQueryFileFinderTest.cs @@ -29,7 +29,7 @@ public class IQueryFileFinderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Queries/QueryFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Queries/QueryFactoryTest.cs index 8edaabaf8c..c70bc5d734 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Queries/QueryFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Queries/QueryFactoryTest.cs @@ -74,7 +74,7 @@ public void CreateQueryFromConfiguration_FromID () { var definition = Queries.GetMandatory("QueryWithoutParameter"); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => Queries); RegisterStandardConfiguration(serviceLocator); using var scope = new ServiceLocatorScope(serviceLocator); @@ -94,7 +94,7 @@ public void CreateQueryFromConfiguration_FromID_WithParameterCollection () var definition = Queries.GetMandatory("QueryWithoutParameter"); var parameterCollection = new QueryParameterCollection(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => Queries); RegisterStandardConfiguration(serviceLocator); using var scope = new ServiceLocatorScope(serviceLocator); @@ -271,7 +271,7 @@ public void CreateQuery_FromLinqQuery_InvalidQueryable () public void CreateLinqQuery_WithParserAndExecutor () { var factoryMock = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => factoryMock.Object); RegisterStandardConfiguration(serviceLocator); using (new ServiceLocatorScope(serviceLocator)) @@ -296,7 +296,7 @@ public void CreateLinqQuery_WithParserAndExecutor () public void CreateLinqQuery_WithoutParserAndExecutor () { var factoryMock = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => factoryMock.Object); RegisterStandardConfiguration(serviceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/Serialization/QueriesTest.cs b/Remotion/Data/DomainObjects.UnitTests/Serialization/QueriesTest.cs index bd87b6f802..abd42258a2 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Serialization/QueriesTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Serialization/QueriesTest.cs @@ -72,7 +72,7 @@ public void Deserialize_WithQueryDefinitionFromRepo_ReturnsSameInstance () { var queryDefinitionRepository = Queries; - DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create(); + DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => queryDefinitionRepository); RegisterStandardConfiguration(defaultServiceLocator); using var scope = new ServiceLocatorScope(defaultServiceLocator); @@ -90,7 +90,7 @@ public void Deserialize_WithQueryDefinitionNoLongerInRepo_ThrowsException () QueryDefinition unknownQueryDefinition = new QueryDefinition("UnknownQuery", TestDomainStorageProviderDefinition, "select 42", QueryType.ScalarReadOnly); QueryDefinitionRepository queryDefinitionRepository = new QueryDefinitionRepository(new[] { unknownQueryDefinition }); - DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create(); + DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => queryDefinitionRepository); RegisterStandardConfiguration(defaultServiceLocator); @@ -114,7 +114,7 @@ public void DeserializeList_WithQueryDefinitionsFromRepo_ReturnsSameInstances () { var queryDefinitionRepository = Queries; - DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create(); + DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => queryDefinitionRepository); RegisterStandardConfiguration(defaultServiceLocator); using var scope = new ServiceLocatorScope(defaultServiceLocator); @@ -134,7 +134,7 @@ public void Query () { var queryDefinitionRepository = Queries; - DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create(); + DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => queryDefinitionRepository); RegisterStandardConfiguration(defaultServiceLocator); using var scope = new ServiceLocatorScope(defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/SetupFixture.cs b/Remotion/Data/DomainObjects.UnitTests/SetupFixture.cs index 3b3154b868..f145e3fed1 100644 --- a/Remotion/Data/DomainObjects.UnitTests/SetupFixture.cs +++ b/Remotion/Data/DomainObjects.UnitTests/SetupFixture.cs @@ -34,7 +34,7 @@ public void OneTimeSetUp () { StandardConfiguration.EnsureInitialized(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); StandardConfiguration.Instance.Register(serviceLocator); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Data/DomainObjects.UnitTests/Tracing/IPersistenceExtensionFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Tracing/IPersistenceExtensionFactoryTest.cs index 22bf03f9f0..5e670e732f 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Tracing/IPersistenceExtensionFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Tracing/IPersistenceExtensionFactoryTest.cs @@ -29,7 +29,7 @@ public class IPersistenceExtensionFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Validation/IClientTransactionExtensionFactoryTest.cs b/Remotion/Data/DomainObjects.UnitTests/Validation/IClientTransactionExtensionFactoryTest.cs index d074d361f3..d869a3b9e6 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Validation/IClientTransactionExtensionFactoryTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Validation/IClientTransactionExtensionFactoryTest.cs @@ -31,7 +31,7 @@ public class IClientTransactionExtensionFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Validation/IDataContainerValidatorTest.cs b/Remotion/Data/DomainObjects.UnitTests/Validation/IDataContainerValidatorTest.cs index 745ffe7b86..e5fec61db1 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Validation/IDataContainerValidatorTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Validation/IDataContainerValidatorTest.cs @@ -30,7 +30,7 @@ public class IDataContainerValidatorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.UnitTests/Validation/IPersistableDataValidatorTest.cs b/Remotion/Data/DomainObjects.UnitTests/Validation/IPersistableDataValidatorTest.cs index b3c7734ac4..21291d47b4 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Validation/IPersistableDataValidatorTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Validation/IPersistableDataValidatorTest.cs @@ -30,7 +30,7 @@ public class IPersistableDataValidatorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.Validation.IntegrationTests/IntegrationTestBase.cs b/Remotion/Data/DomainObjects.Validation.IntegrationTests/IntegrationTestBase.cs index 6f476b2f36..0996b4794e 100644 --- a/Remotion/Data/DomainObjects.Validation.IntegrationTests/IntegrationTestBase.cs +++ b/Remotion/Data/DomainObjects.Validation.IntegrationTests/IntegrationTestBase.cs @@ -42,7 +42,7 @@ public virtual void SetUp () { var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle( () => new ValidationClientTransactionExtensionFactory(serviceLocator.GetInstance())); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/Remotion/Data/DomainObjects.Validation.IntegrationTests/SetupFixture.cs b/Remotion/Data/DomainObjects.Validation.IntegrationTests/SetupFixture.cs index afdc132828..ad807be0b4 100644 --- a/Remotion/Data/DomainObjects.Validation.IntegrationTests/SetupFixture.cs +++ b/Remotion/Data/DomainObjects.Validation.IntegrationTests/SetupFixture.cs @@ -41,7 +41,7 @@ public void OneTimeSetUp () var storageSettings = new StorageSettings(storageProviderDefinition, new[] { storageProviderDefinition }); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettings); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.Validation.UnitTests/IClientTransactionExtensionFactoryTest.cs b/Remotion/Data/DomainObjects.Validation.UnitTests/IClientTransactionExtensionFactoryTest.cs index d951cd9f93..bc6e9f9f52 100644 --- a/Remotion/Data/DomainObjects.Validation.UnitTests/IClientTransactionExtensionFactoryTest.cs +++ b/Remotion/Data/DomainObjects.Validation.UnitTests/IClientTransactionExtensionFactoryTest.cs @@ -30,7 +30,7 @@ public class IClientTransactionExtensionFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.Validation.UnitTests/IValidationRuleCollectorProviderTest.cs b/Remotion/Data/DomainObjects.Validation.UnitTests/IValidationRuleCollectorProviderTest.cs index f92fedd037..141794295d 100644 --- a/Remotion/Data/DomainObjects.Validation.UnitTests/IValidationRuleCollectorProviderTest.cs +++ b/Remotion/Data/DomainObjects.Validation.UnitTests/IValidationRuleCollectorProviderTest.cs @@ -31,7 +31,7 @@ public class IValidationRuleCollectorProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Data/DomainObjects.Validation.UnitTests/SetupFixture.cs b/Remotion/Data/DomainObjects.Validation.UnitTests/SetupFixture.cs index 58596e9388..a5da1da606 100644 --- a/Remotion/Data/DomainObjects.Validation.UnitTests/SetupFixture.cs +++ b/Remotion/Data/DomainObjects.Validation.UnitTests/SetupFixture.cs @@ -41,7 +41,7 @@ public void OneTimeSetUp () var storageSettings = new StorageSettings(storageProviderDefinition, new[] { storageProviderDefinition }); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettings); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.Web.IntegrationTests/SetUpFixture.cs b/Remotion/Data/DomainObjects.Web.IntegrationTests/SetUpFixture.cs index 2a9ffd47e1..effd7a1522 100644 --- a/Remotion/Data/DomainObjects.Web.IntegrationTests/SetUpFixture.cs +++ b/Remotion/Data/DomainObjects.Web.IntegrationTests/SetUpFixture.cs @@ -57,7 +57,7 @@ public void OneTimeSetUp () { var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(TestDomainConnectionString); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); diff --git a/Remotion/Data/DomainObjects.Web.IntegrationTests/WxeTransactedFunctionIntegrationTests/SecuredFunctionTestBase.cs b/Remotion/Data/DomainObjects.Web.IntegrationTests/WxeTransactedFunctionIntegrationTests/SecuredFunctionTestBase.cs index 36306411d9..cc9e5ea6fc 100644 --- a/Remotion/Data/DomainObjects.Web.IntegrationTests/WxeTransactedFunctionIntegrationTests/SecuredFunctionTestBase.cs +++ b/Remotion/Data/DomainObjects.Web.IntegrationTests/WxeTransactedFunctionIntegrationTests/SecuredFunctionTestBase.cs @@ -56,7 +56,7 @@ public override void SetUp () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => principalProviderStub.Object); serviceLocator.RegisterSingle(() => _functionalSecurityStrategyStub.Object); diff --git a/Remotion/Data/DomainObjects.Web.Test/Global.asax.cs b/Remotion/Data/DomainObjects.Web.Test/Global.asax.cs index ce224533f7..b0bd67cb1f 100644 --- a/Remotion/Data/DomainObjects.Web.Test/Global.asax.cs +++ b/Remotion/Data/DomainObjects.Web.Test/Global.asax.cs @@ -65,7 +65,7 @@ protected void Application_Start (Object sender, EventArgs e) FileExtensionHandlerMapping.Default); _resourceVirtualPathProvider.Register(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer("Integrated Security=SSPI;Initial Catalog=RpaTest;Data Source=localhost"); serviceLocator.RegisterSingle(() => storageSettingsFactory); diff --git a/Remotion/Development/Core/UnitTesting/ServiceLocatorScope.cs b/Remotion/Development/Core/UnitTesting/ServiceLocatorScope.cs index 04706f4cb7..4cf550c9c2 100644 --- a/Remotion/Development/Core/UnitTesting/ServiceLocatorScope.cs +++ b/Remotion/Development/Core/UnitTesting/ServiceLocatorScope.cs @@ -27,16 +27,6 @@ namespace Remotion.Development.UnitTesting /// public class ServiceLocatorScope : IDisposable { - private static DefaultServiceLocator CreateServiceLocator (IEnumerable configuration) - { - ArgumentUtility.CheckNotNull("configuration", configuration); - - var defaultServiceLocator = DefaultServiceLocator.Create(); - foreach (var stubbedRegistration in configuration) - defaultServiceLocator.Register(stubbedRegistration); - return defaultServiceLocator; - } - private readonly ServiceLocatorProvider? _previousLocatorProvider; public ServiceLocatorScope (IServiceLocator temporaryServiceLocator) @@ -54,11 +44,6 @@ public ServiceLocatorScope (IServiceLocator temporaryServiceLocator) ServiceLocator.SetLocatorProvider(() => temporaryServiceLocator); } - public ServiceLocatorScope (params ServiceConfigurationEntry[] temporaryConfiguration) - : this(CreateServiceLocator(temporaryConfiguration)) - { - } - public void Dispose () { ServiceLocator.SetLocatorProvider(_previousLocatorProvider); diff --git a/Remotion/Development/UnitTests/Core/UnitTesting/ServiceLocatorScopeTest.cs b/Remotion/Development/UnitTests/Core/UnitTesting/ServiceLocatorScopeTest.cs index 28425afe4d..d47e3e5d47 100644 --- a/Remotion/Development/UnitTests/Core/UnitTesting/ServiceLocatorScopeTest.cs +++ b/Remotion/Development/UnitTests/Core/UnitTesting/ServiceLocatorScopeTest.cs @@ -98,28 +98,6 @@ public void Initialization_AndDispose_ServiceLocator_SetNull () Assert.That(ServiceLocator.Current, Is.SameAs(_locator1)); } - [Test] - public void Initialization_AndDispose_ServiceLocator_ServiceConfigurationEntries () - { - ServiceLocator.SetLocatorProvider(() => _locator1); - Assert.That(ServiceLocator.Current, Is.SameAs(_locator1)); - - var entry1 = new ServiceConfigurationEntry(typeof(object), new ServiceImplementationInfo(typeof(DomainType1), LifetimeKind.InstancePerDependency)); - var entry2 = new ServiceConfigurationEntry(typeof(IFormattable), new ServiceImplementationInfo(typeof(DomainType2), LifetimeKind.Singleton)); - - using (new ServiceLocatorScope(entry1, entry2)) - { - Assert.That(ServiceLocator.Current, Is.Not.SameAs(_locator1)); - Assert.That(ServiceLocator.Current, Is.TypeOf()); - Assert.That(ServiceLocator.Current.GetInstance(typeof(object)), Is.TypeOf()); - Assert.That(ServiceLocator.Current.GetInstance(typeof(object)), Is.Not.SameAs(ServiceLocator.Current.GetInstance(typeof(object)))); - Assert.That(ServiceLocator.Current.GetInstance(typeof(IFormattable)), Is.TypeOf()); - Assert.That(ServiceLocator.Current.GetInstance(typeof(IFormattable)), Is.SameAs(ServiceLocator.Current.GetInstance(typeof(IFormattable)))); - } - - Assert.That(ServiceLocator.Current, Is.SameAs(_locator1)); - } - class DomainType1 { } class DomainType2 : IFormattable { public string ToString (string format, IFormatProvider formatProvider) diff --git a/Remotion/Globalization/ExtensibleEnums.UnitTests/IExtensibleEnumGlobalizationServiceTest.cs b/Remotion/Globalization/ExtensibleEnums.UnitTests/IExtensibleEnumGlobalizationServiceTest.cs index 33d88a554a..e8adfbe7fa 100644 --- a/Remotion/Globalization/ExtensibleEnums.UnitTests/IExtensibleEnumGlobalizationServiceTest.cs +++ b/Remotion/Globalization/ExtensibleEnums.UnitTests/IExtensibleEnumGlobalizationServiceTest.cs @@ -30,7 +30,7 @@ public class IExtensibleEnumGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/Mixins.UnitTests/IGlobalizationServiceTest.cs b/Remotion/Globalization/Mixins.UnitTests/IGlobalizationServiceTest.cs index 68d8dcc6de..68ba8ad78a 100644 --- a/Remotion/Globalization/Mixins.UnitTests/IGlobalizationServiceTest.cs +++ b/Remotion/Globalization/Mixins.UnitTests/IGlobalizationServiceTest.cs @@ -30,7 +30,7 @@ public class IGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/UnitTests/IEnumerationGlobalizationServiceTest.cs b/Remotion/Globalization/UnitTests/IEnumerationGlobalizationServiceTest.cs index 21172f6615..60e5c23025 100644 --- a/Remotion/Globalization/UnitTests/IEnumerationGlobalizationServiceTest.cs +++ b/Remotion/Globalization/UnitTests/IEnumerationGlobalizationServiceTest.cs @@ -30,7 +30,7 @@ public class IEnumerationGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/UnitTests/IGlobalizationServiceTest.cs b/Remotion/Globalization/UnitTests/IGlobalizationServiceTest.cs index ef2985f3c0..f35a8870da 100644 --- a/Remotion/Globalization/UnitTests/IGlobalizationServiceTest.cs +++ b/Remotion/Globalization/UnitTests/IGlobalizationServiceTest.cs @@ -29,7 +29,7 @@ public class IGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/UnitTests/IMemberInformationGlobalizationServiceTest.cs b/Remotion/Globalization/UnitTests/IMemberInformationGlobalizationServiceTest.cs index b70ea57b2c..ad82f01b32 100644 --- a/Remotion/Globalization/UnitTests/IMemberInformationGlobalizationServiceTest.cs +++ b/Remotion/Globalization/UnitTests/IMemberInformationGlobalizationServiceTest.cs @@ -30,7 +30,7 @@ public class IMemberInformationGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/UnitTests/Implementation/IResourceManagerFactoryTest.cs b/Remotion/Globalization/UnitTests/Implementation/IResourceManagerFactoryTest.cs index 9b6bc47389..938de13baa 100644 --- a/Remotion/Globalization/UnitTests/Implementation/IResourceManagerFactoryTest.cs +++ b/Remotion/Globalization/UnitTests/Implementation/IResourceManagerFactoryTest.cs @@ -29,7 +29,7 @@ public class IResourceManagerFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Globalization/UnitTests/Implementation/IResourceManagerResolverTest.cs b/Remotion/Globalization/UnitTests/Implementation/IResourceManagerResolverTest.cs index cb9df91209..ec783a8eb3 100644 --- a/Remotion/Globalization/UnitTests/Implementation/IResourceManagerResolverTest.cs +++ b/Remotion/Globalization/UnitTests/Implementation/IResourceManagerResolverTest.cs @@ -29,7 +29,7 @@ public class IResourceManagerResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/Samples/DynamicMixinBuilding/UnitTests/DynamicMixinBuilderTest.cs b/Remotion/Mixins/Samples/DynamicMixinBuilding/UnitTests/DynamicMixinBuilderTest.cs index ea88d0125e..c0790b7b66 100644 --- a/Remotion/Mixins/Samples/DynamicMixinBuilding/UnitTests/DynamicMixinBuilderTest.cs +++ b/Remotion/Mixins/Samples/DynamicMixinBuilding/UnitTests/DynamicMixinBuilderTest.cs @@ -74,7 +74,7 @@ public void SetUp () // Set new default pipeline to avoid cached types to influence each other. var pipelineRegistry = CreatePipelineRegistry(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); // ReSharper disable once RedundantTypeArgumentsOfMethod serviceLocator.RegisterSingle(() => pipelineRegistry); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IObjectFactoryImplementationTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IObjectFactoryImplementationTest.cs index 7fe576bb70..cd13519c83 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IObjectFactoryImplementationTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IObjectFactoryImplementationTest.cs @@ -29,7 +29,7 @@ public class IObjectFactoryImplementationTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/ITypeFactoryImplementationTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/ITypeFactoryImplementationTest.cs index 26fb56b21a..51c0d05af6 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/ITypeFactoryImplementationTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/ITypeFactoryImplementationTest.cs @@ -29,7 +29,7 @@ public class ITypeFactoryImplementationTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/MixinTypeCodeGeneration/LoadingFlushedCodeTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/MixinTypeCodeGeneration/LoadingFlushedCodeTest.cs index 444047b38a..cfaf6844be 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/MixinTypeCodeGeneration/LoadingFlushedCodeTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/MixinTypeCodeGeneration/LoadingFlushedCodeTest.cs @@ -39,7 +39,7 @@ public override void SetUp () // Use a dedicated pipeline to ensure that this test does not interfere with other tests. _savedPipeline = CreatePipeline(); var pipelineRegistry = new DefaultPipelineRegistry(_savedPipeline); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => pipelineRegistry); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs index fe96b5c0c5..a8ef1e6674 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs @@ -18,6 +18,7 @@ using System.Linq; using NUnit.Framework; using Remotion.Mixins.CodeGeneration.TypePipe; +using Remotion.Reflection; using Remotion.ServiceLocation; using Remotion.TypePipe; @@ -29,15 +30,15 @@ public class ParticipantRegistrationTest [Test] public void DefaultServiceLocator_ReturnsMixinParticipant () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var participants = serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Is.EqualTo(new[] { typeof(MixinParticipant) })); } [Test] - public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticpant () + public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticipant () { - var discoveryService = DefaultServiceConfigurationDiscoveryService.Create(); + var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); var participantService = discoveryService.GetDefaultConfiguration(typeof(IParticipant)); Assert.That(participantService, Is.Not.Null); diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs index e9472bab62..35fa0a233b 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/SetUpFixture.cs @@ -99,7 +99,7 @@ public void OneTimeSetUp () s_pipeline = defaultPipelineFactory.Create(pipelineName, settings, participants); #endif var pipelineRegistry = new DefaultPipelineRegistry(s_pipeline); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => pipelineRegistry); s_serviceLocatorScope = new ServiceLocatorScope(serviceLocator); } diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConcreteTypeMetadataImporterTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConcreteTypeMetadataImporterTest.cs index d3e29a775a..fb77414cfa 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConcreteTypeMetadataImporterTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConcreteTypeMetadataImporterTest.cs @@ -30,7 +30,7 @@ public class IConcreteTypeMetadataImporterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConfigurationProviderTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConfigurationProviderTest.cs index 2659b3fd7c..b83319fee4 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConfigurationProviderTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IConfigurationProviderTest.cs @@ -30,7 +30,7 @@ public class IConfigurationProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IMixinTypeProviderTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IMixinTypeProviderTest.cs index c4f31f3af5..e351a92556 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IMixinTypeProviderTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/IMixinTypeProviderTest.cs @@ -30,7 +30,7 @@ public class IMixinTypeProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/INextCallProxyGeneratorTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/INextCallProxyGeneratorTest.cs index e6c79f3ba1..2a52ad1a9e 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/INextCallProxyGeneratorTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/INextCallProxyGeneratorTest.cs @@ -29,7 +29,7 @@ public class INextCallProxyGeneratorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/ITargetTypeModifierTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/ITargetTypeModifierTest.cs index 997df56dac..3e2362ae15 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/ITargetTypeModifierTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/TypePipe/ITargetTypeModifierTest.cs @@ -30,7 +30,7 @@ public class ITargetTypeModifierTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/Definitions/Building/ITargetClassDefinitionBuilderTest.cs b/Remotion/Mixins/UnitTests/Core/Definitions/Building/ITargetClassDefinitionBuilderTest.cs index c850b774a6..cae0ff7752 100644 --- a/Remotion/Mixins/UnitTests/Core/Definitions/Building/ITargetClassDefinitionBuilderTest.cs +++ b/Remotion/Mixins/UnitTests/Core/Definitions/Building/ITargetClassDefinitionBuilderTest.cs @@ -13,7 +13,7 @@ public class ITargetClassDefinitionBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Mixins/UnitTests/Core/Definitions/DependencySorting/IMixinDefinitionSorterTest.cs b/Remotion/Mixins/UnitTests/Core/Definitions/DependencySorting/IMixinDefinitionSorterTest.cs index b0030b58b7..b449038ba2 100644 --- a/Remotion/Mixins/UnitTests/Core/Definitions/DependencySorting/IMixinDefinitionSorterTest.cs +++ b/Remotion/Mixins/UnitTests/Core/Definitions/DependencySorting/IMixinDefinitionSorterTest.cs @@ -13,7 +13,7 @@ public class IMixinDefinitionSorterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs index 74f023d5fa..4881879550 100644 --- a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs @@ -31,7 +31,7 @@ public class IBindablePropertReadAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs index 08335c8ff6..62d6957ff6 100644 --- a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs @@ -31,7 +31,7 @@ public class IBindablePropertyWriteAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IntegrationTest.cs b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IntegrationTest.cs index ea000b4438..8ab3f3ae1f 100644 --- a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IntegrationTest.cs +++ b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/IntegrationTest.cs @@ -45,7 +45,7 @@ public override void SetUp () _principalProviderStub.Setup(stub => stub.GetPrincipal()).Returns(_securityPrincipalStub.Object); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => _principalProviderStub.Object); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyReadAccessStrategyTest.cs b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyReadAccessStrategyTest.cs index 5849bf8599..d4344e84d4 100644 --- a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyReadAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyReadAccessStrategyTest.cs @@ -56,7 +56,7 @@ public override void SetUp () var principalProviderStub = new Mock(); principalProviderStub.Setup(_ => _.GetPrincipal()).Returns(_principalStub.Object); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => principalProviderStub.Object); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyWriteAccessStrategyTest.cs b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyWriteAccessStrategyTest.cs index b165731718..4a2d3be7ea 100644 --- a/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyWriteAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/Security.UnitTests/BindableObject/SecurityBasedBindablePropertyWriteAccessStrategyTest.cs @@ -56,7 +56,7 @@ public override void SetUp () var principalProviderStub = new Mock(); principalProviderStub.Setup(_ => _.GetPrincipal()).Returns(_principalStub.Object); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _securityProviderStub.Object); serviceLocator.RegisterSingle(() => principalProviderStub.Object); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceIntegrationTest.cs b/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceIntegrationTest.cs index 9143aa05a6..5c148130d3 100644 --- a/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceIntegrationTest.cs +++ b/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceIntegrationTest.cs @@ -39,7 +39,7 @@ public override void SetUp () { base.SetUp(); - _defaultServiceLocator = DefaultServiceLocator.Create(); + _defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _globalizationService = _defaultServiceLocator.GetInstance(); var bindableObjectClass = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(ClassWithResources)); _targetType = TypeAdapter.Create(bindableObjectClass.TargetType); diff --git a/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceTest.cs b/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceTest.cs index 5962be3fda..9bc8379ecc 100644 --- a/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceTest.cs +++ b/Remotion/ObjectBinding/UnitTests/BindableObject/BindableObjectGlobalizationServiceTest.cs @@ -29,7 +29,7 @@ public class BindableObjectGlobalizationServiceTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs b/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs index 9f941a8343..84c49db622 100644 --- a/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertReadAccessStrategyTest.cs @@ -29,7 +29,7 @@ public class IBindablePropertReadAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs b/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs index 37714690c2..16abe9981c 100644 --- a/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs +++ b/Remotion/ObjectBinding/UnitTests/BindableObject/IBindablePropertyWriteAccessStrategyTest.cs @@ -29,7 +29,7 @@ public class IBindablePropertyWriteAccessStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/UnitTests/BusinessObjectPropertyConstraints/IBusinessObjectPropertyConstraintProviderTest.cs b/Remotion/ObjectBinding/UnitTests/BusinessObjectPropertyConstraints/IBusinessObjectPropertyConstraintProviderTest.cs index 252d8393b7..583ae717af 100644 --- a/Remotion/ObjectBinding/UnitTests/BusinessObjectPropertyConstraints/IBusinessObjectPropertyConstraintProviderTest.cs +++ b/Remotion/ObjectBinding/UnitTests/BusinessObjectPropertyConstraints/IBusinessObjectPropertyConstraintProviderTest.cs @@ -29,7 +29,7 @@ public class IBusinessObjectPropertyConstraintProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Validation.UnitTests/IBusinessObjectPropertyConstraintProviderTest.cs b/Remotion/ObjectBinding/Validation.UnitTests/IBusinessObjectPropertyConstraintProviderTest.cs index 11dd2b6a36..2312db2cd4 100644 --- a/Remotion/ObjectBinding/Validation.UnitTests/IBusinessObjectPropertyConstraintProviderTest.cs +++ b/Remotion/ObjectBinding/Validation.UnitTests/IBusinessObjectPropertyConstraintProviderTest.cs @@ -30,7 +30,7 @@ public class IBusinessObjectPropertyConstraintProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Validation.UnitTests/IPropertyValidatorToBusinessObjectPropertyConstraintConverterTest.cs b/Remotion/ObjectBinding/Validation.UnitTests/IPropertyValidatorToBusinessObjectPropertyConstraintConverterTest.cs index e70ce5aab7..aa1587f3f1 100644 --- a/Remotion/ObjectBinding/Validation.UnitTests/IPropertyValidatorToBusinessObjectPropertyConstraintConverterTest.cs +++ b/Remotion/ObjectBinding/Validation.UnitTests/IPropertyValidatorToBusinessObjectPropertyConstraintConverterTest.cs @@ -29,7 +29,7 @@ public class IPropertyValidatorToBusinessObjectPropertyConstraintConverterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.Compatibility.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs b/Remotion/ObjectBinding/Web.Compatibility.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs index 2e568508d8..8280db07e6 100644 --- a/Remotion/ObjectBinding/Web.Compatibility.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs +++ b/Remotion/ObjectBinding/Web.Compatibility.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs @@ -29,7 +29,7 @@ public class IBusinessObjectBoundEditableWebControlValidatorConfigurationTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite.NetFramework/Global.asax.cs b/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite.NetFramework/Global.asax.cs index b85bf4c36d..87d3c39a01 100644 --- a/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite.NetFramework/Global.asax.cs +++ b/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite.NetFramework/Global.asax.cs @@ -101,7 +101,7 @@ private static void RegisterResourceVirtualPathProvider () private void SetRenderingFeatures (IRenderingFeatures renderingFeatures, ResourceTheme resourceTheme) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => renderingFeatures); serviceLocator.RegisterSingle(() => resourceTheme); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite/Global.asax.cs b/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite/Global.asax.cs index d9d9dc64e0..11fd8ef22e 100644 --- a/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite/Global.asax.cs +++ b/Remotion/ObjectBinding/Web.Development.WebTesting.TestSite/Global.asax.cs @@ -118,7 +118,7 @@ private static void RegisterResourceVirtualPathProvider () private void SetRenderingFeatures (IRenderingFeatures renderingFeatures, ResourceTheme resourceTheme) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => renderingFeatures); serviceLocator.RegisterSingle(() => resourceTheme); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/Remotion/ObjectBinding/Web.Test/Global.asax.cs b/Remotion/ObjectBinding/Web.Test/Global.asax.cs index 00eb00e22d..6a915bf444 100644 --- a/Remotion/ObjectBinding/Web.Test/Global.asax.cs +++ b/Remotion/ObjectBinding/Web.Test/Global.asax.cs @@ -61,7 +61,7 @@ protected void Application_Start (Object sender, EventArgs e) string objectPath = Server.MapPath("~/objects"); if (!Directory.Exists(objectPath)) Directory.CreateDirectory(objectPath); - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); //defaultServiceLocator.RegisterSingle(() => new ResourceTheme.NovaGray()); diff --git a/Remotion/ObjectBinding/Web.UnitTests/SetUpFixture.cs b/Remotion/ObjectBinding/Web.UnitTests/SetUpFixture.cs index dd7ba81e45..f641473a02 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/SetUpFixture.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/SetUpFixture.cs @@ -41,7 +41,7 @@ public void OneTimeSetUp () { XmlNodeExtensions.Helper = new HtmlHelper(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => new FakeInfrastructureResourceUrlFactory()); serviceLocator.RegisterSingle(() => new FakeScriptUtility()); serviceLocator.RegisterSingle(() => new FakeResourceUrlFactory()); diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueRendererTest.cs index e067db9277..2ca2938365 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocBooleanValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueResourceSetFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueResourceSetFactoryTest.cs index 307f5932fb..8a832749fb 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueResourceSetFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocBooleanValueResourceSetFactoryTest.cs @@ -30,7 +30,7 @@ public class IBocBooleanValueResourceSetFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocCheckBoxRendererFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocCheckBoxRendererFactoryTest.cs index 7411c12a75..a9edcef93d 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocCheckBoxRendererFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Rendering/IBocCheckBoxRendererFactoryTest.cs @@ -29,7 +29,7 @@ public class IBocCheckBoxRendererFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocBooleanValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocBooleanValueValidatorFactoryTest.cs index 8ecc035f99..da082579fc 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocBooleanValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocBooleanValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocBooleanValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocCheckBoxValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocCheckBoxValidatorFactoryTest.cs index f63fb63cc7..476f269a80 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocCheckBoxValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocBooleanValueImplementation/Validation/IBocCheckBoxValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocCheckBoxValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/IDateTimeFormatterTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/IDateTimeFormatterTest.cs index 52e23e1685..b73efca9af 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/IDateTimeFormatterTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/IDateTimeFormatterTest.cs @@ -29,7 +29,7 @@ public class IDateTimeFormatterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Rendering/IBocDateTimeValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Rendering/IBocDateTimeValueRendererTest.cs index 36c199b4cb..6e6efb2b28 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Rendering/IBocDateTimeValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Rendering/IBocDateTimeValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocDateTimeValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Validation/IBocDateTimeValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Validation/IBocDateTimeValueValidatorFactoryTest.cs index e963b9cca0..6d3c9db8a8 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Validation/IBocDateTimeValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocDateTimeValueImplementation/Validation/IBocDateTimeValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocDateTimeValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Rendering/IBocEnumValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Rendering/IBocEnumValueRendererTest.cs index 3b05354ab9..ea4e1e8073 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Rendering/IBocEnumValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Rendering/IBocEnumValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocEnumValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Validation/IBocEnumValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Validation/IBocEnumValueValidatorFactoryTest.cs index ace21506a7..7a497e8383 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Validation/IBocEnumValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocEnumValueImplementation/Validation/IBocEnumValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocEnumValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererArrayBuilderTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererArrayBuilderTest.cs index cff232b777..f65a31370a 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererArrayBuilderTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererArrayBuilderTest.cs @@ -38,7 +38,7 @@ public class BocColumnRendererArrayBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _stubColumnDefinition = new StubColumnDefinition(); _stubValueColumnDefinition = new StubValueColumnDefinition(); } diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererBaseTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererBaseTest.cs index 4296fce5a6..220c6c411a 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererBaseTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocColumnRendererBaseTest.cs @@ -70,7 +70,7 @@ public void SetUp () [Test] public void IsNull () { - Assert.That(Column.GetRenderer(DefaultServiceLocator.Create()).IsNull, Is.False); + Assert.That(Column.GetRenderer(DefaultServiceLocator.CreateWithBootstrappedServices()).IsNull, Is.False); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocListCssClassDefinitionTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocListCssClassDefinitionTest.cs index dae66bbc0f..6b82316dbf 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocListCssClassDefinitionTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/BocListCssClassDefinitionTest.cs @@ -29,7 +29,7 @@ public class BocListCssClassDefinitionTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCommandColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCommandColumnRendererTest.cs index c252b02a5d..ecb0b59093 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCommandColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCommandColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocCommandColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCompoundColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCompoundColumnRendererTest.cs index 885212659e..e47fefdde9 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCompoundColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCompoundColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocCompoundColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCustomColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCustomColumnRendererTest.cs index 4e4f3b8a33..6f3e9ba22f 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCustomColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocCustomColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocCustomColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocDropDownMenuColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocDropDownMenuColumnRendererTest.cs index 9f70b76778..aecbb28678 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocDropDownMenuColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocDropDownMenuColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocDropDownMenuColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocIndexColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocIndexColumnRendererTest.cs index 6e592d1572..fc9e05d618 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocIndexColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocIndexColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocIndexColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListMenuBlockRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListMenuBlockRendererTest.cs index c04d0956b8..642711e463 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListMenuBlockRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListMenuBlockRendererTest.cs @@ -29,7 +29,7 @@ public class IBocListMenuBlockRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListNavigationBlockRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListNavigationBlockRendererTest.cs index 04466aff41..dc935b323d 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListNavigationBlockRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListNavigationBlockRendererTest.cs @@ -29,7 +29,7 @@ public class IBocListNavigationBlockRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListRendererTest.cs index 03274ed0f2..0730313694 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListRendererTest.cs @@ -29,7 +29,7 @@ public class IBocListRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListTableBlockRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListTableBlockRendererTest.cs index 501b49f996..0cca5bc4e5 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListTableBlockRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocListTableBlockRendererTest.cs @@ -29,7 +29,7 @@ public class IBocListTableBlockRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowEditModeColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowEditModeColumnRendererTest.cs index 18729d97b0..0d9e9ae5c0 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowEditModeColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowEditModeColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocRowEditModeColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowRendererTest.cs index 4ee56852a0..5c2f3d347c 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocRowRendererTest.cs @@ -29,7 +29,7 @@ public class IBocRowRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSelectorColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSelectorColumnRendererTest.cs index e5e4325f7f..2d59ddc93c 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSelectorColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSelectorColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocSelectorColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSimpleColumnRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSimpleColumnRendererTest.cs index 21d83abb5d..4dfe3fb87d 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSimpleColumnRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IBocSimpleColumnRendererTest.cs @@ -29,7 +29,7 @@ public class IBocSimpleColumnRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IsColumnVisible_BocColumnRendererArrayBuilderTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IsColumnVisible_BocColumnRendererArrayBuilderTest.cs index 0304201c94..7e24d896f6 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IsColumnVisible_BocColumnRendererArrayBuilderTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Rendering/IsColumnVisible_BocColumnRendererArrayBuilderTest.cs @@ -33,7 +33,7 @@ public class IsColumnVisible_BocColumnRendererArrayBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Validation/IBocListValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Validation/IBocListValidatorFactoryTest.cs index 7fe585cda8..57a32a7258 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Validation/IBocListValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocListImplementation/Validation/IBocListValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocListValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocAutoCompleteReferenceValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocAutoCompleteReferenceValueRendererTest.cs index 3201a64e39..77e5cd5ffa 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocAutoCompleteReferenceValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocAutoCompleteReferenceValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocAutoCompleteReferenceValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocReferenceValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocReferenceValueRendererTest.cs index b644ee587f..c8d1b85242 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocReferenceValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Rendering/IBocReferenceValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocReferenceValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocAutoCompleteReferenceValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocAutoCompleteReferenceValueValidatorFactoryTest.cs index 4a202e63fa..4ddd750fce 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocAutoCompleteReferenceValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocAutoCompleteReferenceValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocAutoCompleteReferenceValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocReferenceValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocReferenceValueValidatorFactoryTest.cs index 7fc9f20e6c..c2bfb9a540 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocReferenceValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocReferenceValueImplementation/Validation/IBocReferenceValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocReferenceValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocMultilineTextValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocMultilineTextValueRendererTest.cs index c5457608fb..3cb20f85e9 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocMultilineTextValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocMultilineTextValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocMultilineTextValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocTextValueRendererTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocTextValueRendererTest.cs index 537898ae2a..3d0459c825 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocTextValueRendererTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueImplementation/Rendering/IBocTextValueRendererTest.cs @@ -29,7 +29,7 @@ public class IBocTextValueRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocMultilineTextValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocMultilineTextValueValidatorFactoryTest.cs index adeb3dc8f7..8c20c6c671 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocMultilineTextValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocMultilineTextValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocMultilineTextValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocTextValueValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocTextValueValidatorFactoryTest.cs index c3d0751ad9..02d6547c87 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocTextValueValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/BocTextValueTests/Validation/IBocTextValueValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class IBocTextValueValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IBusinessObjectReferenceDataSourceControlValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IBusinessObjectReferenceDataSourceControlValidatorFactoryTest.cs index b3560e8321..4d7fc274a1 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IBusinessObjectReferenceDataSourceControlValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IBusinessObjectReferenceDataSourceControlValidatorFactoryTest.cs @@ -15,7 +15,7 @@ public class IBusinessObjectReferenceDataSourceControlValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IUserControlBindingValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IUserControlBindingValidatorFactoryTest.cs index 00673eee3f..8ab2d89122 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IUserControlBindingValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/IUserControlBindingValidatorFactoryTest.cs @@ -31,7 +31,7 @@ public class IUserControlBindingValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocListValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocListValidatorFactoryTest.cs index 4de3b195be..6364ba1227 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocListValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocListValidatorFactoryTest.cs @@ -19,7 +19,7 @@ public class ValidationBocListValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocReferenceDataSourceValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocReferenceDataSourceValidatorFactoryTest.cs index d601786e45..50b7d8a883 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocReferenceDataSourceValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBocReferenceDataSourceValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class ValidationBocReferenceDataSourceValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBusinessObjectBoundEditableWebControlValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBusinessObjectBoundEditableWebControlValidatorFactoryTest.cs index 2f1e09bae3..f06aab8305 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBusinessObjectBoundEditableWebControlValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationBusinessObjectBoundEditableWebControlValidatorFactoryTest.cs @@ -31,7 +31,7 @@ public class ValidationBusinessObjectBoundEditableWebControlValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationUserControlBindingValidatorFactoryTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationUserControlBindingValidatorFactoryTest.cs index 94b2196a71..aaf89cd24c 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationUserControlBindingValidatorFactoryTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/Factories/ValidationUserControlBindingValidatorFactoryTest.cs @@ -17,7 +17,7 @@ public class ValidationUserControlBindingValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBocListValidationFailureHandlerTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBocListValidationFailureHandlerTest.cs index a045ebdc82..0d608b8b36 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBocListValidationFailureHandlerTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBocListValidationFailureHandlerTest.cs @@ -13,7 +13,7 @@ public class IBocListValidationFailureHandlerTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs index 2e026eb862..c0e9961fb1 100644 --- a/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs +++ b/Remotion/ObjectBinding/Web.UnitTests/UI/Controls/Validation/IBusinessObjectBoundEditableWebControlValidatorConfigurationTest.cs @@ -29,7 +29,7 @@ public class IBusinessObjectBoundEditableWebControlValidatorConfigurationTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/IFunctionalSecurityStrategyTest.cs b/Remotion/Security/UnitTests/IFunctionalSecurityStrategyTest.cs index e8316e9558..f3405d6527 100644 --- a/Remotion/Security/UnitTests/IFunctionalSecurityStrategyTest.cs +++ b/Remotion/Security/UnitTests/IFunctionalSecurityStrategyTest.cs @@ -28,7 +28,7 @@ public class IFunctionalSecurityStrategyTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/IPrincipalProviderTest.cs b/Remotion/Security/UnitTests/IPrincipalProviderTest.cs index deb8e678f0..7a364e62e4 100644 --- a/Remotion/Security/UnitTests/IPrincipalProviderTest.cs +++ b/Remotion/Security/UnitTests/IPrincipalProviderTest.cs @@ -28,7 +28,7 @@ public class IPrincipalProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/ISecurityProviderTest.cs b/Remotion/Security/UnitTests/ISecurityProviderTest.cs index 334cac1670..238e46ee44 100644 --- a/Remotion/Security/UnitTests/ISecurityProviderTest.cs +++ b/Remotion/Security/UnitTests/ISecurityProviderTest.cs @@ -28,7 +28,7 @@ public class ISecurityProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/Metadata/IMemberResolverTest.cs b/Remotion/Security/UnitTests/Metadata/IMemberResolverTest.cs index fa2220c6e8..872cf09179 100644 --- a/Remotion/Security/UnitTests/Metadata/IMemberResolverTest.cs +++ b/Remotion/Security/UnitTests/Metadata/IMemberResolverTest.cs @@ -29,7 +29,7 @@ public class IMemberResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/Metadata/IPermissionProviderTest.cs b/Remotion/Security/UnitTests/Metadata/IPermissionProviderTest.cs index 2b797c9ab6..190db97607 100644 --- a/Remotion/Security/UnitTests/Metadata/IPermissionProviderTest.cs +++ b/Remotion/Security/UnitTests/Metadata/IPermissionProviderTest.cs @@ -29,7 +29,7 @@ public class IPermissionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Security/UnitTests/SecurityClientTests/CreateSecurityClientFromConfiguration.cs b/Remotion/Security/UnitTests/SecurityClientTests/CreateSecurityClientFromConfiguration.cs index e643a45b49..4261e09f61 100644 --- a/Remotion/Security/UnitTests/SecurityClientTests/CreateSecurityClientFromConfiguration.cs +++ b/Remotion/Security/UnitTests/SecurityClientTests/CreateSecurityClientFromConfiguration.cs @@ -42,7 +42,7 @@ public void SetUp () _stubMemberResolver = new Mock(); _stubFunctionalSecurityStrategy = new Mock(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _stubSecurityProvider.Object); serviceLocator.RegisterSingle(() => _stubPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _stubPermissionProvider.Object); diff --git a/Remotion/Validation/Globalization.UnitTests/IValidationMessageFactoryTest.cs b/Remotion/Validation/Globalization.UnitTests/IValidationMessageFactoryTest.cs index 945a59199f..2e2f6ac938 100644 --- a/Remotion/Validation/Globalization.UnitTests/IValidationMessageFactoryTest.cs +++ b/Remotion/Validation/Globalization.UnitTests/IValidationMessageFactoryTest.cs @@ -30,7 +30,7 @@ public class IValidationMessageFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/IntegrationTests/IntegrationTestBase.cs b/Remotion/Validation/IntegrationTests/IntegrationTestBase.cs index a783616946..bfc67cb47b 100644 --- a/Remotion/Validation/IntegrationTests/IntegrationTestBase.cs +++ b/Remotion/Validation/IntegrationTests/IntegrationTestBase.cs @@ -38,7 +38,7 @@ public abstract class IntegrationTestBase [SetUp] public virtual void SetUp () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); MemoryAppender = new MemoryAppender(); diff --git a/Remotion/Validation/Mixins.IntegrationTests/IntegrationTestBase.cs b/Remotion/Validation/Mixins.IntegrationTests/IntegrationTestBase.cs index 91d09343de..fbaffebd14 100644 --- a/Remotion/Validation/Mixins.IntegrationTests/IntegrationTestBase.cs +++ b/Remotion/Validation/Mixins.IntegrationTests/IntegrationTestBase.cs @@ -36,7 +36,7 @@ public abstract class IntegrationTestBase [SetUp] public virtual void SetUp () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); MemoryAppender = new MemoryAppender(); diff --git a/Remotion/Validation/Mixins.UnitTests/Implementation/IInvolvedTypeProviderTest.cs b/Remotion/Validation/Mixins.UnitTests/Implementation/IInvolvedTypeProviderTest.cs index 4c1b15ddf4..fd87488bc4 100644 --- a/Remotion/Validation/Mixins.UnitTests/Implementation/IInvolvedTypeProviderTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Implementation/IInvolvedTypeProviderTest.cs @@ -30,7 +30,7 @@ public class IInvolvedTypeProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidatedTypeResolverTest.cs b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidatedTypeResolverTest.cs index e1306bdf02..2fd59ee2a0 100644 --- a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidatedTypeResolverTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidatedTypeResolverTest.cs @@ -30,7 +30,7 @@ public class IValidatedTypeResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs index d44be29df9..927589dbd6 100644 --- a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs @@ -31,7 +31,7 @@ public class IValidationRuleCollectorValidatorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationTypeFilterTest.cs b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationTypeFilterTest.cs index 32e9cc515a..fba1a9c42b 100644 --- a/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationTypeFilterTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Implementation/IValidationTypeFilterTest.cs @@ -31,7 +31,7 @@ public class IValidationTypeFilterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/Mixins.UnitTests/Providers/IValidationRuleCollectorProviderTest.cs b/Remotion/Validation/Mixins.UnitTests/Providers/IValidationRuleCollectorProviderTest.cs index 4f98d2f253..76456ed8c8 100644 --- a/Remotion/Validation/Mixins.UnitTests/Providers/IValidationRuleCollectorProviderTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Providers/IValidationRuleCollectorProviderTest.cs @@ -31,7 +31,7 @@ public class IValidationRuleCollectorProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/IValidatorProviderTest.cs b/Remotion/Validation/UnitTests/IValidatorProviderTest.cs index 464f9e2a40..4cfd3ae266 100644 --- a/Remotion/Validation/UnitTests/IValidatorProviderTest.cs +++ b/Remotion/Validation/UnitTests/IValidatorProviderTest.cs @@ -28,7 +28,7 @@ public class IValidatorProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IInvolvedTypeProviderTest.cs b/Remotion/Validation/UnitTests/Implementation/IInvolvedTypeProviderTest.cs index f0f52ec6b5..97bf75fda8 100644 --- a/Remotion/Validation/UnitTests/Implementation/IInvolvedTypeProviderTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IInvolvedTypeProviderTest.cs @@ -29,7 +29,7 @@ public class IInvolvedTypeProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidatedTypeResolverTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidatedTypeResolverTest.cs index 820bf69031..1dffe851d8 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidatedTypeResolverTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidatedTypeResolverTest.cs @@ -29,7 +29,7 @@ public class IValidatedTypeResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidationMessageFactoryTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidationMessageFactoryTest.cs index e656d2dae6..8eddf3203a 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidationMessageFactoryTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidationMessageFactoryTest.cs @@ -30,7 +30,7 @@ public class IValidationMessageFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorReflectorTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorReflectorTest.cs index 117cf721e0..51a701f84f 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorReflectorTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorReflectorTest.cs @@ -29,7 +29,7 @@ public class IValidationRuleCollectorReflectorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs index f88d7e2215..1e48ea4cb5 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidationRuleCollectorValidatorTest.cs @@ -30,7 +30,7 @@ public class IValidationRuleCollectorValidatorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidationTypeFilterTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidationTypeFilterTest.cs index 2a3429363c..868b5e92c8 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidationTypeFilterTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidationTypeFilterTest.cs @@ -30,7 +30,7 @@ public class IValidationTypeFilterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidatorBuilderTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidatorBuilderTest.cs index e62dc3d7b4..3a796827b1 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidatorBuilderTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidatorBuilderTest.cs @@ -30,7 +30,7 @@ public class IValidatorBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/IValidatorFormatterTest.cs b/Remotion/Validation/UnitTests/Implementation/IValidatorFormatterTest.cs index 2fc37a2758..b829a24903 100644 --- a/Remotion/Validation/UnitTests/Implementation/IValidatorFormatterTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/IValidatorFormatterTest.cs @@ -29,7 +29,7 @@ public class IValidatorFormatterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Implementation/ValidatorBuilderSerializationDecoratorTest.cs b/Remotion/Validation/UnitTests/Implementation/ValidatorBuilderSerializationDecoratorTest.cs index 5254d3c76a..fe0e0cfa12 100644 --- a/Remotion/Validation/UnitTests/Implementation/ValidatorBuilderSerializationDecoratorTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/ValidatorBuilderSerializationDecoratorTest.cs @@ -20,7 +20,7 @@ public IValidator BuildValidator (Type validatedType) [Test] public void SerializeAndDeserializeReturnsSameInstance () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.Register( new ServiceConfigurationEntry( typeof(IValidatorBuilder), diff --git a/Remotion/Validation/UnitTests/Merging/IObjectValidatorExtractorFactoryTest.cs b/Remotion/Validation/UnitTests/Merging/IObjectValidatorExtractorFactoryTest.cs index d02a9bada4..593d1ad8c8 100644 --- a/Remotion/Validation/UnitTests/Merging/IObjectValidatorExtractorFactoryTest.cs +++ b/Remotion/Validation/UnitTests/Merging/IObjectValidatorExtractorFactoryTest.cs @@ -29,7 +29,7 @@ public class IObjectValidatorExtractorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Merging/IPropertyValidatorExtractorFactoryTest.cs b/Remotion/Validation/UnitTests/Merging/IPropertyValidatorExtractorFactoryTest.cs index 2a5bf14b14..c01be01392 100644 --- a/Remotion/Validation/UnitTests/Merging/IPropertyValidatorExtractorFactoryTest.cs +++ b/Remotion/Validation/UnitTests/Merging/IPropertyValidatorExtractorFactoryTest.cs @@ -29,7 +29,7 @@ public class IPropertyValidatorExtractorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Merging/IValidationRuleCollectorMergerTest.cs b/Remotion/Validation/UnitTests/Merging/IValidationRuleCollectorMergerTest.cs index 191accb35a..ba957fc0e3 100644 --- a/Remotion/Validation/UnitTests/Merging/IValidationRuleCollectorMergerTest.cs +++ b/Remotion/Validation/UnitTests/Merging/IValidationRuleCollectorMergerTest.cs @@ -30,7 +30,7 @@ public class IValidationRuleCollectorMergerTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/MetaValidation/IObjectMetaValidationRuleValidatorFactoryTest.cs b/Remotion/Validation/UnitTests/MetaValidation/IObjectMetaValidationRuleValidatorFactoryTest.cs index e115dfbacc..341822f56b 100644 --- a/Remotion/Validation/UnitTests/MetaValidation/IObjectMetaValidationRuleValidatorFactoryTest.cs +++ b/Remotion/Validation/UnitTests/MetaValidation/IObjectMetaValidationRuleValidatorFactoryTest.cs @@ -29,7 +29,7 @@ public class IObjectMetaValidationRuleValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/MetaValidation/IPropertyMetaValidationRuleValidatorFactoryTest.cs b/Remotion/Validation/UnitTests/MetaValidation/IPropertyMetaValidationRuleValidatorFactoryTest.cs index 4016c9d355..b3440b2152 100644 --- a/Remotion/Validation/UnitTests/MetaValidation/IPropertyMetaValidationRuleValidatorFactoryTest.cs +++ b/Remotion/Validation/UnitTests/MetaValidation/IPropertyMetaValidationRuleValidatorFactoryTest.cs @@ -29,7 +29,7 @@ public class IPropertyMetaValidationRuleValidatorFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/MetaValidation/ISystemPropertyMetaValidationRuleProviderFactoryTest.cs b/Remotion/Validation/UnitTests/MetaValidation/ISystemPropertyMetaValidationRuleProviderFactoryTest.cs index 1dcfdb5780..1855f03fb8 100644 --- a/Remotion/Validation/UnitTests/MetaValidation/ISystemPropertyMetaValidationRuleProviderFactoryTest.cs +++ b/Remotion/Validation/UnitTests/MetaValidation/ISystemPropertyMetaValidationRuleProviderFactoryTest.cs @@ -29,7 +29,7 @@ public class ISystemPropertyMetaValidationRuleProviderFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Validation/UnitTests/Providers/IValidationRuleCollectorProviderTest.cs b/Remotion/Validation/UnitTests/Providers/IValidationRuleCollectorProviderTest.cs index 0335cde40a..3d4ddc572f 100644 --- a/Remotion/Validation/UnitTests/Providers/IValidationRuleCollectorProviderTest.cs +++ b/Remotion/Validation/UnitTests/Providers/IValidationRuleCollectorProviderTest.cs @@ -30,7 +30,7 @@ public class IValidationRuleCollectorProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/Development.WebTesting.TestSite.NetFramework/Global.asax.cs b/Remotion/Web/Development.WebTesting.TestSite.NetFramework/Global.asax.cs index ccfae3769d..223bf28056 100644 --- a/Remotion/Web/Development.WebTesting.TestSite.NetFramework/Global.asax.cs +++ b/Remotion/Web/Development.WebTesting.TestSite.NetFramework/Global.asax.cs @@ -67,7 +67,7 @@ private static void RegisterResourceVirtualPathProvider () private void SetRenderingFeatures (IRenderingFeatures renderingFeatures, ResourceTheme resourceTheme) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => renderingFeatures); serviceLocator.RegisterSingle(() => resourceTheme); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/Remotion/Web/Development.WebTesting.TestSite/Global.asax.cs b/Remotion/Web/Development.WebTesting.TestSite/Global.asax.cs index 7f052c50d1..ca8f520bf5 100644 --- a/Remotion/Web/Development.WebTesting.TestSite/Global.asax.cs +++ b/Remotion/Web/Development.WebTesting.TestSite/Global.asax.cs @@ -67,7 +67,7 @@ private static void RegisterResourceVirtualPathProvider () private void SetRenderingFeatures (IRenderingFeatures renderingFeatures, ResourceTheme resourceTheme) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => renderingFeatures); serviceLocator.RegisterSingle(() => resourceTheme); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/Remotion/Web/Test.NetFramework/Global.asax.cs b/Remotion/Web/Test.NetFramework/Global.asax.cs index 1a939f64ae..8063ed41cf 100644 --- a/Remotion/Web/Test.NetFramework/Global.asax.cs +++ b/Remotion/Web/Test.NetFramework/Global.asax.cs @@ -32,7 +32,7 @@ public class Global : HttpApplication protected void Application_Start (Object sender, EventArgs e) { - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); ServiceLocator.SetLocatorProvider(() => defaultServiceLocator); LogManager.Initialize(); diff --git a/Remotion/Web/Test/Global.asax.cs b/Remotion/Web/Test/Global.asax.cs index 4ee849f253..be05ad4509 100644 --- a/Remotion/Web/Test/Global.asax.cs +++ b/Remotion/Web/Test/Global.asax.cs @@ -33,7 +33,7 @@ public class Global : HttpApplication protected void Application_Start (Object sender, EventArgs e) { - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var wxeLifetimeManagementSettings = WxeLifetimeManagementSettings.Create(functionTimeout: 16, refreshInterval: 5); defaultServiceLocator.RegisterSingle(() => wxeLifetimeManagementSettings); diff --git a/Remotion/Web/UnitTests/Core/Compilation/IControlBuilderCodeProcessorTest.cs b/Remotion/Web/UnitTests/Core/Compilation/IControlBuilderCodeProcessorTest.cs index b8a6fb189a..f169a4f072 100644 --- a/Remotion/Web/UnitTests/Core/Compilation/IControlBuilderCodeProcessorTest.cs +++ b/Remotion/Web/UnitTests/Core/Compilation/IControlBuilderCodeProcessorTest.cs @@ -29,7 +29,7 @@ public class IControlBuilderCodeProcessorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Context/ISafeContextStorageProviderTest.cs b/Remotion/Web/UnitTests/Core/Context/ISafeContextStorageProviderTest.cs index 005dcf8ed7..479c15656c 100644 --- a/Remotion/Web/UnitTests/Core/Context/ISafeContextStorageProviderTest.cs +++ b/Remotion/Web/UnitTests/Core/Context/ISafeContextStorageProviderTest.cs @@ -16,7 +16,7 @@ public class ISafeContextStorageProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/IWxeLifetimeManagementSettingsTest.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/IWxeLifetimeManagementSettingsTest.cs index 7a3db4978e..2fb062c067 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/IWxeLifetimeManagementSettingsTest.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/IWxeLifetimeManagementSettingsTest.cs @@ -13,7 +13,7 @@ public class IWxeLifetimeManagementSettingsTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileFinderTest.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileFinderTest.cs index acb90ed636..8583e97d45 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileFinderTest.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileFinderTest.cs @@ -28,7 +28,7 @@ public class IUrlMappingFileFinderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileLoader.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileLoader.cs index 6d91604fcc..d721cf29d3 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileLoader.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/IUrlMappingFileLoader.cs @@ -28,7 +28,7 @@ public class IUrlMappingFileLoaderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/UrlMappingConfigurationTest.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/UrlMappingConfigurationTest.cs index 2a79ad7a16..18a13f0026 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/UrlMappingConfigurationTest.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/UrlMapping/UrlMappingConfigurationTest.cs @@ -82,7 +82,7 @@ public void GetCurrentMapping () UrlMappingConfiguration.SetCurrent(null!); var fileFinder = BaseDirectoryBasedUrlMappingFileFinder.Create(@"Res\UrlMapping.xml"); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => fileFinder); using var _ = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeContextTest.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeContextTest.cs index 459dfeca8d..d3db866531 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeContextTest.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeContextTest.cs @@ -296,7 +296,7 @@ private ServiceLocatorScope CreateWxeUrlSettingsScopeWithDefaultWxeHandler (int { var wxeUrlSettings = WxeUrlSettings.Create(maxLength, "WxeHandler.ashx"); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => wxeUrlSettings); return new ServiceLocatorScope(serviceLocator); } diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeFunctionTests/Security.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeFunctionTests/Security.cs index 0c62893d56..e0ce1d5e21 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeFunctionTests/Security.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeFunctionTests/Security.cs @@ -39,7 +39,7 @@ public void SetUp () _wxeContext = WxeContextFactory.Create(rootFunction); _mockWxeSecurityAdapter = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(() => _mockWxeSecurityAdapter.Object); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); } @@ -86,7 +86,7 @@ public void HasStatelessAccessDenied () [Test] public void HasStatelessAccessGrantedWithoutWxeSecurityProvider () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); using (new ServiceLocatorScope(serviceLocator)) { diff --git a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeUrlSettingsTest.cs b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeUrlSettingsTest.cs index 553aab7a2f..f39117aca8 100644 --- a/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeUrlSettingsTest.cs +++ b/Remotion/Web/UnitTests/Core/ExecutionEngine/WxeUrlSettingsTest.cs @@ -14,7 +14,7 @@ public class WxeUrlSettingsTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/IResourceUrlFactoryTest.cs b/Remotion/Web/UnitTests/Core/IResourceUrlFactoryTest.cs index a7115e7945..b1828aec57 100644 --- a/Remotion/Web/UnitTests/Core/IResourceUrlFactoryTest.cs +++ b/Remotion/Web/UnitTests/Core/IResourceUrlFactoryTest.cs @@ -32,7 +32,7 @@ public void SetUp () { Console.WriteLine(typeof(HttpContext).AssemblyQualifiedName); - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Infrastructure/IBuildManagerTest.cs b/Remotion/Web/UnitTests/Core/Infrastructure/IBuildManagerTest.cs index 0eee0d757f..07c1c6c876 100644 --- a/Remotion/Web/UnitTests/Core/Infrastructure/IBuildManagerTest.cs +++ b/Remotion/Web/UnitTests/Core/Infrastructure/IBuildManagerTest.cs @@ -29,7 +29,7 @@ public class IBuildManagerTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Infrastructure/IHttpContextProviderTest.cs b/Remotion/Web/UnitTests/Core/Infrastructure/IHttpContextProviderTest.cs index e06dbb418a..73624f0b66 100644 --- a/Remotion/Web/UnitTests/Core/Infrastructure/IHttpContextProviderTest.cs +++ b/Remotion/Web/UnitTests/Core/Infrastructure/IHttpContextProviderTest.cs @@ -29,7 +29,7 @@ public class IHttpContextProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Infrastructure/IInfrastructureResourceUrlFactoryTest.cs b/Remotion/Web/UnitTests/Core/Infrastructure/IInfrastructureResourceUrlFactoryTest.cs index 46216bf66b..9718712b62 100644 --- a/Remotion/Web/UnitTests/Core/Infrastructure/IInfrastructureResourceUrlFactoryTest.cs +++ b/Remotion/Web/UnitTests/Core/Infrastructure/IInfrastructureResourceUrlFactoryTest.cs @@ -29,7 +29,7 @@ public class IInfrastructureResourceUrlFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Resources/ICacheableResourcePathBuilderTest.cs b/Remotion/Web/UnitTests/Core/Resources/ICacheableResourcePathBuilderTest.cs index 7376502b19..e36f89d9b4 100644 --- a/Remotion/Web/UnitTests/Core/Resources/ICacheableResourcePathBuilderTest.cs +++ b/Remotion/Web/UnitTests/Core/Resources/ICacheableResourcePathBuilderTest.cs @@ -29,7 +29,7 @@ public class ICacheableResourcePathBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Resources/IResourcePathBuilderTest.cs b/Remotion/Web/UnitTests/Core/Resources/IResourcePathBuilderTest.cs index baa984463c..d511c32d2a 100644 --- a/Remotion/Web/UnitTests/Core/Resources/IResourcePathBuilderTest.cs +++ b/Remotion/Web/UnitTests/Core/Resources/IResourcePathBuilderTest.cs @@ -29,7 +29,7 @@ public class IResourcePathBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Resources/IStaticResourceCacheKeyProviderTest.cs b/Remotion/Web/UnitTests/Core/Resources/IStaticResourceCacheKeyProviderTest.cs index 4b25869fe4..f0bdf3147c 100644 --- a/Remotion/Web/UnitTests/Core/Resources/IStaticResourceCacheKeyProviderTest.cs +++ b/Remotion/Web/UnitTests/Core/Resources/IStaticResourceCacheKeyProviderTest.cs @@ -29,7 +29,7 @@ public class IStaticResourceCacheKeyProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Resources/ResourceRootTest.cs b/Remotion/Web/UnitTests/Core/Resources/ResourceRootTest.cs index a09c4834b6..028fd3e7da 100644 --- a/Remotion/Web/UnitTests/Core/Resources/ResourceRootTest.cs +++ b/Remotion/Web/UnitTests/Core/Resources/ResourceRootTest.cs @@ -10,7 +10,7 @@ public class ResourceRootTest [Test] public void GetInstance_Once () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var factory = serviceLocator.GetInstance(); @@ -21,7 +21,7 @@ public void GetInstance_Once () [Test] public void GetInstance_Twice_ReturnsSameInstance () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var factory1 = serviceLocator.GetInstance(); var factory2 = serviceLocator.GetInstance(); diff --git a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/IWxeSecurityAdapterTest.cs b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/IWxeSecurityAdapterTest.cs index 8982dde749..ff097f8b32 100644 --- a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/IWxeSecurityAdapterTest.cs +++ b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/IWxeSecurityAdapterTest.cs @@ -31,7 +31,7 @@ public class IWxeSecurityAdapterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromConstructor.cs b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromConstructor.cs index 63ee2ea727..3859a0e3ea 100644 --- a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromConstructor.cs +++ b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromConstructor.cs @@ -63,7 +63,7 @@ public void SetUp () _mockPrincipalProvider.Setup(_ => _.GetPrincipal()).Returns(_stubUser.Object).Verifiable(); _mockFunctionalSecurityStrategy = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _mockPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _mockFunctionalSecurityStrategy.Object); diff --git a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromInstanceMethod.cs b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromInstanceMethod.cs index b026da308a..be4d724a99 100644 --- a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromInstanceMethod.cs +++ b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromInstanceMethod.cs @@ -66,7 +66,7 @@ public void SetUp () _mockObjectSecurityStrategy = new Mock(MockBehavior.Strict); _mockFunctionalSecurityStrategy = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _mockPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _mockFunctionalSecurityStrategy.Object); diff --git a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromStaticMethod.cs b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromStaticMethod.cs index 0c9a8d1df8..f7cbc20b1a 100644 --- a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromStaticMethod.cs +++ b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithPermissionsFromStaticMethod.cs @@ -64,7 +64,7 @@ public void SetUp () _mockFunctionalSecurityStrategy = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _mockPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _mockFunctionalSecurityStrategy.Object); diff --git a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithoutPermissionAttribute.cs b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithoutPermissionAttribute.cs index b4a8d5548c..0cef4254fe 100644 --- a/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithoutPermissionAttribute.cs +++ b/Remotion/Web/UnitTests/Core/Security/ExecutionEngine/WxeSecurityAdapterTestWithoutPermissionAttribute.cs @@ -58,7 +58,7 @@ public void SetUp () _mockPrincipalProvider = new Mock(MockBehavior.Strict); _mockFunctionalSecurityStrategy = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _mockPrincipalProvider.Object); serviceLocator.RegisterSingle(() => _mockFunctionalSecurityStrategy.Object); diff --git a/Remotion/Web/UnitTests/Core/Security/IPrincipalProviderTest.cs b/Remotion/Web/UnitTests/Core/Security/IPrincipalProviderTest.cs index e54fdf9b23..6745b7423f 100644 --- a/Remotion/Web/UnitTests/Core/Security/IPrincipalProviderTest.cs +++ b/Remotion/Web/UnitTests/Core/Security/IPrincipalProviderTest.cs @@ -30,7 +30,7 @@ public class IPrincipalProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Security/UI/IWebSecurityAdapterTest.cs b/Remotion/Web/UnitTests/Core/Security/UI/IWebSecurityAdapterTest.cs index 21d7f5623e..fe664ff06d 100644 --- a/Remotion/Web/UnitTests/Core/Security/UI/IWebSecurityAdapterTest.cs +++ b/Remotion/Web/UnitTests/Core/Security/UI/IWebSecurityAdapterTest.cs @@ -31,7 +31,7 @@ public class IWebSecurityAdapterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromSecurableObjectTest.cs b/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromSecurableObjectTest.cs index 11a3d717b3..9f01968c06 100644 --- a/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromSecurableObjectTest.cs +++ b/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromSecurableObjectTest.cs @@ -39,7 +39,7 @@ public void SetUp () _testHelper = new WebPermissionProviderTestHelper(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _testHelper.SecurityProvider); serviceLocator.RegisterSingle(() => _testHelper.PrincipalProvider); serviceLocator.RegisterSingle(() => _testHelper.FunctionalSecurityStrategy); diff --git a/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromWxeFunctionTest.cs b/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromWxeFunctionTest.cs index c6f52a6310..983846f46c 100644 --- a/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromWxeFunctionTest.cs +++ b/Remotion/Web/UnitTests/Core/Security/UI/WebSecurityAdapterTests/PermissionFromWxeFunctionTest.cs @@ -38,7 +38,7 @@ public void SetUp () _securityAdapter = new WebSecurityAdapter(); _testHelper = new WebPermissionProviderTestHelper(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); serviceLocator.RegisterMultiple(() => _testHelper.WxeSecurityAdapter); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Web/UnitTests/Core/Services/IWebServiceFactoryTest.cs b/Remotion/Web/UnitTests/Core/Services/IWebServiceFactoryTest.cs index 7d5ae6e3ce..c900650be8 100644 --- a/Remotion/Web/UnitTests/Core/Services/IWebServiceFactoryTest.cs +++ b/Remotion/Web/UnitTests/Core/Services/IWebServiceFactoryTest.cs @@ -12,7 +12,7 @@ public class IWebServiceFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/SetUpFixture.cs b/Remotion/Web/UnitTests/Core/SetUpFixture.cs index 1dff3d029e..f22ffa7e43 100644 --- a/Remotion/Web/UnitTests/Core/SetUpFixture.cs +++ b/Remotion/Web/UnitTests/Core/SetUpFixture.cs @@ -42,7 +42,7 @@ public void OneTimeSetUp () { XmlNodeExtensions.Helper = new HtmlHelper(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => new FakeInfrastructureResourceUrlFactory()); serviceLocator.RegisterSingle(() => new FakeScriptUtility()); serviceLocator.RegisterSingle(() => new FakeResourceUrlFactory()); diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/DatePickerButtonImplementation/Rendering/IDatePickerPageRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/DatePickerButtonImplementation/Rendering/IDatePickerPageRendererTest.cs index 2fbed09cd8..2d9ace76e1 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/DatePickerButtonImplementation/Rendering/IDatePickerPageRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/DatePickerButtonImplementation/Rendering/IDatePickerPageRendererTest.cs @@ -13,7 +13,7 @@ public class IDatePickerPageRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/DropDownMenuImplementation/Rendering/IDropDownMenuRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/DropDownMenuImplementation/Rendering/IDropDownMenuRendererTest.cs index 92c3bf37af..4182fab1b5 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/DropDownMenuImplementation/Rendering/IDropDownMenuRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/DropDownMenuImplementation/Rendering/IDropDownMenuRendererTest.cs @@ -29,7 +29,7 @@ public class IDropDownMenuRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/Hotkey/IHotkeyFormatterTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/Hotkey/IHotkeyFormatterTest.cs index 1f94a072e5..a028a43395 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/Hotkey/IHotkeyFormatterTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/Hotkey/IHotkeyFormatterTest.cs @@ -29,7 +29,7 @@ public class IHotkeyFormatterTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/HtmlHeadContentsImplementation/Rendering/IHtmlHeadContentsRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/HtmlHeadContentsImplementation/Rendering/IHtmlHeadContentsRendererTest.cs index 3f08afd8fd..1b3ce89540 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/HtmlHeadContentsImplementation/Rendering/IHtmlHeadContentsRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/HtmlHeadContentsImplementation/Rendering/IHtmlHeadContentsRendererTest.cs @@ -30,7 +30,7 @@ public class IHtmlHeadContentsRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/IClientScriptBehaviorTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/IClientScriptBehaviorTest.cs index 422bb23bb5..3929c1f57b 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/IClientScriptBehaviorTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/IClientScriptBehaviorTest.cs @@ -29,7 +29,7 @@ public class IClientScriptBehaviorTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/IFallbackNavigationUrlProviderTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/IFallbackNavigationUrlProviderTest.cs index a577e063e3..da1123a090 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/IFallbackNavigationUrlProviderTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/IFallbackNavigationUrlProviderTest.cs @@ -28,7 +28,7 @@ public class IFallbackNavigationUrlProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/IListMenuRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/IListMenuRendererTest.cs index 2ea9cbed3d..2a826ff678 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/IListMenuRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/IListMenuRendererTest.cs @@ -29,7 +29,7 @@ public class IListMenuRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/ListMenuRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/ListMenuRendererTest.cs index 3fb724e947..645039bba1 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/ListMenuRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/ListMenuImplementation/Rendering/ListMenuRendererTest.cs @@ -70,7 +70,7 @@ public void SetUp () PopulateMenu(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => RenderingFeatures.WithDiagnosticMetadata); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); } diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/MenuTabTests/SecurityTestWithVisible.cs b/Remotion/Web/UnitTests/Core/UI/Controls/MenuTabTests/SecurityTestWithVisible.cs index 9842e7bbd9..4248c0adb4 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/MenuTabTests/SecurityTestWithVisible.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/MenuTabTests/SecurityTestWithVisible.cs @@ -39,7 +39,7 @@ public void Setup () _mockWebSecurityAdapter = new Mock(MockBehavior.Strict); _mockNavigationCommand = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(() => _mockWebSecurityAdapter.Object); serviceLocator.RegisterMultiple(); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/NavigationCommandTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/NavigationCommandTest.cs index 7e03bf62bc..7627c7be20 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/NavigationCommandTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/NavigationCommandTest.cs @@ -315,7 +315,7 @@ private ServiceLocatorScope CreateWxeUrlSettingsScope (string defaultWxeHandler { var wxeUrlSettings = WxeUrlSettings.Create(1024, defaultWxeHandler); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => wxeUrlSettings); return new ServiceLocatorScope(serviceLocator); } diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/ILabelReferenceRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/ILabelReferenceRendererTest.cs index e73cae553a..13bc07ceb7 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/ILabelReferenceRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/ILabelReferenceRendererTest.cs @@ -29,7 +29,7 @@ public class ILabelReferenceRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/IValidationErrorsRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/IValidationErrorsRendererTest.cs index ba39e40d1c..32f5c0c28b 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/IValidationErrorsRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/Rendering/IValidationErrorsRendererTest.cs @@ -29,7 +29,7 @@ public class IValidationErrorsRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/SingleViewImplementation/Rendering/ISingleViewRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/SingleViewImplementation/Rendering/ISingleViewRendererTest.cs index b43a98862a..c6f8f9fe37 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/SingleViewImplementation/Rendering/ISingleViewRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/SingleViewImplementation/Rendering/ISingleViewRendererTest.cs @@ -29,7 +29,7 @@ public class ISingleViewRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/IMenuTabRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/IMenuTabRendererTest.cs index e422b1b180..5b1808d263 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/IMenuTabRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/IMenuTabRendererTest.cs @@ -29,7 +29,7 @@ public class IMenuTabRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/ITabbedMenuRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/ITabbedMenuRendererTest.cs index 6bc72cc69a..9e9170f26f 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/ITabbedMenuRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMenuImplementation/Rendering/ITabbedMenuRendererTest.cs @@ -29,7 +29,7 @@ public class ITabbedMenuRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMultiViewImplementation/Rendering/ITabbedMultiViewRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMultiViewImplementation/Rendering/ITabbedMultiViewRendererTest.cs index 5180af1a94..3d4d3a730c 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMultiViewImplementation/Rendering/ITabbedMultiViewRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/TabbedMultiViewImplementation/Rendering/ITabbedMultiViewRendererTest.cs @@ -29,7 +29,7 @@ public class ITabbedMultiViewRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonImplementation/IWebButtonRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonImplementation/IWebButtonRendererTest.cs index 3f03d7b8e4..de8b96015e 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonImplementation/IWebButtonRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonImplementation/IWebButtonRendererTest.cs @@ -29,7 +29,7 @@ public class IWebButtonRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithEnabled.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithEnabled.cs index 9926939402..88a8d01e1e 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithEnabled.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithEnabled.cs @@ -39,7 +39,7 @@ public void Setup () _mockWebSecurityAdapter = new Mock(MockBehavior.Strict); _mockSecurableObject = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(() => _mockWebSecurityAdapter.Object); serviceLocator.RegisterMultiple(); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); @@ -82,7 +82,7 @@ public void EvaluateFalse_FromFalseAndWithMissingPermissionBehaviorSetToInvisibl [Test] public void EvaluateTrue_FromTrueAndWithoutWebSeucrityProvider () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); serviceLocator.RegisterMultiple(); using (new ServiceLocatorScope(serviceLocator)) @@ -101,7 +101,7 @@ public void EvaluateTrue_FromTrueAndWithoutWebSeucrityProvider () [Test] public void EvaluateFalse_FromFalseAndWithoutWebSeucrityProvider () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); serviceLocator.RegisterMultiple(); using (new ServiceLocatorScope(serviceLocator)) diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithVisible.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithVisible.cs index be73709b17..5e4463c050 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithVisible.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/SecurityTestWithVisible.cs @@ -39,7 +39,7 @@ public void Setup () _mockWebSecurityAdapter = new Mock(MockBehavior.Strict); _mockSecurableObject = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(() => _mockWebSecurityAdapter.Object); serviceLocator.RegisterMultiple(); _serviceLocatorStub = new ServiceLocatorScope(serviceLocator); @@ -82,7 +82,7 @@ public void EvaluateFalse_FromFalseAndWithMissingPermissionBehaviorSetToDisabled [Test] public void EvaluateTrue_FromTrueAndWithoutWebSeucrityProvider () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); serviceLocator.RegisterMultiple(); using (new ServiceLocatorScope(serviceLocator)) @@ -101,7 +101,7 @@ public void EvaluateTrue_FromTrueAndWithoutWebSeucrityProvider () [Test] public void EvaluateFalse_FromFalseAndWithoutWebSeucrityProvider () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(); serviceLocator.RegisterMultiple(); using (new ServiceLocatorScope(serviceLocator)) diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/WebButtonDiagnosticMetadataTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/WebButtonDiagnosticMetadataTest.cs index 52fcd276c7..b19f409705 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/WebButtonDiagnosticMetadataTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebButtonTests/WebButtonDiagnosticMetadataTest.cs @@ -20,7 +20,7 @@ public override void SetUp () { base.SetUp(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => RenderingFeatures.WithDiagnosticMetadata); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); } diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebMenuItemTests/SecurityTestWithVisible.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebMenuItemTests/SecurityTestWithVisible.cs index 8723598775..c1e2de20da 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebMenuItemTests/SecurityTestWithVisible.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebMenuItemTests/SecurityTestWithVisible.cs @@ -42,7 +42,7 @@ public void Setup () _mockSecurableObject = new Mock(MockBehavior.Strict); _mockCommand = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterMultiple(() => _mockWebSecurityAdapter.Object); serviceLocator.RegisterMultiple(); _serviceLocatorStub = new ServiceLocatorScope(serviceLocator); diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabRendererTest.cs index 1422133939..3666809808 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabRendererTest.cs @@ -29,7 +29,7 @@ public class IWebTabRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabStripRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabStripRendererTest.cs index 86e7f38b7a..bbad7cb359 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabStripRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebTabStripImplementation/Rendering/IWebTabStripRendererTest.cs @@ -29,7 +29,7 @@ public class IWebTabStripRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/UI/Controls/WebTreeViewImplementation/IWebTreeViewRendererTest.cs b/Remotion/Web/UnitTests/Core/UI/Controls/WebTreeViewImplementation/IWebTreeViewRendererTest.cs index 71bcf0bbd6..e6938a8b23 100644 --- a/Remotion/Web/UnitTests/Core/UI/Controls/WebTreeViewImplementation/IWebTreeViewRendererTest.cs +++ b/Remotion/Web/UnitTests/Core/UI/Controls/WebTreeViewImplementation/IWebTreeViewRendererTest.cs @@ -29,7 +29,7 @@ public class IWebTreeViewRendererTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Utilities/IInternalControlMemberCallerTest.cs b/Remotion/Web/UnitTests/Core/Utilities/IInternalControlMemberCallerTest.cs index fc5f2c235e..138f19708d 100644 --- a/Remotion/Web/UnitTests/Core/Utilities/IInternalControlMemberCallerTest.cs +++ b/Remotion/Web/UnitTests/Core/Utilities/IInternalControlMemberCallerTest.cs @@ -13,7 +13,7 @@ public class IInternalControlMemberCallerTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/Remotion/Web/UnitTests/Core/Utilities/IScriptUtilityTest.cs b/Remotion/Web/UnitTests/Core/Utilities/IScriptUtilityTest.cs index 0091ceb8d6..b5506655bf 100644 --- a/Remotion/Web/UnitTests/Core/Utilities/IScriptUtilityTest.cs +++ b/Remotion/Web/UnitTests/Core/Utilities/IScriptUtilityTest.cs @@ -13,7 +13,7 @@ public class IScriptUtilityTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Clients.Web.Test/Global.asax.cs b/SecurityManager/Clients.Web.Test/Global.asax.cs index 03cbcbe18f..41102aa43e 100644 --- a/SecurityManager/Clients.Web.Test/Global.asax.cs +++ b/SecurityManager/Clients.Web.Test/Global.asax.cs @@ -34,7 +34,7 @@ public class Global : SecurityManagerHttpApplication protected void Application_Start (object sender, EventArgs e) { - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer( diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessControlListFinderTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessControlListFinderTest.cs index fc075fc45e..c57f8c85bd 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessControlListFinderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessControlListFinderTest.cs @@ -13,7 +13,7 @@ public class IAccessControlListFinderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessResolverTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessResolverTest.cs index ae65c61301..a86b15cb31 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessResolverTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/IAccessResolverTest.cs @@ -13,7 +13,7 @@ public class IAccessResolverTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityContextRepositoryTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityContextRepositoryTest.cs index 86bfe2c248..dd110dbf79 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityContextRepositoryTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityContextRepositoryTest.cs @@ -13,7 +13,7 @@ public class ISecurityContextRepositoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityPrincipalRepositoryTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityPrincipalRepositoryTest.cs index 054c2d5c39..5e2e6ddb18 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityPrincipalRepositoryTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityPrincipalRepositoryTest.cs @@ -13,7 +13,7 @@ public class ISecurityPrincipalRepositoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityTokenBuilderTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityTokenBuilderTest.cs index f3c5273fb5..bce088f0cd 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityTokenBuilderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/AccessEvaluation/ISecurityTokenBuilderTest.cs @@ -13,7 +13,7 @@ public class ISecurityTokenBuilderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/AccessControl/IAccessControlSettingsTest.cs b/SecurityManager/Core.UnitTests/Domain/AccessControl/IAccessControlSettingsTest.cs index b221234e66..d8916e115a 100644 --- a/SecurityManager/Core.UnitTests/Domain/AccessControl/IAccessControlSettingsTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/AccessControl/IAccessControlSettingsTest.cs @@ -29,7 +29,7 @@ public class IAccessControlSettingsTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/IDomainRevisionProviderTest.cs b/SecurityManager/Core.UnitTests/Domain/IDomainRevisionProviderTest.cs index 30a11a4e25..e1ed87e037 100644 --- a/SecurityManager/Core.UnitTests/Domain/IDomainRevisionProviderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/IDomainRevisionProviderTest.cs @@ -13,7 +13,7 @@ public class IDomainRevisionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/IPrincipalProviderTest.cs b/SecurityManager/Core.UnitTests/Domain/IPrincipalProviderTest.cs index 3ff2a14a5e..57d84b3c87 100644 --- a/SecurityManager/Core.UnitTests/Domain/IPrincipalProviderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/IPrincipalProviderTest.cs @@ -31,7 +31,7 @@ public class IPrincipalProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/ISecurityManagerPrincipalFactoryTest.cs b/SecurityManager/Core.UnitTests/Domain/ISecurityManagerPrincipalFactoryTest.cs index e6b350b8e1..eddbeaaa35 100644 --- a/SecurityManager/Core.UnitTests/Domain/ISecurityManagerPrincipalFactoryTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/ISecurityManagerPrincipalFactoryTest.cs @@ -28,7 +28,7 @@ public class ISecurityManagerPrincipalFactoryTest [Test] public void GetDefaultImplementationFromServiceLocator () { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); Assert.That(serviceLocator.GetInstance(), Is.TypeOf()); } diff --git a/SecurityManager/Core.UnitTests/Domain/IUserNamesRevisionProviderTest.cs b/SecurityManager/Core.UnitTests/Domain/IUserNamesRevisionProviderTest.cs index e36fceb5eb..4ab005911a 100644 --- a/SecurityManager/Core.UnitTests/Domain/IUserNamesRevisionProviderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/IUserNamesRevisionProviderTest.cs @@ -30,7 +30,7 @@ public class IUserNamesRevisionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/IUserRevisionProviderTest.cs b/SecurityManager/Core.UnitTests/Domain/IUserRevisionProviderTest.cs index 0f42c16ad8..79bc250863 100644 --- a/SecurityManager/Core.UnitTests/Domain/IUserRevisionProviderTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/IUserRevisionProviderTest.cs @@ -13,7 +13,7 @@ public class IUserRevisionProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetHierarchy.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetHierarchy.cs index 0294c313a9..c4e23b9b2d 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetHierarchy.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetHierarchy.cs @@ -124,7 +124,7 @@ public void Test_WithSecurity_PermissionDeniedOnChild () .Setup(stub => stub.GetAccess(childOfChild2SecurityContext, It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) @@ -152,7 +152,7 @@ public void Test_WithSecurity_PermissionDeniedOnRoot () .Setup(stub => stub.GetAccess(It.IsAny(), It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetParents.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetParents.cs index efd99ee5d6..f44dc90f64 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetParents.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/GroupTests/GetParents.cs @@ -152,7 +152,7 @@ public void Test_WithSecurity_PermissionDeniedOnParent () .Setup(stub => stub.GetAccess(grandParent1SecurityContext, It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) @@ -177,7 +177,7 @@ public void Test_WithSecurity_PermissionDeniedOnRoot () .Setup(stub => stub.GetAccess(It.IsAny(), It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/IOrganizationalStructureFactoryTest.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/IOrganizationalStructureFactoryTest.cs index f9f13d434f..1e1d559145 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/IOrganizationalStructureFactoryTest.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/IOrganizationalStructureFactoryTest.cs @@ -29,7 +29,7 @@ public class IOrganizationalStructureFactoryTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetHierachy.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetHierachy.cs index 00633dd939..c0bb082aba 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetHierachy.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetHierachy.cs @@ -115,7 +115,7 @@ public void Test_WithSecurity_PermissionDeniedOnChild () .Setup(stub => stub.GetAccess(childOfChild2SecurityContext, It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) @@ -142,7 +142,7 @@ public void Test_WithSecurity_PermissionDeniedOnRoot () .Setup(stub => stub.GetAccess(It.IsAny(), It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetParents.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetParents.cs index 6ba19a9b3d..9157b1cf1d 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetParents.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/TenantTests/GetParents.cs @@ -156,7 +156,7 @@ public void Test_WithSecurity_PermissionDeniedOnParent () .Setup(stub => stub.GetAccess(grandParent1SecurityContext, It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) @@ -180,7 +180,7 @@ public void Test_WithSecurity_PermissionDeniedOnRoot () .Setup(stub => stub.GetAccess(It.IsAny(), It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) diff --git a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/UserTests/GetActiveSubstitutions.cs b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/UserTests/GetActiveSubstitutions.cs index 969c955f04..44003e9bff 100644 --- a/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/UserTests/GetActiveSubstitutions.cs +++ b/SecurityManager/Core.UnitTests/Domain/OrganizationalStructure/UserTests/GetActiveSubstitutions.cs @@ -82,7 +82,7 @@ public void Test_WithPermissionDeniedOnUser () .Setup(stub => stub.GetAccess(It.IsAny(), It.IsAny())) .Returns(new AccessType[0]); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) diff --git a/SecurityManager/Core.UnitTests/Domain/SearchInfrastructure/OrganizationalStructure/RolePropertiesSearchServiceTests/SearchPositionWithSecurityChecks.cs b/SecurityManager/Core.UnitTests/Domain/SearchInfrastructure/OrganizationalStructure/RolePropertiesSearchServiceTests/SearchPositionWithSecurityChecks.cs index 8cb6ef36d8..75304520a2 100644 --- a/SecurityManager/Core.UnitTests/Domain/SearchInfrastructure/OrganizationalStructure/RolePropertiesSearchServiceTests/SearchPositionWithSecurityChecks.cs +++ b/SecurityManager/Core.UnitTests/Domain/SearchInfrastructure/OrganizationalStructure/RolePropertiesSearchServiceTests/SearchPositionWithSecurityChecks.cs @@ -73,7 +73,7 @@ public override void SetUp () _mockPrincipalProvider = new Mock(MockBehavior.Strict); _stubFunctionalSecurityStrategy = new Mock(MockBehavior.Strict); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => _stubFunctionalSecurityStrategy.Object); serviceLocator.RegisterSingle(() => _mockSecurityProvider.Object); serviceLocator.RegisterSingle(() => _mockPrincipalProvider.Object); diff --git a/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/Common.cs b/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/Common.cs index 2d3e16c290..28d593e6b5 100644 --- a/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/Common.cs +++ b/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/Common.cs @@ -173,7 +173,7 @@ public void ActiveSecurityProviderAddsSecurityClientTransactionExtension () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/GetTenants.cs b/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/GetTenants.cs index b2a5491294..0351bc1297 100644 --- a/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/GetTenants.cs +++ b/SecurityManager/Core.UnitTests/Domain/SecurityManagerPrincipalTests/GetTenants.cs @@ -109,7 +109,7 @@ public void UsesSecurityFreeSectionToAccessTenantOfUser () var storageSettings = SafeServiceLocator.Current.GetInstance(); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProviderStub.Object); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); serviceLocator.RegisterSingle(() => storageSettings); diff --git a/SecurityManager/Core.UnitTests/SecurityProvider/ISecurityProviderTest.cs b/SecurityManager/Core.UnitTests/SecurityProvider/ISecurityProviderTest.cs index 6e39fe414f..530c83b75d 100644 --- a/SecurityManager/Core.UnitTests/SecurityProvider/ISecurityProviderTest.cs +++ b/SecurityManager/Core.UnitTests/SecurityProvider/ISecurityProviderTest.cs @@ -31,7 +31,7 @@ public class ISecurityProviderTest [SetUp] public void SetUp () { - _serviceLocator = DefaultServiceLocator.Create(); + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); } [Test] diff --git a/SecurityManager/Core.UnitTests/SecurityProvider/SecurityServiceTest.cs b/SecurityManager/Core.UnitTests/SecurityProvider/SecurityServiceTest.cs index 400fb72169..8572916aca 100644 --- a/SecurityManager/Core.UnitTests/SecurityProvider/SecurityServiceTest.cs +++ b/SecurityManager/Core.UnitTests/SecurityProvider/SecurityServiceTest.cs @@ -218,7 +218,7 @@ public void GetAccess_UsesSecurityFreeSection () } } - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => new Mock()); using (new ServiceLocatorScope(serviceLocator)) { diff --git a/SecurityManager/Core.UnitTests/SetUpFixture.cs b/SecurityManager/Core.UnitTests/SetUpFixture.cs index b29351ae32..859d6f4f36 100644 --- a/SecurityManager/Core.UnitTests/SetUpFixture.cs +++ b/SecurityManager/Core.UnitTests/SetUpFixture.cs @@ -65,7 +65,7 @@ public void OneTimeSetUp () var securityProvider = new FakeSecurityProvider(); var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(TestDomainConnectionString); - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); serviceLocator.RegisterSingle(() => securityProvider); serviceLocator.RegisterSingle(() => new NullPrincipalProvider()); serviceLocator.RegisterSingle(() => storageSettingsFactory); diff --git a/SecurityManager/Core/AclTools/Expansion/AclExpanderApplication.cs b/SecurityManager/Core/AclTools/Expansion/AclExpanderApplication.cs index d0879bfec5..471bc0c520 100644 --- a/SecurityManager/Core/AclTools/Expansion/AclExpanderApplication.cs +++ b/SecurityManager/Core/AclTools/Expansion/AclExpanderApplication.cs @@ -71,7 +71,7 @@ public virtual void Run (AclExpanderApplicationSettings settings, TextWriter err { if (!hasOriginalServiceLocator) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(settings.ConnectionString); serviceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/SecurityManager/Metadata.Importer/Program.cs b/SecurityManager/Metadata.Importer/Program.cs index 02dff1b9d5..9d6d292dbc 100644 --- a/SecurityManager/Metadata.Importer/Program.cs +++ b/SecurityManager/Metadata.Importer/Program.cs @@ -87,7 +87,7 @@ public int Run () { if (!hasOriginalServiceLocator) { - var serviceLocator = DefaultServiceLocator.Create(); + var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); var storageSettingsFactory = StorageSettingsFactory.CreateForSqlServer(_arguments.ConnectionString); serviceLocator.RegisterSingle(() => storageSettingsFactory); ServiceLocator.SetLocatorProvider(() => serviceLocator); diff --git a/SecurityManager/PerformanceTests/Program.cs b/SecurityManager/PerformanceTests/Program.cs index 72b2cd6f6c..d09ceeb5fa 100644 --- a/SecurityManager/PerformanceTests/Program.cs +++ b/SecurityManager/PerformanceTests/Program.cs @@ -25,7 +25,7 @@ class Program { private static void Main (string[] args) { - var defaultServiceLocator = DefaultServiceLocator.Create(); + var defaultServiceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); defaultServiceLocator.Register( typeof(Remotion.Data.DomainObjects.IClientTransactionExtensionFactory), From 5aecfe3804f74ec7c25317632ad75020c87c78dc Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Mon, 4 Dec 2023 10:41:27 +0100 Subject: [PATCH 05/11] RM-5931 Replace ServiceLocationConfiguration with an IoC-based approach. --- ...IServiceLocationConfiguration.obsolete.cs} | 7 +- .../ServiceLocationConfiguration.cs | 89 ------------------- .../ServiceLocationConfiguration.obsolete.cs} | 16 ++-- .../Schemas/ServiceLocationConfiguration.xsd | 44 --------- .../BootstrapServiceConfiguration.cs | 20 ++++- .../DefaultServiceLocatorProvider.cs | 3 + .../ServiceLocation/SafeServiceLocator.cs | 2 +- .../ServiceLocationConfigurationTest.cs | 68 -------------- .../BootstrapServiceConfigurationTest.cs | 4 +- .../ServiceLocation/SafeServiceLocatorTest.cs | 34 +++---- 10 files changed, 52 insertions(+), 235 deletions(-) rename Remotion/Core/Core/Configuration/ServiceLocation/{IServiceLocationConfiguration.cs => IServiceLocationConfiguration.obsolete.cs} (70%) delete mode 100644 Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.cs rename Remotion/Core/{UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs => Core/Configuration/ServiceLocation/ServiceLocationConfiguration.obsolete.cs} (58%) delete mode 100644 Remotion/Core/Core/Schemas/ServiceLocationConfiguration.xsd delete mode 100644 Remotion/Core/UnitTests/Configuration/ServiceLocation/ServiceLocationConfigurationTest.cs diff --git a/Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.cs b/Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.obsolete.cs similarity index 70% rename from Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.cs rename to Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.obsolete.cs index 3ba56e0288..ec023e6c28 100644 --- a/Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.cs +++ b/Remotion/Core/Core/Configuration/ServiceLocation/IServiceLocationConfiguration.obsolete.cs @@ -19,13 +19,10 @@ namespace Remotion.Configuration.ServiceLocation { + [Obsolete("Use IoC bootstrapping to resolve the IServiceLocatorProvider (Version 6.0.0)", true)] public interface IServiceLocationConfiguration { - /// - /// Creates an instance as indicated by . If no - /// is set, an instance of is returned. - /// - /// An new instance. + [Obsolete("Use IoC bootstrapping to resolve the IServiceLocatorProvider (Version 6.0.0)", true)] IServiceLocatorProvider CreateServiceLocatorProvider (); } } diff --git a/Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.cs b/Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.cs deleted file mode 100644 index d961f06975..0000000000 --- a/Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.cs +++ /dev/null @@ -1,89 +0,0 @@ -// This file is part of the re-motion Core Framework (www.re-motion.org) -// Copyright (c) rubicon IT GmbH, www.rubicon.eu -// -// The re-motion Core Framework is free software; you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public License -// as published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// re-motion is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with re-motion; if not, see http://www.gnu.org/licenses. -// -using System; -using System.Configuration; -using Remotion.ServiceLocation; - -namespace Remotion.Configuration.ServiceLocation -{ - /// - /// Configures the service location performed by . - /// - public sealed class ServiceLocationConfiguration : ConfigurationSection, IServiceLocationConfiguration - { - private static readonly DoubleCheckedLockingContainer s_current = - new DoubleCheckedLockingContainer(GetServiceLocationConfiguration); - - /// - /// Gets the current instance. This is used by - /// to retrieve an instance if no specific - /// was configured via . - /// - /// The current . - public static IServiceLocationConfiguration Current - { - get { return s_current.Value; } - } - - /// - /// Sets the instance. - /// - /// The new configuration to set as the configuration. - public static void SetCurrent (IServiceLocationConfiguration? configuration) - { - s_current.Value = configuration!; - } - - private static ServiceLocationConfiguration GetServiceLocationConfiguration () - { - return (ServiceLocationConfiguration)(ConfigurationWrapper.Current.GetSection("remotion.serviceLocation", false) ?? new ServiceLocationConfiguration()); - } - - /// - /// Initializes a new default instance of the class. To load the configuration from a config file, - /// use instead. - /// - public ServiceLocationConfiguration () - { - var xmlnsProperty = new ConfigurationProperty("xmlns", typeof(string), null, ConfigurationPropertyOptions.None); - Properties.Add(xmlnsProperty); - } - - /// - /// Gets a describing the custom to be used. This provider defines - /// the to be used by if no custom was - /// configured using . - /// - /// A describing the custom type to be used. - [ConfigurationProperty("serviceLocatorProvider", IsRequired = false)] - public TypeElement ServiceLocatorProvider - { - get { return (TypeElement)this["serviceLocatorProvider"]; } - } - - /// - /// Creates an instance as indicated by . If no - /// is set, an instance of is returned. - /// - /// An new instance. - public IServiceLocatorProvider CreateServiceLocatorProvider () - { - // TODO RM-7432: CreateInstance should not be nullable - return ServiceLocatorProvider.CreateInstance()!; - } - } -} diff --git a/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs b/Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.obsolete.cs similarity index 58% rename from Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs rename to Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.obsolete.cs index e7609f6afb..2c4ace21ab 100644 --- a/Remotion/Core/UnitTests/Configuration/ServiceLocation/FakeServiceLocatorProvider.cs +++ b/Remotion/Core/Core/Configuration/ServiceLocation/ServiceLocationConfiguration.obsolete.cs @@ -1,4 +1,4 @@ -// This file is part of the re-motion Core Framework (www.re-motion.org) +// This file is part of the re-motion Core Framework (www.re-motion.org) // Copyright (c) rubicon IT GmbH, www.rubicon.eu // // The re-motion Core Framework is free software; you can redistribute it @@ -15,16 +15,18 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.Collections.Generic; -using Remotion.ServiceLocation; -namespace Remotion.UnitTests.Configuration.ServiceLocation +namespace Remotion.Configuration.ServiceLocation { - public class FakeServiceLocatorProvider : IServiceLocatorProvider + [Obsolete("Use IoC bootstrapping to resolve the IServiceLocatorProvider (Version 6.0.0)", true)] + + public static class ServiceLocationConfiguration { - public IServiceLocator GetServiceLocator (IReadOnlyCollection bootstrapConfiguration) + [Obsolete("Use IoC bootstrapping to resolve the IServiceLocatorProvider (Version 6.0.0)", true)] + + public static IServiceLocationConfiguration Current { - throw new NotImplementedException(); + get => throw new NotSupportedException("Use IoC bootstrapping to resolve the IServiceLocatorProvider (Version 6.0.0)"); } } } diff --git a/Remotion/Core/Core/Schemas/ServiceLocationConfiguration.xsd b/Remotion/Core/Core/Schemas/ServiceLocationConfiguration.xsd deleted file mode 100644 index 1d936bbbce..0000000000 --- a/Remotion/Core/Core/Schemas/ServiceLocationConfiguration.xsd +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs index f2c3683f2c..2b820e18a1 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs @@ -33,10 +33,26 @@ public class BootstrapServiceConfiguration : IBootstrapServiceConfiguration public BootstrapServiceConfiguration () { // Logging - RegisterAsSingleton(() => new Log4NetLogManager()); + RegisterInstanceAsSingleton(() => new Log4NetLogManager()); + + // Service Location + RegisterImplementationAsSingleton(); + + // ReSharper disable once LocalFunctionHidesMethod + void RegisterImplementationAsSingleton () + where TService : class + where TImplementation : class, TService + { + lock (_lock) + { + _registrations.Add( + typeof(TService), + new ServiceConfigurationEntry(typeof(TService), new ServiceImplementationInfo(typeof(TImplementation), LifetimeKind.Singleton, RegistrationType.Single))); + } + } // ReSharper disable once LocalFunctionHidesMethod - void RegisterAsSingleton (Func factory) + void RegisterInstanceAsSingleton (Func factory) where TService : class where TImplementation : class, TService { diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs index a698b045be..40cc9ba09d 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs @@ -24,8 +24,11 @@ namespace Remotion.ServiceLocation /// /// Implements by providing instances of . /// + /// public class DefaultServiceLocatorProvider : IServiceLocatorProvider { + public const int Position = 0; + public DefaultServiceLocatorProvider () { } diff --git a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs index c21f3eea88..664b2a30e4 100644 --- a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs @@ -114,7 +114,7 @@ private static IServiceLocator GetDefaultServiceLocator () var bootstrapServiceLocator = bootstrapServiceLocatorProvider.GetServiceLocator(bootstrapServiceLocatorEntries); s_fields.DefaultServiceLocator.Value = bootstrapServiceLocator; - var serviceLocatorProvider = ServiceLocationConfiguration.Current.CreateServiceLocatorProvider(); + var serviceLocatorProvider = bootstrapServiceLocator.GetInstance(); return serviceLocatorProvider.GetServiceLocator(bootstrapServiceLocatorEntries); } } diff --git a/Remotion/Core/UnitTests/Configuration/ServiceLocation/ServiceLocationConfigurationTest.cs b/Remotion/Core/UnitTests/Configuration/ServiceLocation/ServiceLocationConfigurationTest.cs deleted file mode 100644 index ca9840e2a6..0000000000 --- a/Remotion/Core/UnitTests/Configuration/ServiceLocation/ServiceLocationConfigurationTest.cs +++ /dev/null @@ -1,68 +0,0 @@ -// This file is part of the re-motion Core Framework (www.re-motion.org) -// Copyright (c) rubicon IT GmbH, www.rubicon.eu -// -// The re-motion Core Framework is free software; you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public License -// as published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// re-motion is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with re-motion; if not, see http://www.gnu.org/licenses. -// -using System; -using NUnit.Framework; -using Remotion.Configuration.ServiceLocation; -using Remotion.Development.UnitTesting.Configuration; -using Remotion.ServiceLocation; - -namespace Remotion.UnitTests.Configuration.ServiceLocation -{ - [TestFixture] - public class ServiceLocationConfigurationTest - { - private const string _xmlFragmentDefault = @""; - private const string _xmlFragmentWithServiceLocatorProvider = @" - - "; - - [Test] - public void Deserialization_Default () - { - var section = Deserialize(_xmlFragmentDefault); - Assert.That(section.ServiceLocatorProvider.Type, Is.SameAs(typeof(DefaultServiceLocatorProvider))); - } - - [Test] - public void Deserialization_SpecificProvider () - { - var section = Deserialize(_xmlFragmentWithServiceLocatorProvider); - Assert.That(section.ServiceLocatorProvider.Type, Is.SameAs(typeof(FakeServiceLocatorProvider))); - } - - [Test] - public void CreateServiceLocatorProvider_Default () - { - var section = Deserialize(_xmlFragmentDefault); - Assert.That(section.CreateServiceLocatorProvider(), Is.TypeOf()); - } - - [Test] - public void CreateServiceLocatorProvider_SpecificProvider () - { - var section = Deserialize(_xmlFragmentWithServiceLocatorProvider); - Assert.That(section.CreateServiceLocatorProvider(), Is.TypeOf()); - } - - private ServiceLocationConfiguration Deserialize (string xmlFragment) - { - var section = new ServiceLocationConfiguration(); - ConfigurationHelper.DeserializeSection(section, xmlFragment); - return section; - } - } -} diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs index 6a782e79a2..831d3a11b6 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs @@ -60,10 +60,10 @@ public void GetRegistrations_HasDefaultRegistrations () var serviceConfigurationEntries = _configuration.GetRegistrations(); Assert.That( serviceConfigurationEntries.Select(e => e.ServiceType), - Is.EquivalentTo(new[] { typeof(ILogManager) })); + Is.EquivalentTo(new[] { typeof(ILogManager), typeof(IServiceLocatorProvider) })); Assert.That( serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.ImplementationType)), - Is.EquivalentTo(new[] { typeof(Log4NetLogManager) })); + Is.EquivalentTo(new[] { typeof(Log4NetLogManager), typeof(DefaultServiceLocatorProvider) })); Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.Lifetime)), Has.All.EqualTo(LifetimeKind.Singleton)); } diff --git a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs index a65bcd362f..48cd6b3917 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs @@ -18,7 +18,6 @@ using System.Collections.Generic; using Moq; using NUnit.Framework; -using Remotion.Configuration.ServiceLocation; using Remotion.Development.UnitTesting; using Remotion.Logging; using Remotion.ServiceLocation; @@ -30,14 +29,12 @@ namespace Remotion.UnitTests.ServiceLocation public class SafeServiceLocatorTest { private ServiceLocatorProvider _serviceLocatorProviderBackup; - private IServiceLocationConfiguration _previousConfiguration; [OneTimeSetUp] public void OneTimeSetUp () { _serviceLocatorProviderBackup = (ServiceLocatorProvider)PrivateInvoke.GetNonPublicStaticField(typeof(ServiceLocator), "_currentProvider"); PrivateInvoke.SetNonPublicStaticField(typeof(ServiceLocator), "_currentProvider", null); - ResetSafeServiceLocator(); } [OneTimeTearDown] @@ -49,14 +46,12 @@ public void TestFixtureTearDown () [SetUp] public void SetUp () { - _previousConfiguration = ServiceLocationConfiguration.Current; - ServiceLocationConfiguration.SetCurrent(null); + ResetSafeServiceLocator(); } [TearDown] public void TearDown () { - ServiceLocationConfiguration.SetCurrent(_previousConfiguration); ResetSafeServiceLocator(); } @@ -75,7 +70,9 @@ public void GetCurrent_WithLocatorProvider_IgnoresServiceConfiguration () var serviceLocatorStub = new Mock(); ServiceLocator.SetLocatorProvider(() => serviceLocatorStub.Object); - ConfigureServiceLocatorProvider(new Mock(MockBehavior.Strict).Object); + IServiceLocatorProvider serviceLocatorProvider = new Mock(MockBehavior.Strict).Object; + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProvider); Assert.That(SafeServiceLocator.Current, Is.SameAs(serviceLocatorStub.Object)); } @@ -99,7 +96,8 @@ public void GetCurrent_WithoutLocatorProvider_ReturnsConfiguredServiceLocator () .Setup(stub => stub.GetServiceLocator(It.IsAny>())) .Returns(fakeServiceLocator.Object); - ConfigureServiceLocatorProvider(serviceLocatorProviderStub.Object); + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProviderStub.Object); Assert.That(SafeServiceLocator.Current, Is.SameAs(fakeServiceLocator.Object)); } @@ -125,7 +123,8 @@ public void GetCurrent_WithoutLocatorProvider_ReturnsConfiguredServiceLocator_Wi .Callback((IReadOnlyCollection bootstrapConfiguration) => bootstrapConfigurationParameter = bootstrapConfiguration) .Verifiable(); - ConfigureServiceLocatorProvider(serviceLocatorProviderMock.Object); + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProviderMock.Object); SafeServiceLocator.BootstrapConfiguration.Register(entry1); SafeServiceLocator.BootstrapConfiguration.Register(entry2); @@ -166,7 +165,8 @@ public void GetCurrent_WithLocatorProviderReturningNull_ReturnsConfiguredService .Setup(stub => stub.GetServiceLocator(It.IsAny>())) .Returns(fakeServiceLocator.Object); - ConfigureServiceLocatorProvider(serviceLocatorProviderStub.Object); + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProviderStub.Object); Assert.That(SafeServiceLocator.Current, Is.SameAs(fakeServiceLocator.Object)); } @@ -192,7 +192,8 @@ public void GetCurrent_WithInvalidServiceLocationConfiguration () .Throws(exception) .Verifiable(); - ConfigureServiceLocatorProvider(serviceLocatorProvider.Object); + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProvider.Object); Assert.That(() => SafeServiceLocator.Current, Throws.Exception.SameAs(exception)); } @@ -207,7 +208,8 @@ public void GetCurrent_ProvidesAccessToBootstrapLocator_WhileConfiguredLocatorIs .Returns(fakeServiceLocator.Object) .Callback((IReadOnlyCollection bootstrapConfiguration) => Assert.That(SafeServiceLocator.Current, Is.Not.Null)); - ConfigureServiceLocatorProvider(serviceLocatorProvider.Object); + ResetSafeServiceLocator(); + SafeServiceLocator.BootstrapConfiguration.Register(serviceLocatorProvider.Object); var result = SafeServiceLocator.Current; @@ -273,12 +275,10 @@ public void DefaultConfiguration_IntegrationTest_ILogManager () Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); } - private void ConfigureServiceLocatorProvider (IServiceLocatorProvider serviceLocatorProvider) + [Test] + public void DefaultConfiguration_IntegrationTest_IServiceLocatorProvider () { - var serviceLocationConfiguration = new Mock(); - serviceLocationConfiguration.Setup(stub => stub.CreateServiceLocatorProvider()).Returns(serviceLocatorProvider); - ServiceLocationConfiguration.SetCurrent(serviceLocationConfiguration.Object); - ResetSafeServiceLocator(); + Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); } private void ResetSafeServiceLocator (bool resetBootstrapConfiguration = true, bool resetDefaultServiceLocator = true) From f7499ef154b26417ec6f245d8cfd3121f5e92f67 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Thu, 7 Dec 2023 10:23:43 +0100 Subject: [PATCH 06/11] RM-5931 Remove lookup of custom ITypeDiscoveryService implementations to break dependency on ITypeResolutionService. Note that since there is a dependency between type discovery configuration and type resolution, the relevant customizations must be dropped here. The configuration of the feature will be restored once ITypeDiscoveryService can be resolved via IoC container. --- .../TypeDiscoveryConfiguration.cs | 79 ------------------- .../TypeDiscovery/TypeDiscoveryMode.cs | 16 ++-- .../AssemblyFinderTypeDiscoveryService.cs | 4 +- .../Schemas/TypeDiscoveryConfiguration.xsd | 37 --------- .../TypeDiscoveryConfigurationTest.cs | 69 ---------------- .../Reflection/ContextAwareTypeUtilityTest.cs | 31 -------- .../ContextAwareTypeUtilityTest/app.config | 9 --- 7 files changed, 6 insertions(+), 239 deletions(-) delete mode 100644 Remotion/Core/UnitTests/Reflection/TestDomain/ContextAwareTypeUtilityTest/app.config diff --git a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs index 28c994b28a..a151257e4a 100644 --- a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs +++ b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs @@ -80,19 +80,6 @@ public TypeDiscoveryMode Mode set { this["mode"] = value; } } - /// - /// Gets a describing the custom to be used. This is only relevant - /// if is set to . In this mode, an - /// is created, and an instance of the specified type is - /// employed for finding the root assemblies used for type discovery. The given type must have a default constructor. - /// - /// A describing the custom type to be used. - [ConfigurationProperty("customRootAssemblyFinder", IsRequired = false)] - public TypeElement CustomRootAssemblyFinder - { - get { return (TypeElement)this["customRootAssemblyFinder"]; } - } - /// /// Gets a describing specific root assemblies to be used. This is only relevant /// if is set to . In this mode, an @@ -107,19 +94,6 @@ public RootAssembliesElement SpecificRootAssemblies get { return (RootAssembliesElement)this["specificRootAssemblies"]; } } - /// - /// Gets a describing the custom to be used. This is only relevant - /// if is set to . In this mode, an - /// instance of the specified type is - /// employed for type discovery. The given type must have a default constructor. - /// - /// A describing the custom type to be used. - [ConfigurationProperty("customTypeDiscoveryService", IsRequired = false)] - public TypeElement CustomTypeDiscoveryService - { - get { return (TypeElement)this["customTypeDiscoveryService"]; } - } - /// /// Creates an instance as indicated by . /// @@ -128,34 +102,13 @@ public ITypeDiscoveryService CreateTypeDiscoveryService () { switch (Mode) { - case TypeDiscoveryMode.CustomRootAssemblyFinder: - return CreateServiceWithCustomRootAssemblyFinder(); case TypeDiscoveryMode.SpecificRootAssemblies: return CreateServiceWithSpecificRootAssemblies(); - case TypeDiscoveryMode.CustomTypeDiscoveryService: - return CreateCustomService(); default: return CreateServiceWithAutomaticDiscovery(); } } - private ITypeDiscoveryService CreateServiceWithCustomRootAssemblyFinder () - { - if (CustomRootAssemblyFinder.Type == null) - { - string message = string.Format( - "In CustomRootAssemblyFinder mode, a custom root assembly finder must be specified in the type discovery configuration. {0}", - GetConfigurationBodyErrorMessage( - "CustomRootAssemblyFinder", - "")); - throw new ConfigurationErrorsException(message); - } - - // TODO RM-7788: The return value of Activator.CreateInstance should be checked for null. - var customRootAssemblyFinder = (IRootAssemblyFinder)Activator.CreateInstance(CustomRootAssemblyFinder.Type)!; - return CreateServiceWithAssemblyFinder(customRootAssemblyFinder); - } - private ITypeDiscoveryService CreateServiceWithSpecificRootAssemblies () { var assemblyLoader = CreateAllAssemblyLoader(); @@ -163,22 +116,6 @@ private ITypeDiscoveryService CreateServiceWithSpecificRootAssemblies () return CreateServiceWithAssemblyFinder(rootAssemblyFinder); } - private ITypeDiscoveryService CreateCustomService () - { - if (CustomTypeDiscoveryService.Type == null) - { - string message = string.Format( - "In CustomTypeDiscoveryService mode, a custom type discovery service must be specified in the type discovery configuration. {0}", - GetConfigurationBodyErrorMessage( - "CustomTypeDiscoveryService", - "")); - throw new ConfigurationErrorsException(message); - } - - // TODO RM-7788: The return value of Activator.CreateInstance should be checked for null. - return (ITypeDiscoveryService)Activator.CreateInstance(CustomTypeDiscoveryService.Type)!; - } - private ITypeDiscoveryService CreateServiceWithAutomaticDiscovery () { var assemblyLoader = CreateApplicationAssemblyLoader(); @@ -193,22 +130,6 @@ private ITypeDiscoveryService CreateServiceWithAssemblyFinder (IRootAssemblyFind return new AssemblyFinderTypeDiscoveryService(assemblyFinder); } - private string GetConfigurationBodyErrorMessage (string modeValue, string modeSpecificBodyElement) - { - var message = Environment.NewLine + Environment.NewLine - + "Example configuration: " + Environment.NewLine - + "" + Environment.NewLine - + "" + Environment.NewLine - + " " + Environment.NewLine - + "
" + Environment.NewLine - + " " + Environment.NewLine - + " " + Environment.NewLine - + " " + modeSpecificBodyElement + Environment.NewLine - + " " + Environment.NewLine - + ""; - return message; - } - private IAssemblyLoader CreateApplicationAssemblyLoader () { return new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance); diff --git a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryMode.cs b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryMode.cs index 3fd0ad5ccb..73285eb0cb 100644 --- a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryMode.cs +++ b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryMode.cs @@ -15,8 +15,6 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; -using System.ComponentModel.Design; -using Remotion.Reflection.TypeDiscovery.AssemblyFinding; namespace Remotion.Configuration.TypeDiscovery { @@ -30,22 +28,18 @@ public enum TypeDiscoveryMode /// and their referenced assemblies. ///
Automatic, - /// - /// Chooses a custom which searches for root assemblies. The types are discovered from those assemblies. - /// Whether types from referenced assemblies are also included is defined by the . - /// See . - /// + + [Obsolete("Register the custom implementation of IRootAssemblyFinder via the SafeServiceLocator.BootstrapConfiguration. (Version 6.0.0)", true)] CustomRootAssemblyFinder, + /// /// Chooses a number of specific root assemblies. The types are discovered from those assemblies. Whether types from referenced assemblies are /// also included is defined by the user. /// See . /// SpecificRootAssemblies, - /// - /// Chooses a custom implementation. The types are discovered by that service. - /// See . - /// + + [Obsolete("Register the custom implementation of ITypeDiscoveryService via the SafeServiceLocator.BootstrapConfiguration. (Version 6.0.0)", true)] CustomTypeDiscoveryService } } diff --git a/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinderTypeDiscoveryService.cs b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinderTypeDiscoveryService.cs index f03c1a7b8e..3c373fc4c9 100644 --- a/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinderTypeDiscoveryService.cs +++ b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinderTypeDiscoveryService.cs @@ -22,7 +22,6 @@ using System.ComponentModel.Design; using System.Linq; using System.Reflection; -using Remotion.Configuration.TypeDiscovery; using Remotion.Logging; using Remotion.Reflection.TypeDiscovery.AssemblyFinding; using Remotion.Utilities; @@ -31,8 +30,7 @@ namespace Remotion.Reflection.TypeDiscovery { /// /// Provides an implementation of the interface that uses an to - /// retrieve types. This class is created by in the default configuration and - /// is therefore the default provided by + /// retrieve types. This class is the default provided by /// in the standard context. /// public sealed class AssemblyFinderTypeDiscoveryService : ITypeDiscoveryService diff --git a/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd b/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd index a5b6140496..0dfa5efeba 100644 --- a/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd +++ b/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd @@ -43,25 +43,13 @@ - - - - - - - - - - - - @@ -74,29 +62,4 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs b/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs index 8dd281644b..6a1f0cb66f 100644 --- a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs +++ b/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs @@ -32,10 +32,6 @@ public class TypeDiscoveryConfigurationTest private const string _xmlFragmentDefault = @""; private const string _xmlFragmentWithAutoRootAssemblyFinder = @" "; - private const string _xmlFragmentWithCustomRootAssemblyFinder = @" - - "; - private const string _xmlFragmentWithMissingCustomRootAssemblyFinder = @""; private const string _xmlFragmentWithSpecificRootAssemblies = @" @@ -46,10 +42,6 @@ public class TypeDiscoveryConfigurationTest private const string _xmlFragmentWithSpecificEmptyRootAssemblies = @" "; - private const string _xmlFragmentWithCustomTypeDiscoveryService = @" - - "; - private const string _xmlFragmentWithMissingCustomTypeDiscoveryService = @""; [Test] public void Deserialization_Default () @@ -65,14 +57,6 @@ public void Deserialization_Auto () Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.Automatic)); } - [Test] - public void Deserialization_CustomSpecificRootAssemblyFinder () - { - var section = Deserialize(_xmlFragmentWithCustomRootAssemblyFinder); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.CustomRootAssemblyFinder)); - Assert.That(section.CustomRootAssemblyFinder.Type, Is.SameAs(typeof(FakeRootAssemblyFinder))); - } - [Test] public void Deserialization_SpecificRootAssemblies () { @@ -90,14 +74,6 @@ public void Deserialization_SpecificEmptyRootAssemblies () Assert.That(section.SpecificRootAssemblies.ByFile.Count, Is.EqualTo(0)); } - [Test] - public void Deserialization_CustomTypeDiscoveryService () - { - var section = Deserialize(_xmlFragmentWithCustomTypeDiscoveryService); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.CustomTypeDiscoveryService)); - Assert.That(section.CustomTypeDiscoveryService.Type, Is.EqualTo(typeof(FakeTypeDiscoveryService))); - } - [Test] public void CreateTypeDiscoveryService_Auto () { @@ -119,30 +95,6 @@ public void CreateTypeDiscoveryService_Auto () Assert.That(((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter, Is.SameAs(ApplicationAssemblyLoaderFilter.Instance)); } - [Test] - public void CreateTypeDiscoveryService_CustomRootAssemblyFinder () - { - var section = Deserialize(_xmlFragmentWithCustomRootAssemblyFinder); - - var service = section.CreateTypeDiscoveryService(); - - Assert.That(service, Is.InstanceOf(typeof(AssemblyFinderTypeDiscoveryService))); - Assert.That(((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder, Is.TypeOf()); - var assemblyFinder = (AssemblyFinder)((CachingAssemblyFinderDecorator)((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder).InnerFinder; - Assert.That(assemblyFinder.RootAssemblyFinder, Is.InstanceOf(typeof(FakeRootAssemblyFinder))); - } - - [Test] - public void CreateTypeDiscoveryService_CustomRootAssemblyFinder_MissingType () - { - var section = Deserialize(_xmlFragmentWithMissingCustomRootAssemblyFinder); - Assert.That( - () => section.CreateTypeDiscoveryService(), - Throws.InstanceOf() - .With.Message.Contains( - "In CustomRootAssemblyFinder mode, a custom root assembly finder must be specified in the type discovery configuration.")); - } - [Test] public void CreateTypeDiscoveryService_SpecificRootAssemblies () { @@ -170,27 +122,6 @@ public void CreateTypeDiscoveryService_SpecificRootAssemblies () Assert.That(((FilteringAssemblyLoader)filePatternFinder.AssemblyLoader).Filter, Is.TypeOf()); } - [Test] - public void CreateTypeDiscoveryService_CustomTypeDiscoveryService () - { - var section = Deserialize(_xmlFragmentWithCustomTypeDiscoveryService); - - var service = section.CreateTypeDiscoveryService(); - - Assert.That(service, Is.InstanceOf(typeof(FakeTypeDiscoveryService))); - } - - [Test] - public void CreateTypeDiscoveryService_CustomTypeDiscoveryService_MissingType () - { - var section = Deserialize(_xmlFragmentWithMissingCustomTypeDiscoveryService); - Assert.That( - () => section.CreateTypeDiscoveryService(), - Throws.InstanceOf() - .With.Message.Contains( - "In CustomTypeDiscoveryService mode, a custom type discovery service must be specified in the type discovery configuration.")); - } - private TypeDiscoveryConfiguration Deserialize (string xmlFragment) { var section = new TypeDiscoveryConfiguration(); diff --git a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs index 3664986c50..f92b9a8307 100644 --- a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs +++ b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs @@ -123,36 +123,5 @@ public void GetTypeResolutionService_Cached () Assert.That(defaultService, Is.SameAs(defaultService2)); } - - [Test] - public void GetTypeDiscoveryService_WithCustomImplementationFromConfigFile_DoesNotThrowOnInitialization () - { - var relativePath = @"Reflection\TestDomain\ContextAwareTypeUtilityTest\app.config"; - var fullPath = Path.Combine(TestContext.CurrentContext.TestDirectory, relativePath); - Assert.That(File.Exists(fullPath)); - - // We run this in a new appdomain/process to ensure that the config can be loaded - // without any initialization problems causing recursive initialization (see RM-8064) -#if NETFRAMEWORK - var appDomainSetup = AppDomain.CurrentDomain.SetupInformation; - appDomainSetup.ConfigurationFile = fullPath; - - var appDomainRunner = new AppDomainRunner( - appDomainSetup, - args => TestAction(Array.Empty())); - - Assert.That(() => appDomainRunner.Run(), Throws.Nothing); -#else - var isolatedCodeRunner = new IsolatedCodeRunner(TestAction); - isolatedCodeRunner.ConfigFile = fullPath; - Assert.That(() => isolatedCodeRunner.Run(), Throws.Nothing); -#endif - - static void TestAction (string[] args) - { - var typeDiscoveryService = ContextAwareTypeUtility.GetTypeDiscoveryService(); - Assert.That(typeDiscoveryService, Is.TypeOf()); - } - } } } diff --git a/Remotion/Core/UnitTests/Reflection/TestDomain/ContextAwareTypeUtilityTest/app.config b/Remotion/Core/UnitTests/Reflection/TestDomain/ContextAwareTypeUtilityTest/app.config deleted file mode 100644 index 275837c852..0000000000 --- a/Remotion/Core/UnitTests/Reflection/TestDomain/ContextAwareTypeUtilityTest/app.config +++ /dev/null @@ -1,9 +0,0 @@ - - - -
- - - - - \ No newline at end of file From 2c49caa9ac07347f6c125a5ffbddbcc3372d194e Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Thu, 7 Dec 2023 10:26:26 +0100 Subject: [PATCH 07/11] RM-5931: Register ITypeResolutionService as a bootstrapped service --- .../TypeResolutionConfiguration.cs | 76 ------------------- .../Reflection/ContextAwareTypeUtility.cs | 15 +--- .../BootstrapServiceConfiguration.cs | 5 ++ Remotion/Core/Core/Utilities/TypeUtility.cs | 3 +- .../Reflection/ContextAwareTypeUtilityTest.cs | 55 ++------------ .../BootstrapServiceConfigurationTest.cs | 6 +- .../ServiceLocation/SafeServiceLocatorTest.cs | 8 ++ 7 files changed, 30 insertions(+), 138 deletions(-) delete mode 100644 Remotion/Core/Core/Configuration/TypeResolution/TypeResolutionConfiguration.cs diff --git a/Remotion/Core/Core/Configuration/TypeResolution/TypeResolutionConfiguration.cs b/Remotion/Core/Core/Configuration/TypeResolution/TypeResolutionConfiguration.cs deleted file mode 100644 index 0b47a6bf82..0000000000 --- a/Remotion/Core/Core/Configuration/TypeResolution/TypeResolutionConfiguration.cs +++ /dev/null @@ -1,76 +0,0 @@ -// This file is part of the re-motion Core Framework (www.re-motion.org) -// Copyright (c) rubicon IT GmbH, www.rubicon.eu -// -// The re-motion Core Framework is free software; you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public License -// as published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// re-motion is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with re-motion; if not, see http://www.gnu.org/licenses. -// -using System; -using System.ComponentModel.Design; -using System.Configuration; -using Remotion.Configuration.TypeDiscovery; -using Remotion.Reflection; -using Remotion.Reflection.TypeResolution; -using Remotion.Utilities; - -namespace Remotion.Configuration.TypeResolution -{ - /// - /// Configures the type discovery performed by . - /// - /// This configuration should be aligned with . See https://www.re-motion.org/jira/browse/RM-6413 - public sealed class TypeResolutionConfiguration : ConfigurationSection - { - private static readonly DoubleCheckedLockingContainer s_current = - new DoubleCheckedLockingContainer(GetTypeResolutionConfiguration); - - /// - /// Gets the current instance. This is used by - /// to retrieve a instance - /// if no is available. - /// - /// The current . - public static TypeResolutionConfiguration Current - { - get { return s_current.Value; } - } - - /// - /// Sets the instance. - /// - /// The new configuration to set as the configuration. - public static void SetCurrent (TypeResolutionConfiguration configuration) - { - s_current.Value = configuration; - } - - private static TypeResolutionConfiguration GetTypeResolutionConfiguration () - { - // return (TypeResolutionConfiguration) ConfigurationWrapper.Current.GetSection ("remotion.typeResolution", false) ?? new TypeResolutionConfiguration(); - return new TypeResolutionConfiguration(new DefaultTypeResolutionService()); - } - - private readonly ITypeResolutionService _typeResolutionService; - - public TypeResolutionConfiguration (ITypeResolutionService typeResolutionService) - { - ArgumentUtility.CheckNotNull("typeResolutionService", typeResolutionService); - - _typeResolutionService = typeResolutionService; - } - - public ITypeResolutionService CreateTypeResolutionService () - { - return _typeResolutionService; - } - } -} diff --git a/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs b/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs index 6243256218..51292dc591 100644 --- a/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs +++ b/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs @@ -18,7 +18,7 @@ using System.ComponentModel.Design; using System.Threading; using Remotion.Configuration.TypeDiscovery; -using Remotion.Configuration.TypeResolution; +using Remotion.ServiceLocation; namespace Remotion.Reflection { @@ -36,11 +36,6 @@ private class Fields new Lazy( () => TypeDiscoveryConfiguration.Current.CreateTypeDiscoveryService(), LazyThreadSafetyMode.ExecutionAndPublication); - - public readonly Lazy DefaultTypeResolutionService = - new Lazy( - () => TypeResolutionConfiguration.Current.CreateTypeResolutionService(), - LazyThreadSafetyMode.ExecutionAndPublication); } private static readonly Fields s_fields = new Fields(); @@ -59,16 +54,14 @@ public static ITypeDiscoveryService GetTypeDiscoveryService () } /// - /// Gets the current context-specific . If an is available, - /// the designer's is returned. Otherwise, the - /// is used to create a new when the property is first retrieved. That instance is stored for later uses. + /// Gets the from the . /// - /// The current context-specific . + [Obsolete("Retrieve via the application's IoC container, e.g. SafeServiceLocator.Current.GetInstance(). (Version 6.0.0)")] public static ITypeResolutionService GetTypeResolutionService () { // Here you could choose to get the ITypeResolutionService from IDesignerHost.GetService (typeof (ITypeResolutionService)) instead of the resolved one. - return s_fields.DefaultTypeResolutionService.Value; + return SafeServiceLocator.Current.GetInstance(); } } } diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs index 2b820e18a1..280b3fb706 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs @@ -16,7 +16,9 @@ // using System; using System.Collections.Generic; +using System.ComponentModel.Design; using Remotion.Logging; +using Remotion.Reflection.TypeResolution; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -38,6 +40,9 @@ public BootstrapServiceConfiguration () // Service Location RegisterImplementationAsSingleton(); + // Type resolution + RegisterImplementationAsSingleton(); + // ReSharper disable once LocalFunctionHidesMethod void RegisterImplementationAsSingleton () where TService : class diff --git a/Remotion/Core/Core/Utilities/TypeUtility.cs b/Remotion/Core/Core/Utilities/TypeUtility.cs index 16323202a0..a1c32f68ee 100644 --- a/Remotion/Core/Core/Utilities/TypeUtility.cs +++ b/Remotion/Core/Core/Utilities/TypeUtility.cs @@ -20,6 +20,7 @@ using System.Diagnostics.CodeAnalysis; using JetBrains.Annotations; using Remotion.Reflection; +using Remotion.ServiceLocation; namespace Remotion.Utilities { @@ -132,7 +133,7 @@ public static string GetAbbreviatedTypeName ([JetBrains.Annotations.NotNull]Type private static ITypeResolutionService TypeResolutionService { - get { return ContextAwareTypeUtility.GetTypeResolutionService(); } + get { return SafeServiceLocator.Current.GetInstance(); } } } } diff --git a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs index f92b9a8307..7fb0e9d340 100644 --- a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs +++ b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs @@ -20,10 +20,10 @@ using Moq; using NUnit.Framework; using Remotion.Configuration.TypeDiscovery; -using Remotion.Configuration.TypeResolution; using Remotion.Development.UnitTesting; using Remotion.Reflection; using Remotion.Reflection.TypeResolution; +using Remotion.ServiceLocation; using Remotion.UnitTests.Configuration.TypeDiscovery; using Remotion.Utilities; #if !NETFRAMEWORK @@ -38,15 +38,12 @@ public class ContextAwareTypeUtilityTest private ITypeDiscoveryService _oldTypeDiscoveryService; private TypeDiscoveryConfiguration _oldTypeDiscoveryConfiguration; private ITypeResolutionService _oldTypeResolutionService; - private TypeResolutionConfiguration _oldTypeResolutionConfiguration; [SetUp] public void SetUp () { _oldTypeDiscoveryService = ContextAwareTypeUtility.GetTypeDiscoveryService(); _oldTypeDiscoveryConfiguration = TypeDiscoveryConfiguration.Current; - _oldTypeResolutionService = ContextAwareTypeUtility.GetTypeResolutionService(); - _oldTypeResolutionConfiguration = TypeResolutionConfiguration.Current; var fields = PrivateInvoke.GetNonPublicStaticField(typeof(ContextAwareTypeUtility), "s_fields"); Assertion.IsNotNull(fields); @@ -54,12 +51,7 @@ public void SetUp () fields, "DefaultTypeDiscoveryService", new Lazy(() => TypeDiscoveryConfiguration.Current.CreateTypeDiscoveryService())); - PrivateInvoke.SetPublicField( - fields, - "DefaultTypeResolutionService", - new Lazy(() => TypeResolutionConfiguration.Current.CreateTypeResolutionService())); TypeDiscoveryConfiguration.SetCurrent(new TypeDiscoveryConfiguration()); - TypeResolutionConfiguration.SetCurrent(new TypeResolutionConfiguration(new DefaultTypeResolutionService())); } [TearDown] @@ -71,57 +63,24 @@ public void TearDown () fields, "DefaultTypeDiscoveryService", new Lazy(() => _oldTypeDiscoveryService)); - PrivateInvoke.SetPublicField( - fields, - "DefaultTypeResolutionService", - new Lazy(() => _oldTypeResolutionService)); TypeDiscoveryConfiguration.SetCurrent(_oldTypeDiscoveryConfiguration); - TypeResolutionConfiguration.SetCurrent(_oldTypeResolutionConfiguration); - } - - [Test] - public void GetTypeDiscoveryService_ComesFromConfiguration () - { - TypeDiscoveryConfiguration.Current.Mode = TypeDiscoveryMode.CustomTypeDiscoveryService; - TypeDiscoveryConfiguration.Current.CustomTypeDiscoveryService.Type = typeof(FakeTypeDiscoveryService); - - var defaultService = ContextAwareTypeUtility.GetTypeDiscoveryService(); - Assert.That(defaultService, Is.InstanceOf(typeof(FakeTypeDiscoveryService))); } [Test] - public void GetTypeDiscoveryService_Cached () + [Ignore("RM-5931")] + public void GetTypeDiscoveryService_LoadsFromSafeServiceLocator () { - TypeDiscoveryConfiguration.Current.Mode = TypeDiscoveryMode.CustomTypeDiscoveryService; - TypeDiscoveryConfiguration.Current.CustomTypeDiscoveryService.Type = typeof(FakeTypeDiscoveryService); - var defaultService = ContextAwareTypeUtility.GetTypeDiscoveryService(); - var defaultService2 = ContextAwareTypeUtility.GetTypeDiscoveryService(); - - Assert.That(defaultService, Is.SameAs(defaultService2)); - } - - [Test] - public void GetTypeResolutionService_ComesFromConfiguration () - { - var typeResolutionServiceStub = new Mock(); - TypeResolutionConfiguration.SetCurrent(new TypeResolutionConfiguration(typeResolutionServiceStub.Object)); - - var defaultService = ContextAwareTypeUtility.GetTypeResolutionService(); - Assert.That(defaultService, Is.SameAs(typeResolutionServiceStub.Object)); + Assert.That(defaultService, Is.SameAs(SafeServiceLocator.Current.GetInstance())); } [Test] - public void GetTypeResolutionService_Cached () + [Obsolete] + public void GetTypeResolutionService_LoadsFromSafeServiceLocator () { - TypeResolutionConfiguration.SetCurrent(new TypeResolutionConfiguration(new DefaultTypeResolutionService())); var defaultService = ContextAwareTypeUtility.GetTypeResolutionService(); - - TypeResolutionConfiguration.SetCurrent(new TypeResolutionConfiguration(new DefaultTypeResolutionService())); - var defaultService2 = ContextAwareTypeUtility.GetTypeResolutionService(); - - Assert.That(defaultService, Is.SameAs(defaultService2)); + Assert.That(defaultService, Is.SameAs(SafeServiceLocator.Current.GetInstance())); } } } diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs index 831d3a11b6..eac19edd90 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs @@ -15,9 +15,11 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.Linq; using NUnit.Framework; using Remotion.Logging; +using Remotion.Reflection.TypeResolution; using Remotion.ServiceLocation; namespace Remotion.UnitTests.ServiceLocation @@ -60,10 +62,10 @@ public void GetRegistrations_HasDefaultRegistrations () var serviceConfigurationEntries = _configuration.GetRegistrations(); Assert.That( serviceConfigurationEntries.Select(e => e.ServiceType), - Is.EquivalentTo(new[] { typeof(ILogManager), typeof(IServiceLocatorProvider) })); + Is.EquivalentTo(new[] { typeof(ILogManager), typeof(IServiceLocatorProvider), typeof(ITypeResolutionService) })); Assert.That( serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.ImplementationType)), - Is.EquivalentTo(new[] { typeof(Log4NetLogManager), typeof(DefaultServiceLocatorProvider) })); + Is.EquivalentTo(new[] { typeof(Log4NetLogManager), typeof(DefaultServiceLocatorProvider), typeof(DefaultTypeResolutionService) })); Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.Lifetime)), Has.All.EqualTo(LifetimeKind.Singleton)); } diff --git a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs index 48cd6b3917..3fe70aa474 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs @@ -16,10 +16,12 @@ // using System; using System.Collections.Generic; +using System.ComponentModel.Design; using Moq; using NUnit.Framework; using Remotion.Development.UnitTesting; using Remotion.Logging; +using Remotion.Reflection.TypeResolution; using Remotion.ServiceLocation; using Remotion.Utilities; @@ -281,6 +283,12 @@ public void DefaultConfiguration_IntegrationTest_IServiceLocatorProvider () Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); } + [Test] + public void DefaultConfiguration_IntegrationTest_ITypeResolutionService () + { + Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); + } + private void ResetSafeServiceLocator (bool resetBootstrapConfiguration = true, bool resetDefaultServiceLocator = true) { var fields = PrivateInvoke.GetNonPublicStaticField(typeof(SafeServiceLocator), "s_fields"); From 05a5e8452999b866460d1f36926195afe912ec19 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Thu, 7 Dec 2023 10:08:25 +0100 Subject: [PATCH 08/11] RM-5931: Register ITypeDiscoveryService as a bootstrapped service --- .../AppContextBasedRootAssemblyFinder.cs | 52 ++++++++++++ ...CurrentAppDomainBasedRootAssemblyFinder.cs | 47 +++++++++++ .../BootstrapServiceConfiguration.cs | 81 +++++++++++++------ .../BootstrapServiceConfigurationTest.cs | 36 ++++++++- .../ServiceLocation/SafeServiceLocatorTest.cs | 32 ++++++++ 5 files changed, 219 insertions(+), 29 deletions(-) create mode 100644 Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/AppContextBasedRootAssemblyFinder.cs create mode 100644 Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/CurrentAppDomainBasedRootAssemblyFinder.cs diff --git a/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/AppContextBasedRootAssemblyFinder.cs b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/AppContextBasedRootAssemblyFinder.cs new file mode 100644 index 0000000000..7340fe649f --- /dev/null +++ b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/AppContextBasedRootAssemblyFinder.cs @@ -0,0 +1,52 @@ +// This file is part of the re-motion Core Framework (www.re-motion.org) +// Copyright (c) rubicon IT GmbH, www.rubicon.eu +// +// The re-motion Core Framework is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// re-motion is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with re-motion; if not, see http://www.gnu.org/licenses. +// +using System.Collections.Generic; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; +using Remotion.Utilities; + +namespace Remotion.Reflection.TypeDiscovery.AssemblyFinding +{ + /// + /// Wraps based on the .. + /// + public class AppContextBasedRootAssemblyFinder : IRootAssemblyFinder + { + public IAssemblyLoader AssemblyLoader { get; } + public IAppContextProvider AppContextProvider { get; } + + public AppContextBasedRootAssemblyFinder (IAssemblyLoader assemblyLoader, IAppContextProvider appContextProvider) + { + ArgumentUtility.CheckNotNull("assemblyLoader", assemblyLoader); + ArgumentUtility.CheckNotNull("appContextProvider", appContextProvider); + + AssemblyLoader = assemblyLoader; + AppContextProvider = appContextProvider; + } + + public IEnumerable FindRootAssemblies () + { + var rootAssemblyFinder = new SearchPathRootAssemblyFinder( + baseDirectory: AppContextProvider.BaseDirectory, + relativeSearchPath: null, + considerDynamicDirectory: false, + dynamicDirectory: null, + AssemblyLoader); + + return rootAssemblyFinder.FindRootAssemblies(); + } + } +} diff --git a/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/CurrentAppDomainBasedRootAssemblyFinder.cs b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/CurrentAppDomainBasedRootAssemblyFinder.cs new file mode 100644 index 0000000000..bb51060caf --- /dev/null +++ b/Remotion/Core/Core/Reflection/TypeDiscovery/AssemblyFinding/CurrentAppDomainBasedRootAssemblyFinder.cs @@ -0,0 +1,47 @@ +// This file is part of the re-motion Core Framework (www.re-motion.org) +// Copyright (c) rubicon IT GmbH, www.rubicon.eu +// +// The re-motion Core Framework is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// re-motion is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with re-motion; if not, see http://www.gnu.org/licenses. +// +#if NETFRAMEWORK + +using System; +using System.Collections.Generic; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; +using Remotion.Utilities; + +namespace Remotion.Reflection.TypeDiscovery.AssemblyFinding +{ + /// + /// Wraps the initialization of based on .. + /// + public class CurrentAppDomainBasedRootAssemblyFinder : IRootAssemblyFinder + { + public IAssemblyLoader AssemblyLoader { get; } + + public CurrentAppDomainBasedRootAssemblyFinder (IAssemblyLoader assemblyLoader) + { + ArgumentUtility.CheckNotNull("assemblyLoader", assemblyLoader); + AssemblyLoader = assemblyLoader; + } + + public IEnumerable FindRootAssemblies () + { + var rootAssemblyFinder = SearchPathRootAssemblyFinder.CreateForCurrentAppDomain(false, AssemblyLoader); + return rootAssemblyFinder.FindRootAssemblies(); + } + } +} + +#endif diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs index 280b3fb706..f96aed8bb1 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs @@ -18,6 +18,9 @@ using System.Collections.Generic; using System.ComponentModel.Design; using Remotion.Logging; +using Remotion.Reflection.TypeDiscovery; +using Remotion.Reflection.TypeDiscovery.AssemblyFinding; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; using Remotion.Reflection.TypeResolution; using Remotion.Utilities; @@ -43,32 +46,17 @@ public BootstrapServiceConfiguration () // Type resolution RegisterImplementationAsSingleton(); - // ReSharper disable once LocalFunctionHidesMethod - void RegisterImplementationAsSingleton () - where TService : class - where TImplementation : class, TService - { - lock (_lock) - { - _registrations.Add( - typeof(TService), - new ServiceConfigurationEntry(typeof(TService), new ServiceImplementationInfo(typeof(TImplementation), LifetimeKind.Singleton, RegistrationType.Single))); - } - } - - // ReSharper disable once LocalFunctionHidesMethod - void RegisterInstanceAsSingleton (Func factory) - where TService : class - where TImplementation : class, TService - { - lock (_lock) - { - var singleton = new Lazy(factory); - _registrations.Add( - typeof(TService), - new ServiceConfigurationEntry(typeof(TService), ServiceImplementationInfo.CreateSingle(() => singleton.Value, LifetimeKind.Singleton))); - } - } + // Type discovery + RegisterInstanceAsSingleton(() => ApplicationAssemblyLoaderFilter.Instance); + RegisterImplementationAsSingleton(); + RegisterImplementationAsSingleton(); +#if NETFRAMEWORK + RegisterImplementationAsSingleton(); +#else + RegisterImplementationAsSingleton(); +#endif + RegisterDecoratedImplementationAsSingleton(); + RegisterImplementationAsSingleton(); } public IReadOnlyCollection GetRegistrations () @@ -88,5 +76,46 @@ public void Register (ServiceConfigurationEntry entry) _registrations[entry.ServiceType] = entry; } } + + private void RegisterImplementationAsSingleton () + where TService : class + where TImplementation : class, TService + { + lock (_lock) + { + _registrations.Add( + typeof(TService), + new ServiceConfigurationEntry(typeof(TService), new ServiceImplementationInfo(typeof(TImplementation), LifetimeKind.Singleton, RegistrationType.Single))); + } + } + + private void RegisterDecoratedImplementationAsSingleton () + where TService : class + where TImplementation : class, TService + where TDecorator : class, TService + { + lock (_lock) + { + _registrations.Add( + typeof(TService), + new ServiceConfigurationEntry( + typeof(TService), + new ServiceImplementationInfo(typeof(TImplementation), LifetimeKind.Singleton, RegistrationType.Single), + new ServiceImplementationInfo(typeof(TDecorator), LifetimeKind.InstancePerDependency, RegistrationType.Decorator))); + } + } + + private void RegisterInstanceAsSingleton (Func factory) + where TService : class + where TImplementation : class, TService + { + lock (_lock) + { + var singleton = new Lazy(factory); + _registrations.Add( + typeof(TService), + new ServiceConfigurationEntry(typeof(TService), ServiceImplementationInfo.CreateSingle(() => singleton.Value, LifetimeKind.Singleton))); + } + } } } diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs index eac19edd90..c79f3ca5ee 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs @@ -19,8 +19,12 @@ using System.Linq; using NUnit.Framework; using Remotion.Logging; +using Remotion.Reflection.TypeDiscovery; +using Remotion.Reflection.TypeDiscovery.AssemblyFinding; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; using Remotion.Reflection.TypeResolution; using Remotion.ServiceLocation; +using Remotion.Utilities; namespace Remotion.UnitTests.ServiceLocation { @@ -62,11 +66,37 @@ public void GetRegistrations_HasDefaultRegistrations () var serviceConfigurationEntries = _configuration.GetRegistrations(); Assert.That( serviceConfigurationEntries.Select(e => e.ServiceType), - Is.EquivalentTo(new[] { typeof(ILogManager), typeof(IServiceLocatorProvider), typeof(ITypeResolutionService) })); + Is.EquivalentTo( + new[] + { + typeof(ILogManager), + typeof(IServiceLocatorProvider), + typeof(ITypeResolutionService), + typeof(IAppContextProvider), typeof(IAssemblyLoader), typeof(IAssemblyLoaderFilter), typeof(IRootAssemblyFinder), typeof(IAssemblyFinder), + typeof(ITypeDiscoveryService) + })); Assert.That( serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.ImplementationType)), - Is.EquivalentTo(new[] { typeof(Log4NetLogManager), typeof(DefaultServiceLocatorProvider), typeof(DefaultTypeResolutionService) })); - Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Select(i => i.Lifetime)), Has.All.EqualTo(LifetimeKind.Singleton)); + Is.EquivalentTo( + new[] + { + typeof(Log4NetLogManager), + typeof(DefaultServiceLocatorProvider), + typeof(DefaultTypeResolutionService), + typeof(AppContextProvider), typeof(FilteringAssemblyLoader), typeof(ApplicationAssemblyLoaderFilter), +#if NETFRAMEWORK + typeof(CurrentAppDomainBasedRootAssemblyFinder), +#else + typeof(AppContextBasedRootAssemblyFinder), +#endif + typeof(AssemblyFinder), typeof(CachingAssemblyFinderDecorator), + typeof(AssemblyFinderTypeDiscoveryService) + })); + Assert.That( + serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Where(i => i.RegistrationType == RegistrationType.Single).Select(i => i.Lifetime)), + Has.All.EqualTo(LifetimeKind.Singleton)); + Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Where(i => i.RegistrationType == RegistrationType.Compound)), Is.Empty); + Assert.That(serviceConfigurationEntries.SelectMany(e => e.ImplementationInfos.Where(i => i.RegistrationType == RegistrationType.Multiple)), Is.Empty); } [Test] diff --git a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs index 3fe70aa474..8b5ee5c72f 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/SafeServiceLocatorTest.cs @@ -21,6 +21,9 @@ using NUnit.Framework; using Remotion.Development.UnitTesting; using Remotion.Logging; +using Remotion.Reflection.TypeDiscovery; +using Remotion.Reflection.TypeDiscovery.AssemblyFinding; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; using Remotion.Reflection.TypeResolution; using Remotion.ServiceLocation; using Remotion.Utilities; @@ -289,6 +292,35 @@ public void DefaultConfiguration_IntegrationTest_ITypeResolutionService () Assert.That(SafeServiceLocator.Current.GetInstance(), Is.InstanceOf()); } + [Test] + public void DefaultConfiguration_IntegrationTest_ITypeDiscoveryService () + { + var typeDiscoveryService = SafeServiceLocator.Current.GetInstance(); + Assert.That(typeDiscoveryService, Is.InstanceOf()); + + var assemblyFindingTypeDiscoveryService = (AssemblyFinderTypeDiscoveryService)typeDiscoveryService; + Assert.That(assemblyFindingTypeDiscoveryService.AssemblyFinder, Is.InstanceOf()); + + var cachingAssemblyFinderDecorator = (CachingAssemblyFinderDecorator)assemblyFindingTypeDiscoveryService.AssemblyFinder; + Assert.That(cachingAssemblyFinderDecorator.InnerFinder, Is.InstanceOf()); + var assemblyFinder = (AssemblyFinder)cachingAssemblyFinderDecorator.InnerFinder; + Assert.That(assemblyFinder.AssemblyLoader, Is.InstanceOf()); + + var filteringAssemblyLoader = (FilteringAssemblyLoader)assemblyFinder.AssemblyLoader; + Assert.That(filteringAssemblyLoader.Filter, Is.InstanceOf()); + +#if NETFRAMEWORK + Assert.That(assemblyFinder.RootAssemblyFinder, Is.InstanceOf()); + var rootAssemblyFinder = (CurrentAppDomainBasedRootAssemblyFinder)assemblyFinder.RootAssemblyFinder; + Assert.That(rootAssemblyFinder.AssemblyLoader, Is.SameAs(assemblyFinder.AssemblyLoader)); +#else + Assert.That(assemblyFinder.RootAssemblyFinder, Is.InstanceOf()); + var rootAssemblyFinder = (AppContextBasedRootAssemblyFinder)assemblyFinder.RootAssemblyFinder; + Assert.That(rootAssemblyFinder.AssemblyLoader, Is.SameAs(assemblyFinder.AssemblyLoader)); + Assert.That(rootAssemblyFinder.AppContextProvider, Is.InstanceOf()); +#endif + } + private void ResetSafeServiceLocator (bool resetBootstrapConfiguration = true, bool resetDefaultServiceLocator = true) { var fields = PrivateInvoke.GetNonPublicStaticField(typeof(SafeServiceLocator), "s_fields"); From 898b8e13b86e84c0298e19213164611bfe10eea6 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Mon, 26 Feb 2024 13:30:13 +0100 Subject: [PATCH 09/11] RM-5931: Register IServiceConfigurationDiscoveryService as a bootstrapped service. --- .../BootstrapServiceConfiguration.cs | 7 ++- ...rapServiceConfigurationDiscoveryService.cs | 57 +++++++++++++++++++ .../DefaultServiceLocator.Registration.cs | 2 +- .../ServiceLocation/DefaultServiceLocator.cs | 4 +- .../DefaultServiceLocatorProvider.cs | 11 ++-- .../ServiceLocation/SafeServiceLocator.cs | 2 +- .../BootstrapServiceConfigurationTest.cs | 4 +- .../DefaultServiceLocatorProviderTest.cs | 18 +++--- 8 files changed, 82 insertions(+), 23 deletions(-) create mode 100644 Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs index f96aed8bb1..b3f9c8b87e 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfiguration.cs @@ -40,9 +40,6 @@ public BootstrapServiceConfiguration () // Logging RegisterInstanceAsSingleton(() => new Log4NetLogManager()); - // Service Location - RegisterImplementationAsSingleton(); - // Type resolution RegisterImplementationAsSingleton(); @@ -57,6 +54,10 @@ public BootstrapServiceConfiguration () #endif RegisterDecoratedImplementationAsSingleton(); RegisterImplementationAsSingleton(); + + // Service Location + RegisterImplementationAsSingleton(); + RegisterImplementationAsSingleton(); } public IReadOnlyCollection GetRegistrations () diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs new file mode 100644 index 0000000000..c4c5e8e9a9 --- /dev/null +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs @@ -0,0 +1,57 @@ +// This file is part of the re-motion Core Framework (www.re-motion.org) +// Copyright (c) rubicon IT GmbH, www.rubicon.eu +// +// The re-motion Core Framework is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// re-motion is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with re-motion; if not, see http://www.gnu.org/licenses. +// +using System; +using System.Collections.Generic; +using System.Reflection; +using Remotion.Reflection; + +namespace Remotion.ServiceLocation +{ + /// + /// Implementation of the used only to satisfy a mandatory parameter requirement + /// when instantiating the in a bootstrapping context. + /// + internal class BootstrapServiceConfigurationDiscoveryService : IServiceConfigurationDiscoveryService + { + public BootstrapServiceConfigurationDiscoveryService () + { + } + + public IEnumerable GetDefaultConfiguration () + { + throw new NotSupportedException($"The {nameof(BootstrapServiceConfigurationDiscoveryService)} does not support the automatic composition of the service configuration."); + } + + public IEnumerable GetDefaultConfiguration (IEnumerable serviceTypes) + { + throw new NotSupportedException($"The {nameof(BootstrapServiceConfigurationDiscoveryService)} does not support the automatic composition of the service configuration."); + } + + public IEnumerable GetDefaultConfiguration (IEnumerable assemblies) + { + throw new NotSupportedException($"The {nameof(BootstrapServiceConfigurationDiscoveryService)} does not support the automatic composition of the service configuration."); + } + + public ServiceConfigurationEntry GetDefaultConfiguration (Type serviceType) + { + throw new NotSupportedException( + $"The {nameof(BootstrapServiceConfigurationDiscoveryService)} does not support the automatic composition of the service configuration for a type. " + + $"Register the requested type '{serviceType.GetFullNameSafe()}' via {nameof(SafeServiceLocator)}.{nameof(SafeServiceLocator.BootstrapConfiguration)} " + + $"before resolving an instance of the type."); + } + } +} diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.Registration.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.Registration.cs index 611cd6b3ba..c98bc1a1da 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.Registration.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.Registration.cs @@ -85,7 +85,7 @@ private Registration GetOrCreateRegistrationWithActivationException (Type servic private Registration CreateRegistrationFromType (Type serviceType) { - var serviceConfigurationEntry = _serviceConfigurationDiscoveryService.GetDefaultConfiguration(serviceType); + var serviceConfigurationEntry = ServiceConfigurationDiscoveryService.GetDefaultConfiguration(serviceType); return CreateRegistration(serviceConfigurationEntry); } diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs index 43b277dd41..f244837544 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs @@ -77,13 +77,13 @@ public static DefaultServiceLocator CreateWithBootstrappedServices () return defaultServiceLocator; } - private readonly IServiceConfigurationDiscoveryService _serviceConfigurationDiscoveryService; + public IServiceConfigurationDiscoveryService ServiceConfigurationDiscoveryService { get; } public DefaultServiceLocator (IServiceConfigurationDiscoveryService serviceConfigurationDiscoveryService) { ArgumentUtility.CheckNotNull("serviceConfigurationDiscoveryService", serviceConfigurationDiscoveryService); - _serviceConfigurationDiscoveryService = serviceConfigurationDiscoveryService; + ServiceConfigurationDiscoveryService = serviceConfigurationDiscoveryService; // Optimized for memory allocations _createRegistrationFromTypeFunc = CreateRegistrationFromType; diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs index 40cc9ba09d..2f8447681e 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocatorProvider.cs @@ -16,7 +16,6 @@ // using System; using System.Collections.Generic; -using Remotion.Reflection; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -29,16 +28,20 @@ public class DefaultServiceLocatorProvider : IServiceLocatorProvider { public const int Position = 0; - public DefaultServiceLocatorProvider () + public IServiceConfigurationDiscoveryService ServiceConfigurationDiscoveryService { get; } + + public DefaultServiceLocatorProvider (IServiceConfigurationDiscoveryService serviceConfigurationDiscoveryService) { + ArgumentUtility.CheckNotNull("serviceConfigurationDiscoveryService", serviceConfigurationDiscoveryService); + + ServiceConfigurationDiscoveryService = serviceConfigurationDiscoveryService; } public IServiceLocator GetServiceLocator (IReadOnlyCollection serviceConfigurationEntries) { ArgumentUtility.CheckNotNull("serviceConfigurationEntries", serviceConfigurationEntries); - var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); - var defaultServiceLocator = new DefaultServiceLocator(defaultServiceConfigurationDiscoveryService); + var defaultServiceLocator = new DefaultServiceLocator(ServiceConfigurationDiscoveryService); foreach (var serviceConfigurationEntry in serviceConfigurationEntries) defaultServiceLocator.Register(serviceConfigurationEntry); diff --git a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs index 664b2a30e4..420552f4b4 100644 --- a/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/SafeServiceLocator.cs @@ -110,7 +110,7 @@ private static IServiceLocator GetDefaultServiceLocator () // Temporarily set the bootstrapper to allow for reentrancy to SafeServiceLocator.Current. // Since we're called from s_defaultServiceLocator.Value's getter, we can be sure that our return value will overwrite the bootstrapper. - var bootstrapServiceLocatorProvider = new DefaultServiceLocatorProvider(); + var bootstrapServiceLocatorProvider = new DefaultServiceLocatorProvider(new BootstrapServiceConfigurationDiscoveryService()); var bootstrapServiceLocator = bootstrapServiceLocatorProvider.GetServiceLocator(bootstrapServiceLocatorEntries); s_fields.DefaultServiceLocator.Value = bootstrapServiceLocator; diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs index c79f3ca5ee..123c5f6c7e 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationTest.cs @@ -70,7 +70,7 @@ public void GetRegistrations_HasDefaultRegistrations () new[] { typeof(ILogManager), - typeof(IServiceLocatorProvider), + typeof(IServiceLocatorProvider), typeof(IServiceConfigurationDiscoveryService), typeof(ITypeResolutionService), typeof(IAppContextProvider), typeof(IAssemblyLoader), typeof(IAssemblyLoaderFilter), typeof(IRootAssemblyFinder), typeof(IAssemblyFinder), typeof(ITypeDiscoveryService) @@ -81,7 +81,7 @@ public void GetRegistrations_HasDefaultRegistrations () new[] { typeof(Log4NetLogManager), - typeof(DefaultServiceLocatorProvider), + typeof(DefaultServiceLocatorProvider), typeof(DefaultServiceConfigurationDiscoveryService), typeof(DefaultTypeResolutionService), typeof(AppContextProvider), typeof(FilteringAssemblyLoader), typeof(ApplicationAssemblyLoaderFilter), #if NETFRAMEWORK diff --git a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorProviderTest.cs b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorProviderTest.cs index d57b3e33d2..e2af94d817 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorProviderTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceLocatorProviderTest.cs @@ -15,6 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using Moq; using NUnit.Framework; using Remotion.ServiceLocation; @@ -23,20 +24,15 @@ namespace Remotion.UnitTests.ServiceLocation [TestFixture] public class DefaultServiceLocatorProviderTest { - private DefaultServiceLocatorProvider _provider; - - [SetUp] - public void SetUp () - { - _provider = new DefaultServiceLocatorProvider(); - } - [Test] public void GetServiceLocator () { - var sloc = _provider.GetServiceLocator(Array.AsReadOnly(new ServiceConfigurationEntry[0])); + var serviceConfigurationDiscoveryServiceStub = Mock.Of(MockBehavior.Strict); + var provider = new DefaultServiceLocatorProvider(serviceConfigurationDiscoveryServiceStub); + var sloc = provider.GetServiceLocator(Array.AsReadOnly(new ServiceConfigurationEntry[0])); Assert.That(sloc, Is.TypeOf()); + Assert.That(((DefaultServiceLocator)sloc).ServiceConfigurationDiscoveryService, Is.SameAs(serviceConfigurationDiscoveryServiceStub)); } [Test] @@ -44,7 +40,9 @@ public void GetServiceLocator_IncludesBootstrapConfiguration () { var entry = new ServiceConfigurationEntry(typeof(IService), new ServiceImplementationInfo(typeof(Service), LifetimeKind.InstancePerDependency)); - var sloc = _provider.GetServiceLocator(Array.AsReadOnly(new[] { entry })); + var serviceConfigurationDiscoveryServiceStub = Mock.Of(MockBehavior.Strict); + var provider = new DefaultServiceLocatorProvider(serviceConfigurationDiscoveryServiceStub); + var sloc = provider.GetServiceLocator(Array.AsReadOnly(new[] { entry })); Assert.That(sloc, Is.TypeOf()); Assert.That(sloc.GetInstance(), Is.Not.Null.And.TypeOf()); From 410f6ca786db212083aa96e243eaec7de1431299 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Tue, 27 Feb 2024 09:37:55 +0100 Subject: [PATCH 10/11] f RM-5931: Register IServiceConfigurationDiscoveryService as a bootstrapped service. --- .../BootstrapServiceConfigurationDiscoveryService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs index c4c5e8e9a9..117278e928 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationDiscoveryService.cs @@ -25,7 +25,7 @@ namespace Remotion.ServiceLocation /// Implementation of the used only to satisfy a mandatory parameter requirement /// when instantiating the in a bootstrapping context. ///
- internal class BootstrapServiceConfigurationDiscoveryService : IServiceConfigurationDiscoveryService + public class BootstrapServiceConfigurationDiscoveryService : IServiceConfigurationDiscoveryService { public BootstrapServiceConfigurationDiscoveryService () { From 0d8cb2e83d1c78bd758519f8f07c0c73730576c7 Mon Sep 17 00:00:00 2001 From: Michael Ketting Date: Tue, 27 Feb 2024 11:09:08 +0100 Subject: [PATCH 11/11] TEMP: possibly split to first take the changes in the various unit tests and then the removal of ContextAwareTypeUtility --- .../TypeDiscoveryConfiguration.cs | 63 +------------- .../Reflection/ContextAwareTypeUtility.cs | 21 +---- .../Schemas/TypeDiscoveryConfiguration.xsd | 9 -- ...BootstrapServiceConfigurationExtensions.cs | 20 +++++ .../ServiceLocation/DefaultServiceLocator.cs | 11 ++- .../ExtensibleEnumDefinitionCacheTest.cs | 9 +- .../ExtensibleEnumValueDiscoveryService.cs | 7 +- .../Program.cs | 12 ++- ...iesAreNotSubjectToApplicationFilterTest.cs | 87 ------------------- .../TypeDiscoveryConfigurationTest.cs | 75 ++-------------- Remotion/Core/UnitTests/Core.UnitTests.csproj | 3 + .../Reflection/ContextAwareTypeUtilityTest.cs | 44 +--------- ...strapServiceConfigurationExtensionsTest.cs | 86 ++++++++++++++++++ ...erviceConfigurationDiscoveryServiceTest.cs | 3 +- .../StandardConfiguration.cs | 2 +- .../Factories/MappingReflectorObjectMother.cs | 2 +- .../ParticipantRegistrationTest.cs | 26 ++++-- .../Mapping/MappingReflectorTest.cs | 17 +--- .../CustomStorageObjectFactoryTestBase.cs | 2 +- .../MappingReflector.cs | 50 ----------- .../UnitTesting/DomainObjects/SetUpFixture.cs | 2 +- .../DeclarativeConfigurationBuilder.cs | 10 +-- .../ParticipantRegistrationTest.cs | 18 ++-- ...larativeConfigurationBuilderGeneralTest.cs | 25 ++---- .../Core/Validation/GeneralValidationTest.cs | 9 +- ...ceBasedValidationRuleCollectorReflector.cs | 25 ++---- ...sedValidationRuleCollectorReflectorTest.cs | 2 +- ...sedValidationRuleCollectorReflectorTest.cs | 12 +-- .../Core.UnitTests/SetUpFixture.cs | 2 +- SecurityManager/Metadata.Importer/Program.cs | 2 +- 30 files changed, 208 insertions(+), 448 deletions(-) delete mode 100644 Remotion/Core/UnitTests/Configuration/TypeDiscovery/IntegrationTests/SpecificRootAssemblies/SpecificRootAssembliesAreNotSubjectToApplicationFilterTest.cs create mode 100644 Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationExtensionsTest.cs diff --git a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs index a151257e4a..939b0a232b 100644 --- a/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs +++ b/Remotion/Core/Core/Configuration/TypeDiscovery/TypeDiscoveryConfiguration.cs @@ -70,22 +70,7 @@ public TypeDiscoveryConfiguration () } /// - /// Gets or sets the to be used for type discovery. - /// - /// The to be used for type discovery. - [ConfigurationProperty("mode", DefaultValue = TypeDiscoveryMode.Automatic, IsRequired = false)] - public TypeDiscoveryMode Mode - { - get { return (TypeDiscoveryMode)this["mode"]; } - set { this["mode"] = value; } - } - - /// - /// Gets a describing specific root assemblies to be used. This is only relevant - /// if is set to . In this mode, an - /// is created, and the given root assemblies are employed for type discovery. - /// Note that even if an assembly is specified as a root assembly, the default filtering rules () - /// still apply even for that assembly. + /// Gets a describing specific root assemblies to be used. /// /// A describing specific root assemblies to be used. [ConfigurationProperty("specificRootAssemblies", IsRequired = false)] @@ -93,51 +78,5 @@ public RootAssembliesElement SpecificRootAssemblies { get { return (RootAssembliesElement)this["specificRootAssemblies"]; } } - - /// - /// Creates an instance as indicated by . - /// - /// A new that discovers types as indicated by . - public ITypeDiscoveryService CreateTypeDiscoveryService () - { - switch (Mode) - { - case TypeDiscoveryMode.SpecificRootAssemblies: - return CreateServiceWithSpecificRootAssemblies(); - default: - return CreateServiceWithAutomaticDiscovery(); - } - } - - private ITypeDiscoveryService CreateServiceWithSpecificRootAssemblies () - { - var assemblyLoader = CreateAllAssemblyLoader(); - var rootAssemblyFinder = SpecificRootAssemblies.CreateRootAssemblyFinder(assemblyLoader); - return CreateServiceWithAssemblyFinder(rootAssemblyFinder); - } - - private ITypeDiscoveryService CreateServiceWithAutomaticDiscovery () - { - var assemblyLoader = CreateApplicationAssemblyLoader(); - var searchPathRootAssemblyFinder = SearchPathRootAssemblyFinder.CreateForCurrentAppDomain(false, assemblyLoader); - return CreateServiceWithAssemblyFinder(searchPathRootAssemblyFinder); - } - - private ITypeDiscoveryService CreateServiceWithAssemblyFinder (IRootAssemblyFinder customRootAssemblyFinder) - { - var filteringAssemblyLoader = CreateApplicationAssemblyLoader(); - var assemblyFinder = new CachingAssemblyFinderDecorator(new AssemblyFinder(customRootAssemblyFinder, filteringAssemblyLoader)); - return new AssemblyFinderTypeDiscoveryService(assemblyFinder); - } - - private IAssemblyLoader CreateApplicationAssemblyLoader () - { - return new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance); - } - - private IAssemblyLoader CreateAllAssemblyLoader () - { - return new FilteringAssemblyLoader(new LoadAllAssemblyLoaderFilter()); - } } } diff --git a/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs b/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs index 51292dc591..9117bb9807 100644 --- a/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs +++ b/Remotion/Core/Core/Reflection/ContextAwareTypeUtility.cs @@ -16,8 +16,6 @@ // using System; using System.ComponentModel.Design; -using System.Threading; -using Remotion.Configuration.TypeDiscovery; using Remotion.ServiceLocation; namespace Remotion.Reflection @@ -29,28 +27,15 @@ namespace Remotion.Reflection /// public static class ContextAwareTypeUtility { - /// Workaround to allow reflection to reset the fields since setting a static readonly field is not supported in .NET 3.0 and later. - private class Fields - { - public readonly Lazy DefaultTypeDiscoveryService = - new Lazy( - () => TypeDiscoveryConfiguration.Current.CreateTypeDiscoveryService(), - LazyThreadSafetyMode.ExecutionAndPublication); - } - - private static readonly Fields s_fields = new Fields(); - /// - /// Gets the current context-specific . If an is available, - /// the designer's is returned. Otherwise, the - /// is used to create a new when the property is first retrieved. That instance is stored for later uses. + /// Gets the current context-specific . /// - /// The current context-specific . + [Obsolete("Retrieve via the application's IoC container, e.g. SafeServiceLocator.Current.GetInstance(). (Version 6.0.0)")] public static ITypeDiscoveryService GetTypeDiscoveryService () { // Here you could choose to get the ITypeDiscoveryService from IDesignerHost.GetService (typeof (ITypeDiscoveryService)) instead of the resolved one. - return s_fields.DefaultTypeDiscoveryService.Value; + return SafeServiceLocator.Current.GetInstance(); } /// diff --git a/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd b/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd index 0dfa5efeba..4bc7d8f111 100644 --- a/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd +++ b/Remotion/Core/Core/Schemas/TypeDiscoveryConfiguration.xsd @@ -44,15 +44,6 @@ - - - - - - - - - diff --git a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs index 40b342fd9e..2c6e63b595 100644 --- a/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs +++ b/Remotion/Core/Core/ServiceLocation/BootstrapServiceConfigurationExtensions.cs @@ -15,6 +15,9 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using Remotion.Configuration.TypeDiscovery; +using Remotion.Reflection.TypeDiscovery.AssemblyFinding; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -63,5 +66,22 @@ public static void Register (this IBootstrapServiceConfiguration boots typeof(TService), ServiceImplementationInfo.CreateSingle(() => instance, LifetimeKind.Singleton))); } + + /// + /// The given root assemblies are employed for type discovery. + /// + /// + public static void RegisterSpecificRootAssemblies (this IBootstrapServiceConfiguration bootstrapServiceConfiguration) + { + ArgumentUtility.CheckNotNull("bootstrapServiceConfiguration", bootstrapServiceConfiguration); + + var assemblyLoader = new FilteringAssemblyLoader(new LoadAllAssemblyLoaderFilter()); + var specificRootAssemblies = TypeDiscoveryConfiguration.Current.SpecificRootAssemblies; + var namedFinder = specificRootAssemblies.ByName.CreateRootAssemblyFinder(assemblyLoader); + var filePatternFinder = specificRootAssemblies.ByFile.CreateRootAssemblyFinder(assemblyLoader); + var rootAssemblyFinder = new CompositeRootAssemblyFinder(new IRootAssemblyFinder[] { namedFinder, filePatternFinder }); + + bootstrapServiceConfiguration.Register(rootAssemblyFinder); + } } } diff --git a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs index f244837544..000168c34a 100644 --- a/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs +++ b/Remotion/Core/Core/ServiceLocation/DefaultServiceLocator.cs @@ -16,10 +16,9 @@ // using System; using System.Collections.Generic; +using System.ComponentModel.Design; using System.Linq; -using Remotion.Logging; using Remotion.Reflection; -using Remotion.Reflection.TypeDiscovery; using Remotion.Utilities; namespace Remotion.ServiceLocation @@ -68,9 +67,13 @@ public sealed partial class DefaultServiceLocator : IServiceLocator public static DefaultServiceLocator CreateWithBootstrappedServices () { - var defaultServiceLocator = new DefaultServiceLocator(new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService())); - var bootstrapServiceLocatorEntries = SafeServiceLocator.BootstrapConfiguration.GetRegistrations(); + + var provider = new DefaultServiceLocatorProvider(new BootstrapServiceConfigurationDiscoveryService()); + var bootstrapServiceLocator = provider.GetServiceLocator(bootstrapServiceLocatorEntries); + var typeDiscoveryService = bootstrapServiceLocator.GetInstance(); + + var defaultServiceLocator = new DefaultServiceLocator(new DefaultServiceConfigurationDiscoveryService(typeDiscoveryService)); foreach (var serviceConfigurationEntry in bootstrapServiceLocatorEntries) defaultServiceLocator.Register(serviceConfigurationEntry); diff --git a/Remotion/Core/ExtensibleEnums.UnitTests/Infrastructure/ExtensibleEnumDefinitionCacheTest.cs b/Remotion/Core/ExtensibleEnums.UnitTests/Infrastructure/ExtensibleEnumDefinitionCacheTest.cs index 8977fe29fe..b493d5bebe 100644 --- a/Remotion/Core/ExtensibleEnums.UnitTests/Infrastructure/ExtensibleEnumDefinitionCacheTest.cs +++ b/Remotion/Core/ExtensibleEnums.UnitTests/Infrastructure/ExtensibleEnumDefinitionCacheTest.cs @@ -15,12 +15,12 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using NUnit.Framework; using Remotion.Development.NUnit.UnitTesting; using Remotion.Development.UnitTesting; using Remotion.ExtensibleEnums.Infrastructure; using Remotion.ExtensibleEnums.UnitTests.TestDomain; -using Remotion.Reflection; using Remotion.ServiceLocation; namespace Remotion.ExtensibleEnums.UnitTests.Infrastructure @@ -30,12 +30,15 @@ public class ExtensibleEnumDefinitionCacheTest { private ExtensibleEnumDefinitionCache _cache; private DefaultServiceLocator _serviceLocator; + private ITypeDiscoveryService _typeDiscoveryService; [SetUp] public void SetUp () { _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); - _cache = new ExtensibleEnumDefinitionCache(new ExtensibleEnumValueDiscoveryService()); + _typeDiscoveryService = _serviceLocator.GetInstance(); + + _cache = new ExtensibleEnumDefinitionCache(new ExtensibleEnumValueDiscoveryService(_typeDiscoveryService)); } [Test] @@ -44,7 +47,7 @@ public void Initialization () Assert.That(_cache.ValueDiscoveryService, Is.InstanceOf(typeof(ExtensibleEnumValueDiscoveryService))); Assert.That( ((ExtensibleEnumValueDiscoveryService)_cache.ValueDiscoveryService).TypeDiscoveryService, - Is.SameAs(ContextAwareTypeUtility.GetTypeDiscoveryService())); + Is.SameAs(_typeDiscoveryService)); } [Test] diff --git a/Remotion/Core/ExtensibleEnums/Infrastructure/ExtensibleEnumValueDiscoveryService.cs b/Remotion/Core/ExtensibleEnums/Infrastructure/ExtensibleEnumValueDiscoveryService.cs index 77b2459dbf..2ac62a0d80 100644 --- a/Remotion/Core/ExtensibleEnums/Infrastructure/ExtensibleEnumValueDiscoveryService.cs +++ b/Remotion/Core/ExtensibleEnums/Infrastructure/ExtensibleEnumValueDiscoveryService.cs @@ -38,12 +38,7 @@ public class ExtensibleEnumValueDiscoveryService : IExtensibleEnumValueDiscovery private readonly bool _excludeGlobalTypes = !AssemblyTypeCache.IsGacAssembly(typeof(ExtensibleEnum<>).Assembly); - public ExtensibleEnumValueDiscoveryService () - { - _typeDiscoveryService = ContextAwareTypeUtility.GetTypeDiscoveryService(); - } - - protected ExtensibleEnumValueDiscoveryService (ITypeDiscoveryService typeDiscoveryService) + public ExtensibleEnumValueDiscoveryService (ITypeDiscoveryService typeDiscoveryService) { ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService); diff --git a/Remotion/Core/ServiceLocation.PerformanceTestConsole/Program.cs b/Remotion/Core/ServiceLocation.PerformanceTestConsole/Program.cs index 66f7b3811f..6f29a78ce5 100644 --- a/Remotion/Core/ServiceLocation.PerformanceTestConsole/Program.cs +++ b/Remotion/Core/ServiceLocation.PerformanceTestConsole/Program.cs @@ -15,13 +15,12 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.Linq; using log4net.Config; -using Remotion.Reflection; -using Remotion.ServiceLocation; using Remotion.Utilities; -namespace Core.ServiceLocation.PerformanceTestConsole +namespace Remotion.ServiceLocation.PerformanceTestConsole { internal static class Program { @@ -29,7 +28,12 @@ private static void Main (string[] args) { Console.WriteLine("{0} - Application started", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss,fff")); XmlConfigurator.Configure(); - var typeDiscoveryService = ContextAwareTypeUtility.GetTypeDiscoveryService(); + + var bootstrapServiceLocatorEntries = SafeServiceLocator.BootstrapConfiguration.GetRegistrations(); + var provider = new DefaultServiceLocatorProvider(new BootstrapServiceConfigurationDiscoveryService()); + var bootstrapServiceLocator = provider.GetServiceLocator(bootstrapServiceLocatorEntries); + var typeDiscoveryService = bootstrapServiceLocator.GetInstance(); + var domainObjectType = Type.GetType("Remotion.Data.DomainObjects.DomainObject, Remotion.Data.DomainObjects", true, false); typeDiscoveryService.GetTypes(domainObjectType, false); typeDiscoveryService.GetTypes(domainObjectType, false); diff --git a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/IntegrationTests/SpecificRootAssemblies/SpecificRootAssembliesAreNotSubjectToApplicationFilterTest.cs b/Remotion/Core/UnitTests/Configuration/TypeDiscovery/IntegrationTests/SpecificRootAssemblies/SpecificRootAssembliesAreNotSubjectToApplicationFilterTest.cs deleted file mode 100644 index 005aba3143..0000000000 --- a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/IntegrationTests/SpecificRootAssemblies/SpecificRootAssembliesAreNotSubjectToApplicationFilterTest.cs +++ /dev/null @@ -1,87 +0,0 @@ -// This file is part of the re-motion Core Framework (www.re-motion.org) -// Copyright (c) rubicon IT GmbH, www.rubicon.eu -// -// The re-motion Core Framework is free software; you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public License -// as published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// re-motion is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with re-motion; if not, see http://www.gnu.org/licenses. -// -using System; -using NUnit.Framework; -using Remotion.Configuration.TypeDiscovery; -using Remotion.Development.UnitTesting.Configuration; -using Remotion.Reflection.TypeDiscovery.AssemblyLoading; - -namespace Remotion.UnitTests.Configuration.TypeDiscovery.IntegrationTests.SpecificRootAssemblies -{ - [TestFixture] - public class SpecificRootAssembliesAreNotSubjectToApplicationFilterTest - { - private const string c_xmlFragmentWithMscorlibByName = @" - - - - - - "; - - private static readonly string s_xmlFragmentWithAssemblyByFilePattern = - @" - - - - - - "; - - [Test] - public void Deserialization_SpecificRootAssemblies_ByName () - { - var section = Deserialize(c_xmlFragmentWithMscorlibByName); - - var service = section.CreateTypeDiscoveryService(); - - var types = service.GetTypes(null, false); - Assert.That(types, Has.Member(typeof(Moq.Capture))); - } - - [Test] - public void Deserialization_SpecificRootAssemblies_ByFilePattern () - { - ApplicationAssemblyLoaderFilter.Instance.AddIgnoredAssembly(GetTestAssemblyName()); - try - { - var section = Deserialize(s_xmlFragmentWithAssemblyByFilePattern); - - var service = section.CreateTypeDiscoveryService(); - - var types = service.GetTypes(null, false); - Assert.That(types, Has.Member(typeof(SpecificRootAssembliesAreNotSubjectToApplicationFilterTest))); - } - finally - { - ApplicationAssemblyLoaderFilter.Instance.Reset(); - } - } - - private TypeDiscoveryConfiguration Deserialize (string xmlFragment) - { - var section = new TypeDiscoveryConfiguration(); - ConfigurationHelper.DeserializeSection(section, xmlFragment); - return section; - } - - private static string GetTestAssemblyName () - { - return typeof(SpecificRootAssembliesAreNotSubjectToApplicationFilterTest).Assembly.GetName().Name; - } - } -} diff --git a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs b/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs index 6a1f0cb66f..a0518b49df 100644 --- a/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs +++ b/Remotion/Core/UnitTests/Configuration/TypeDiscovery/TypeDiscoveryConfigurationTest.cs @@ -30,16 +30,14 @@ namespace Remotion.UnitTests.Configuration.TypeDiscovery public class TypeDiscoveryConfigurationTest { private const string _xmlFragmentDefault = @""; - private const string _xmlFragmentWithAutoRootAssemblyFinder = @" - "; - private const string _xmlFragmentWithSpecificRootAssemblies = @" + private const string _xmlFragmentWithSpecificRootAssemblies = @" "; - private const string _xmlFragmentWithSpecificEmptyRootAssemblies = @" + private const string _xmlFragmentWithSpecificEmptyRootAssemblies = @" "; @@ -47,81 +45,18 @@ public class TypeDiscoveryConfigurationTest public void Deserialization_Default () { var section = Deserialize(_xmlFragmentDefault); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.Automatic)); - } - - [Test] - public void Deserialization_Auto () - { - var section = Deserialize(_xmlFragmentWithAutoRootAssemblyFinder); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.Automatic)); + Assert.That(section.SpecificRootAssemblies, Is.Not.Null); + Assert.That(section.SpecificRootAssemblies.ByName, Is.Empty); + Assert.That(section.SpecificRootAssemblies.ByFile, Is.Empty); } [Test] public void Deserialization_SpecificRootAssemblies () { var section = Deserialize(_xmlFragmentWithSpecificRootAssemblies); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.SpecificRootAssemblies)); Assert.That(section.SpecificRootAssemblies.ByName.Single().Name, Is.EqualTo("mscorlib")); } - [Test] - public void Deserialization_SpecificEmptyRootAssemblies () - { - var section = Deserialize(_xmlFragmentWithSpecificEmptyRootAssemblies); - Assert.That(section.Mode, Is.EqualTo(TypeDiscoveryMode.SpecificRootAssemblies)); - Assert.That(section.SpecificRootAssemblies.ByName.Count, Is.EqualTo(0)); - Assert.That(section.SpecificRootAssemblies.ByFile.Count, Is.EqualTo(0)); - } - - [Test] - public void CreateTypeDiscoveryService_Auto () - { - var section = Deserialize(_xmlFragmentWithAutoRootAssemblyFinder); - - var service = section.CreateTypeDiscoveryService(); - - Assert.That(service, Is.InstanceOf(typeof(AssemblyFinderTypeDiscoveryService))); - Assert.That(((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder, Is.TypeOf()); - var assemblyFinder = (AssemblyFinder)((CachingAssemblyFinderDecorator)((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder).InnerFinder; - Assert.That(assemblyFinder.RootAssemblyFinder, Is.InstanceOf(typeof(SearchPathRootAssemblyFinder))); - - var searchPathRootAssemblyFinder = (SearchPathRootAssemblyFinder)assemblyFinder.RootAssemblyFinder; - Assert.That(searchPathRootAssemblyFinder.BaseDirectory, Is.EqualTo(AppContext.BaseDirectory)); - Assert.That(searchPathRootAssemblyFinder.AssemblyLoader, Is.TypeOf()); - Assert.That(((FilteringAssemblyLoader)searchPathRootAssemblyFinder.AssemblyLoader).Filter, Is.SameAs(ApplicationAssemblyLoaderFilter.Instance)); - - Assert.That(assemblyFinder.AssemblyLoader, Is.TypeOf()); - Assert.That(((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter, Is.SameAs(ApplicationAssemblyLoaderFilter.Instance)); - } - - [Test] - public void CreateTypeDiscoveryService_SpecificRootAssemblies () - { - var section = Deserialize(_xmlFragmentWithSpecificRootAssemblies); - - var service = section.CreateTypeDiscoveryService(); - - Assert.That(service, Is.InstanceOf(typeof(AssemblyFinderTypeDiscoveryService))); - Assert.That(((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder, Is.TypeOf()); - var assemblyFinder = (AssemblyFinder)((CachingAssemblyFinderDecorator)((AssemblyFinderTypeDiscoveryService)service).AssemblyFinder).InnerFinder; - Assert.That(assemblyFinder.RootAssemblyFinder, Is.InstanceOf(typeof(CompositeRootAssemblyFinder))); - - var rootAssemblyFinder = (CompositeRootAssemblyFinder)assemblyFinder.RootAssemblyFinder; - Assert.That(rootAssemblyFinder.InnerFinders.Count, Is.EqualTo(2)); - Assert.That(rootAssemblyFinder.InnerFinders[0], Is.InstanceOf(typeof(NamedRootAssemblyFinder))); - - var namedFinder = ((NamedRootAssemblyFinder)rootAssemblyFinder.InnerFinders[0]); - Assert.That(namedFinder.Specifications.First().AssemblyName.ToString(), Is.EqualTo("mscorlib")); - Assert.That(namedFinder.AssemblyLoader, Is.TypeOf()); - Assert.That(((FilteringAssemblyLoader)namedFinder.AssemblyLoader).Filter, Is.TypeOf()); - - var filePatternFinder = ((FilePatternRootAssemblyFinder)rootAssemblyFinder.InnerFinders[1]); - Assert.That(filePatternFinder.Specifications.ToArray(), Is.Empty); - Assert.That(filePatternFinder.AssemblyLoader, Is.TypeOf()); - Assert.That(((FilteringAssemblyLoader)filePatternFinder.AssemblyLoader).Filter, Is.TypeOf()); - } - private TypeDiscoveryConfiguration Deserialize (string xmlFragment) { var section = new TypeDiscoveryConfiguration(); diff --git a/Remotion/Core/UnitTests/Core.UnitTests.csproj b/Remotion/Core/UnitTests/Core.UnitTests.csproj index c64afd0681..6f4619f48d 100644 --- a/Remotion/Core/UnitTests/Core.UnitTests.csproj +++ b/Remotion/Core/UnitTests/Core.UnitTests.csproj @@ -46,6 +46,9 @@ + + + diff --git a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs index 7fb0e9d340..1c8d107e04 100644 --- a/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs +++ b/Remotion/Core/UnitTests/Reflection/ContextAwareTypeUtilityTest.cs @@ -16,59 +16,17 @@ // using System; using System.ComponentModel.Design; -using System.IO; -using Moq; using NUnit.Framework; -using Remotion.Configuration.TypeDiscovery; -using Remotion.Development.UnitTesting; using Remotion.Reflection; -using Remotion.Reflection.TypeResolution; using Remotion.ServiceLocation; -using Remotion.UnitTests.Configuration.TypeDiscovery; -using Remotion.Utilities; -#if !NETFRAMEWORK -using Remotion.Development.UnitTesting.IsolatedCodeRunner; -#endif namespace Remotion.UnitTests.Reflection { [TestFixture] public class ContextAwareTypeUtilityTest { - private ITypeDiscoveryService _oldTypeDiscoveryService; - private TypeDiscoveryConfiguration _oldTypeDiscoveryConfiguration; - private ITypeResolutionService _oldTypeResolutionService; - - [SetUp] - public void SetUp () - { - _oldTypeDiscoveryService = ContextAwareTypeUtility.GetTypeDiscoveryService(); - _oldTypeDiscoveryConfiguration = TypeDiscoveryConfiguration.Current; - - var fields = PrivateInvoke.GetNonPublicStaticField(typeof(ContextAwareTypeUtility), "s_fields"); - Assertion.IsNotNull(fields); - PrivateInvoke.SetPublicField( - fields, - "DefaultTypeDiscoveryService", - new Lazy(() => TypeDiscoveryConfiguration.Current.CreateTypeDiscoveryService())); - TypeDiscoveryConfiguration.SetCurrent(new TypeDiscoveryConfiguration()); - } - - [TearDown] - public void TearDown () - { - var fields = PrivateInvoke.GetNonPublicStaticField(typeof(ContextAwareTypeUtility), "s_fields"); - Assertion.IsNotNull(fields); - PrivateInvoke.SetPublicField( - fields, - "DefaultTypeDiscoveryService", - new Lazy(() => _oldTypeDiscoveryService)); - - TypeDiscoveryConfiguration.SetCurrent(_oldTypeDiscoveryConfiguration); - } - [Test] - [Ignore("RM-5931")] + [Obsolete] public void GetTypeDiscoveryService_LoadsFromSafeServiceLocator () { var defaultService = ContextAwareTypeUtility.GetTypeDiscoveryService(); diff --git a/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationExtensionsTest.cs b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationExtensionsTest.cs new file mode 100644 index 0000000000..d745df2df6 --- /dev/null +++ b/Remotion/Core/UnitTests/ServiceLocation/BootstrapServiceConfigurationExtensionsTest.cs @@ -0,0 +1,86 @@ +// This file is part of the re-motion Core Framework (www.re-motion.org) +// Copyright (c) rubicon IT GmbH, www.rubicon.eu +// +// The re-motion Core Framework is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// re-motion is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with re-motion; if not, see http://www.gnu.org/licenses. +using System.ComponentModel.Design; +using NUnit.Framework; +using Remotion.Reflection.TypeDiscovery.AssemblyLoading; +using Remotion.ServiceLocation; + +namespace Remotion.UnitTests.ServiceLocation; + +[TestFixture] +public class BootstrapServiceConfigurationExtensionsTest +{ + [Test] + [Ignore("RM-5193")] + public void Deserialization_SpecificRootAssemblies_ByName () + { + /* + + + + + + */ + + IBootstrapServiceConfiguration bootstrapServiceConfiguration = new BootstrapServiceConfiguration(); + BootstrapServiceConfigurationExtensions.RegisterSpecificRootAssemblies(bootstrapServiceConfiguration); + + var de = new DefaultServiceLocatorProvider(new BootstrapServiceConfigurationDiscoveryService()); + var serviceLocator = de.GetServiceLocator(bootstrapServiceConfiguration.GetRegistrations()); + var typeDiscoveryServices = serviceLocator.GetInstance(); + + var types = typeDiscoveryServices.GetTypes(null, false); + + Assert.That(types, Has.Member(typeof(Moq.Capture))); + } + + [Test] + [Ignore("RM-5193")] + public void Deserialization_SpecificRootAssemblies_ByFilePattern () + { + /* + + + + + + */ + + ApplicationAssemblyLoaderFilter.Instance.AddIgnoredAssembly(GetTestAssemblyName()); + try + { + IBootstrapServiceConfiguration bootstrapServiceConfiguration = new BootstrapServiceConfiguration(); + BootstrapServiceConfigurationExtensions.RegisterSpecificRootAssemblies(bootstrapServiceConfiguration); + + var de = new DefaultServiceLocatorProvider(new BootstrapServiceConfigurationDiscoveryService()); + var serviceLocator = de.GetServiceLocator(bootstrapServiceConfiguration.GetRegistrations()); + var typeDiscoveryServices = serviceLocator.GetInstance(); + + var types = typeDiscoveryServices.GetTypes(null, false); + + Assert.That(types, Has.Member(typeof(BootstrapServiceConfigurationExtensionsTest))); + } + finally + { + ApplicationAssemblyLoaderFilter.Instance.Reset(); + } + } + + private static string GetTestAssemblyName () + { + return typeof(BootstrapServiceConfigurationExtensionsTest).Assembly.GetName().Name; + } +} diff --git a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs index cd1f46e14f..d636700c83 100644 --- a/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs +++ b/Remotion/Core/UnitTests/ServiceLocation/DefaultServiceConfigurationDiscoveryServiceTest.cs @@ -22,7 +22,6 @@ using Moq; using NUnit.Framework; using Remotion.Reflection; -using Remotion.Reflection.TypeDiscovery; using Remotion.ServiceLocation; using Remotion.UnitTests.ServiceLocation.TestDomain; @@ -391,7 +390,7 @@ public void GetDefaultConfiguration_WithMultipleRegistrationsWithRegistrationTyp [Test] public void GetDefaultConfiguration_Assembly () { - var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); + var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(_typeDiscoveryServiceStub.Object); // Because the TestDomain contains test classes with ambiguous attributes, we expect an exception here. Assert.That( diff --git a/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs b/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs index 5103370299..878fde4157 100644 --- a/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs +++ b/Remotion/Data/DomainObjects.PerformanceTests/StandardConfiguration.cs @@ -46,7 +46,7 @@ public static void Initialize () var assemblyFinder = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder); MappingConfiguration mappingConfiguration = MappingConfiguration.Create( - MappingReflector.Create( + new MappingReflector( typeDiscoveryService, SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), diff --git a/Remotion/Data/DomainObjects.UnitTests/Factories/MappingReflectorObjectMother.cs b/Remotion/Data/DomainObjects.UnitTests/Factories/MappingReflectorObjectMother.cs index f5e6f4b8d6..c5125c9606 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Factories/MappingReflectorObjectMother.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Factories/MappingReflectorObjectMother.cs @@ -30,7 +30,7 @@ public static MappingReflector CreateMappingReflector (ITypeDiscoveryService typ { ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService); - return MappingReflector.Create( + return new MappingReflector( typeDiscoveryService, SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), diff --git a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs index 83c4dae0f4..b87642d141 100644 --- a/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs @@ -15,11 +15,11 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.Linq; using NUnit.Framework; using Remotion.Data.DomainObjects.Infrastructure.TypePipe; using Remotion.Mixins.CodeGeneration.TypePipe; -using Remotion.Reflection; using Remotion.ServiceLocation; using Remotion.TypePipe; @@ -28,27 +28,34 @@ namespace Remotion.Data.DomainObjects.UnitTests.IntegrationTests.ServiceLocation [TestFixture] public class ParticipantRegistrationTest { + private DefaultServiceLocator _serviceLocator; + + [SetUp] + public void SetUp () + { + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); + } + [Test] public void DefaultServiceLocator_ReturnsDomainObjectParticipant () { - var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); - var participants = serviceLocator.GetAllInstances().ToArray(); + var participants = _serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Has.Member(typeof(DomainObjectParticipant))); } [Test] public void DefaultServiceLocator_OrdersDomainObjectParticipantAfterMixinParticipant () { - var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); - var participants = serviceLocator.GetAllInstances().ToArray(); + var participants = _serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Is.EqualTo(new[] { typeof(MixinParticipant), typeof(DomainObjectParticipant) })); } [Test] public void DefaultServiceConfigurationDiscoveryService_ReturnsDomainObjectParticipant () { - var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); - var services = discoveryService.GetDefaultConfiguration(); + var typeDiscoveryService = _serviceLocator.GetInstance(); + var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(typeDiscoveryService); + var services = defaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(); var participantService = services.SingleOrDefault(s => s.ServiceType == typeof(IParticipant)); Assert.That(participantService, Is.Not.Null); @@ -58,8 +65,9 @@ public void DefaultServiceConfigurationDiscoveryService_ReturnsDomainObjectParti [Test] public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticipant () { - var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); - var services = discoveryService.GetDefaultConfiguration(); + var typeDiscoveryService = _serviceLocator.GetInstance(); + var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(typeDiscoveryService); + var services = defaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(); var participantService = services.SingleOrDefault(s => s.ServiceType == typeof(IParticipant)); Assert.That(participantService, Is.Not.Null); diff --git a/Remotion/Data/DomainObjects.UnitTests/Mapping/MappingReflectorTest.cs b/Remotion/Data/DomainObjects.UnitTests/Mapping/MappingReflectorTest.cs index 2216ae8643..fa01655b67 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Mapping/MappingReflectorTest.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Mapping/MappingReflectorTest.cs @@ -15,6 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.Linq; using NUnit.Framework; using Remotion.Data.DomainObjects.ConfigurationLoader; @@ -43,25 +44,11 @@ public class MappingReflectorTest : MappingReflectionTestBase _mappingReflector = MappingReflectorObjectMother.CreateMappingReflector(TestMappingConfiguration.GetTypeDiscoveryService()); } - [Test] - public void Initialization_DefaultTypeDiscoveryService () - { - var reflector = new MappingReflector( - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance(), - SafeServiceLocator.Current.GetInstance()); - - Assert.That(reflector.TypeDiscoveryService, Is.SameAs(ContextAwareTypeUtility.GetTypeDiscoveryService())); - } - [Test] public void Initialization_MappingObjectFactory_InstanceCreator () { var reflector = new MappingReflector( + SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), diff --git a/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs b/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs index 7f0553da95..1c6cd8abeb 100644 --- a/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs +++ b/Remotion/Data/DomainObjects.UnitTests/Persistence/Rdbms/SqlServer/IntegrationTests/CustomStorageObjectFactoryTestBase.cs @@ -59,7 +59,7 @@ public override void SetUp () SetupServiceLocator(serviceLocator); _serviceLocatorScope = new ServiceLocatorScope(serviceLocator); - var mappingLoader = MappingReflector.Create( + var mappingLoader = new MappingReflector( new FixedTypeDiscoveryService(GetReflectedTypes()), new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), diff --git a/Remotion/Data/DomainObjects/ConfigurationLoader/ReflectionBasedConfigurationLoader/MappingReflector.cs b/Remotion/Data/DomainObjects/ConfigurationLoader/ReflectionBasedConfigurationLoader/MappingReflector.cs index 832a671842..6f25ad5447 100644 --- a/Remotion/Data/DomainObjects/ConfigurationLoader/ReflectionBasedConfigurationLoader/MappingReflector.cs +++ b/Remotion/Data/DomainObjects/ConfigurationLoader/ReflectionBasedConfigurationLoader/MappingReflector.cs @@ -33,36 +33,6 @@ namespace Remotion.Data.DomainObjects.ConfigurationLoader.ReflectionBasedConfigu [ImplementationFor(typeof(IMappingLoader), Lifetime = LifetimeKind.Singleton)] public class MappingReflector : IMappingLoader { - public static MappingReflector Create ( - ITypeDiscoveryService typeDiscoveryService, - IClassIDProvider classIDProvider, - IMemberInformationNameResolver nameResolver, - IPropertyMetadataProvider propertyMetadataProvider, - IDomainModelConstraintProvider domainModelConstraintProvider, - IPropertyDefaultValueProvider propertyDefaultValueProvider, - ISortExpressionDefinitionProvider sortExpressionDefinitionProvider, - IDomainObjectCreator domainObjectCreator) - { - ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService); - ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider); - ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider); - ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider); - ArgumentUtility.CheckNotNull("propertyDefaultValueProvider", propertyDefaultValueProvider); - ArgumentUtility.CheckNotNull("sortExpressionDefinitionProvider", sortExpressionDefinitionProvider); - ArgumentUtility.CheckNotNull("nameResolver", nameResolver); - ArgumentUtility.CheckNotNull("domainObjectCreator", domainObjectCreator); - - return new MappingReflector( - typeDiscoveryService, - classIDProvider, - nameResolver, - propertyMetadataProvider, - domainModelConstraintProvider, - propertyDefaultValueProvider, - sortExpressionDefinitionProvider, - domainObjectCreator); - } - private static readonly ILog s_log = LogManager.GetLogger(typeof(MappingReflector)); private readonly IMemberInformationNameResolver _nameResolver; private readonly IMappingObjectFactory _mappingObjectFactory; @@ -74,26 +44,6 @@ public static MappingReflector Create ( private readonly IPropertyDefaultValueProvider _propertyDefaultValueProvider; public MappingReflector ( - IClassIDProvider classIDProvider, - IMemberInformationNameResolver nameResolver, - IPropertyMetadataProvider propertyMetadataProvider, - IDomainModelConstraintProvider domainModelConstraintProvider, - IPropertyDefaultValueProvider propertyDefaultValueProvider, - ISortExpressionDefinitionProvider sortExpressionDefinitionProvider, - IDomainObjectCreator domainObjectCreator) - : this( - ContextAwareTypeUtility.GetTypeDiscoveryService(), - classIDProvider, - nameResolver, - propertyMetadataProvider, - domainModelConstraintProvider, - propertyDefaultValueProvider, - sortExpressionDefinitionProvider, - domainObjectCreator) - { - } - - private MappingReflector ( ITypeDiscoveryService typeDiscoveryService, IClassIDProvider classIDProvider, IMemberInformationNameResolver nameResolver, diff --git a/Remotion/Development/UnitTests/Data/UnitTesting/DomainObjects/SetUpFixture.cs b/Remotion/Development/UnitTests/Data/UnitTesting/DomainObjects/SetUpFixture.cs index f5bc8d3e04..334a59c5d8 100644 --- a/Remotion/Development/UnitTests/Data/UnitTesting/DomainObjects/SetUpFixture.cs +++ b/Remotion/Development/UnitTests/Data/UnitTesting/DomainObjects/SetUpFixture.cs @@ -46,7 +46,7 @@ public void OneTimeSetUp () MappingConfiguration.SetCurrent( MappingConfiguration.Create( - MappingReflector.Create( + new MappingReflector( typeDiscoveryService, new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), diff --git a/Remotion/Mixins/Core/Context/DeclarativeConfigurationBuilder.cs b/Remotion/Mixins/Core/Context/DeclarativeConfigurationBuilder.cs index c00e50c2c6..64a54b12f4 100644 --- a/Remotion/Mixins/Core/Context/DeclarativeConfigurationBuilder.cs +++ b/Remotion/Mixins/Core/Context/DeclarativeConfigurationBuilder.cs @@ -25,6 +25,7 @@ using Remotion.Mixins.Context.FluentBuilders; using Remotion.Reflection; using Remotion.Reflection.TypeDiscovery.AssemblyLoading; +using Remotion.ServiceLocation; using Remotion.Utilities; namespace Remotion.Mixins.Context @@ -126,16 +127,11 @@ public static MixinConfiguration BuildConfigurationFromTypes (MixinConfiguration /// public static MixinConfiguration BuildDefaultConfiguration () { - ICollection types = GetTypeDiscoveryService().GetTypes(null, false); + var typeDiscoveryService = SafeServiceLocator.Current.GetInstance(); + ICollection types = typeDiscoveryService.GetTypes(null, false); return BuildConfigurationFromTypes(null, types.Cast()); } - // Separate method because of tests - private static ITypeDiscoveryService GetTypeDiscoveryService () - { - return ContextAwareTypeUtility.GetTypeDiscoveryService(); - } - private readonly MixinConfiguration? _parentConfiguration; private readonly HashSet _allTypes = new HashSet(); diff --git a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs index a8ef1e6674..49f8100c92 100644 --- a/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs +++ b/Remotion/Mixins/UnitTests/Core/CodeGeneration/IntegrationTests/ServiceLocation/ParticipantRegistrationTest.cs @@ -15,10 +15,10 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.Linq; using NUnit.Framework; using Remotion.Mixins.CodeGeneration.TypePipe; -using Remotion.Reflection; using Remotion.ServiceLocation; using Remotion.TypePipe; @@ -27,19 +27,27 @@ namespace Remotion.Mixins.UnitTests.Core.CodeGeneration.IntegrationTests.Service [TestFixture] public class ParticipantRegistrationTest { + private DefaultServiceLocator _serviceLocator; + + [SetUp] + public void SetUp () + { + _serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); + } + [Test] public void DefaultServiceLocator_ReturnsMixinParticipant () { - var serviceLocator = DefaultServiceLocator.CreateWithBootstrappedServices(); - var participants = serviceLocator.GetAllInstances().ToArray(); + var participants = _serviceLocator.GetAllInstances().ToArray(); Assert.That(participants.Select(p => p.GetType()), Is.EqualTo(new[] { typeof(MixinParticipant) })); } [Test] public void DefaultServiceConfigurationDiscoveryService_ReturnsMixinParticipant () { - var discoveryService = new DefaultServiceConfigurationDiscoveryService(ContextAwareTypeUtility.GetTypeDiscoveryService()); - var participantService = discoveryService.GetDefaultConfiguration(typeof(IParticipant)); + var typeDiscoveryService = _serviceLocator.GetInstance(); + var defaultServiceConfigurationDiscoveryService = new DefaultServiceConfigurationDiscoveryService(typeDiscoveryService); + var participantService = defaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(typeof(IParticipant)); Assert.That(participantService, Is.Not.Null); Assert.That(participantService.ImplementationInfos.Select(i => i.ImplementationType), Is.EqualTo(new[] { typeof(MixinParticipant) })); diff --git a/Remotion/Mixins/UnitTests/Core/Context/DeclarativeConfigurationBuilder_IntegrationTests/DeclarativeConfigurationBuilderGeneralTest.cs b/Remotion/Mixins/UnitTests/Core/Context/DeclarativeConfigurationBuilder_IntegrationTests/DeclarativeConfigurationBuilderGeneralTest.cs index bfdc495380..ca83eee541 100644 --- a/Remotion/Mixins/UnitTests/Core/Context/DeclarativeConfigurationBuilder_IntegrationTests/DeclarativeConfigurationBuilderGeneralTest.cs +++ b/Remotion/Mixins/UnitTests/Core/Context/DeclarativeConfigurationBuilder_IntegrationTests/DeclarativeConfigurationBuilderGeneralTest.cs @@ -15,6 +15,7 @@ // along with re-motion; if not, see http://www.gnu.org/licenses. // using System; +using System.ComponentModel.Design; using System.IO; using System.Reflection; using NUnit.Framework; @@ -24,6 +25,7 @@ using Remotion.Reflection.TypeDiscovery; using Remotion.Reflection.TypeDiscovery.AssemblyFinding; using Remotion.Reflection.TypeDiscovery.AssemblyLoading; +using Remotion.ServiceLocation; namespace Remotion.Mixins.UnitTests.Core.Context.DeclarativeConfigurationBuilder_IntegrationTests { @@ -129,11 +131,7 @@ public void IgnoreForMixinConfiguration () [Test] public void FilterExcludesSystemAssemblies () { - var service = - (AssemblyFinderTypeDiscoveryService)PrivateInvoke.InvokeNonPublicStaticMethod(typeof(DeclarativeConfigurationBuilder), "GetTypeDiscoveryService"); - - var assemblyFinder = GetAssemblyFinder(service); - var filter = ((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter; + var filter = SafeServiceLocator.Current.GetInstance(); Assert.That(filter.ShouldConsiderAssembly(typeof(object).Assembly.GetName()), Is.False); Assert.That(filter.ShouldConsiderAssembly(typeof(Uri).Assembly.GetName()), Is.False); @@ -142,30 +140,17 @@ public void FilterExcludesSystemAssemblies () [Test] public void FilterExcludesGeneratedAssemblies () { - var service = - (AssemblyFinderTypeDiscoveryService)PrivateInvoke.InvokeNonPublicStaticMethod(typeof(DeclarativeConfigurationBuilder), "GetTypeDiscoveryService"); - - var assemblyFinder = GetAssemblyFinder(service); - var filter = ((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter; + var filter = SafeServiceLocator.Current.GetInstance(); Assembly generatedAssembly = TypeGenerationHelper.ForceTypeGeneration(typeof(object)).Assembly; Assert.That(filter.ShouldConsiderAssembly(generatedAssembly.GetName()), Is.False); } - private AssemblyFinder GetAssemblyFinder (AssemblyFinderTypeDiscoveryService service) - { - return (AssemblyFinder)((CachingAssemblyFinderDecorator)service.AssemblyFinder).InnerFinder; - } - [Test] public void FilterIncludesAllNormalAssemblies () { - var service = - (AssemblyFinderTypeDiscoveryService)PrivateInvoke.InvokeNonPublicStaticMethod(typeof(DeclarativeConfigurationBuilder), "GetTypeDiscoveryService"); - - var assemblyFinder = GetAssemblyFinder(service); - var filter = ((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter; + var filter = SafeServiceLocator.Current.GetInstance(); Assert.That(filter.ShouldConsiderAssembly(typeof(DeclarativeConfigurationBuilderGeneralTest).Assembly.GetName()), Is.True); Assert.That(filter.ShouldConsiderAssembly(typeof(DeclarativeConfigurationBuilder).Assembly.GetName()), Is.True); diff --git a/Remotion/Mixins/UnitTests/Core/Validation/GeneralValidationTest.cs b/Remotion/Mixins/UnitTests/Core/Validation/GeneralValidationTest.cs index e0c3a4ac9e..7a6c34ee43 100644 --- a/Remotion/Mixins/UnitTests/Core/Validation/GeneralValidationTest.cs +++ b/Remotion/Mixins/UnitTests/Core/Validation/GeneralValidationTest.cs @@ -16,6 +16,7 @@ // using System; using System.Collections.Generic; +using System.ComponentModel.Design; using System.Linq; using NUnit.Framework; using Remotion.Development.Mixins.Validation; @@ -27,6 +28,7 @@ using Remotion.Mixins.Validation; using Remotion.Mixins.Validation.Rules; using Remotion.Reflection; +using Remotion.ServiceLocation; namespace Remotion.Mixins.UnitTests.Core.Validation { @@ -40,9 +42,10 @@ public void SetUp () { var validationTestDomainNamespace = typeof(AbstractMixinWithoutBase).Namespace; var globalTestDomainNamespace = typeof(BaseType1).Namespace; - var typeDiscoveryService = FilteringTypeDiscoveryService.CreateFromNamespaceWhitelist( - ContextAwareTypeUtility.GetTypeDiscoveryService(), validationTestDomainNamespace, globalTestDomainNamespace); - var types = typeDiscoveryService.GetTypes(null, false); + var typeDiscoveryService = SafeServiceLocator.Current.GetInstance(); + var filteringTypeDiscoveryService = FilteringTypeDiscoveryService.CreateFromNamespaceWhitelist( + typeDiscoveryService, validationTestDomainNamespace, globalTestDomainNamespace); + var types = filteringTypeDiscoveryService.GetTypes(null, false); _configurationScope = DeclarativeConfigurationBuilder.BuildConfigurationFromTypes(null, types.Cast()).EnterScope(); } diff --git a/Remotion/Validation/Core/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflector.cs b/Remotion/Validation/Core/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflector.cs index d8f1fb122d..a6f5c3422e 100644 --- a/Remotion/Validation/Core/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflector.cs +++ b/Remotion/Validation/Core/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflector.cs @@ -38,25 +38,7 @@ public class DiscoveryServiceBasedValidationRuleCollectorReflector : IValidation private readonly Lazy> _validationCollectors; private readonly IValidatedTypeResolver _validatedTypeResolver; - public static IValidationRuleCollectorReflector Create (ITypeDiscoveryService typeDiscoveryService, IValidatedTypeResolver validatedTypeResolver) - { - ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService); - ArgumentUtility.CheckNotNull("validatedTypeResolver", validatedTypeResolver); - - return new DiscoveryServiceBasedValidationRuleCollectorReflector(typeDiscoveryService, validatedTypeResolver); - } - - public DiscoveryServiceBasedValidationRuleCollectorReflector (IValidatedTypeResolver validatedTypeResolver) - : this(ContextAwareTypeUtility.GetTypeDiscoveryService(), validatedTypeResolver) - { - } - - public IValidatedTypeResolver ValidatedTypeResolver - { - get { return _validatedTypeResolver; } - } - - protected DiscoveryServiceBasedValidationRuleCollectorReflector ( + public DiscoveryServiceBasedValidationRuleCollectorReflector ( ITypeDiscoveryService typeDiscoveryService, IValidatedTypeResolver validatedTypeResolver) { @@ -68,6 +50,11 @@ protected DiscoveryServiceBasedValidationRuleCollectorReflector ( _validationCollectors = new Lazy>(GetValidationCollectors, LazyThreadSafetyMode.ExecutionAndPublication); } + public IValidatedTypeResolver ValidatedTypeResolver + { + get { return _validatedTypeResolver; } + } + public IEnumerable GetCollectorsForType (Type type) { ArgumentUtility.CheckNotNull("type", type); diff --git a/Remotion/Validation/Mixins.UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs b/Remotion/Validation/Mixins.UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs index deaf1d5fbb..1d3829efe7 100644 --- a/Remotion/Validation/Mixins.UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs +++ b/Remotion/Validation/Mixins.UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs @@ -54,7 +54,7 @@ public void GetValidationRuleCollectors_WithFakeTypeDiscoveryService () }; _typeDiscoveryServiceStub.Setup(stub => stub.GetTypes(typeof(IValidationRuleCollector), false)).Returns(appliedWithAttributeTypes); - var typeCollectorProvider = DiscoveryServiceBasedValidationRuleCollectorReflector.Create( + var typeCollectorProvider = new DiscoveryServiceBasedValidationRuleCollectorReflector( _typeDiscoveryServiceStub.Object, new MixinTypeAwareValidatedTypeResolverDecorator( new ClassTypeAwareValidatedTypeResolverDecorator( diff --git a/Remotion/Validation/UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs b/Remotion/Validation/UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs index ba1b4fef32..860c0c0377 100644 --- a/Remotion/Validation/UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs +++ b/Remotion/Validation/UnitTests/Implementation/DiscoveryServiceBasedValidationRuleCollectorReflectorTest.cs @@ -19,6 +19,7 @@ using System.Linq; using Moq; using NUnit.Framework; +using Remotion.ServiceLocation; using Remotion.Validation.Attributes; using Remotion.Validation.Implementation; using Remotion.Validation.UnitTests.TestDomain; @@ -56,7 +57,7 @@ public void GetValidationRuleCollectors_WithFakeTypeDiscoveryService () }; _typeDiscoveryServiceStub.Setup(stub => stub.GetTypes(typeof(IValidationRuleCollector), false)).Returns(appliedWithAttributeTypes); - var typeCollectorProvider = DiscoveryServiceBasedValidationRuleCollectorReflector.Create( + var typeCollectorProvider = new DiscoveryServiceBasedValidationRuleCollectorReflector( _typeDiscoveryServiceStub.Object, new ClassTypeAwareValidatedTypeResolverDecorator( new GenericTypeAwareValidatedTypeResolverDecorator(new NullValidatedTypeResolver()))); @@ -82,7 +83,7 @@ public void GetValidationRuleCollectors_InvalidCollectorWithoutGenericArgument ( Assert.That( () => - DiscoveryServiceBasedValidationRuleCollectorReflector.Create( + new DiscoveryServiceBasedValidationRuleCollectorReflector( _typeDiscoveryServiceStub.Object, validatedTypeResolverStub.Object).GetCollectorsForType( typeof(IValidationRuleCollector)), @@ -111,7 +112,7 @@ public void GetValidationRuleCollectors_AbstractAndInterfaceAndOpenGenericCollec programmaticallyCollectorType }); - var typeCollectorProvider = DiscoveryServiceBasedValidationRuleCollectorReflector.Create( + var typeCollectorProvider = new DiscoveryServiceBasedValidationRuleCollectorReflector( _typeDiscoveryServiceStub.Object, new ClassTypeAwareValidatedTypeResolverDecorator( new GenericTypeAwareValidatedTypeResolverDecorator(new NullValidatedTypeResolver()))); @@ -138,7 +139,7 @@ public void GetValidationRuleCollectors_GenericTypeNotAssignableFromClassType () Assert.That( () => - DiscoveryServiceBasedValidationRuleCollectorReflector.Create( + new DiscoveryServiceBasedValidationRuleCollectorReflector( _typeDiscoveryServiceStub.Object, new ClassTypeAwareValidatedTypeResolverDecorator( new GenericTypeAwareValidatedTypeResolverDecorator(new NullValidatedTypeResolver()))).GetCollectorsForType( @@ -153,6 +154,7 @@ public void GetValidationRuleCollectors_GenericTypeNotAssignableFromClassType () public void GetValidationRuleCollectors_WithRemotionDiscoveryService () { var typeCollectorProvider = new DiscoveryServiceBasedValidationRuleCollectorReflector( + SafeServiceLocator.Current.GetInstance(), new ClassTypeAwareValidatedTypeResolverDecorator( new GenericTypeAwareValidatedTypeResolverDecorator(new NullValidatedTypeResolver()))); @@ -178,7 +180,7 @@ public void GetValidationRuleCollectors_NoValidatedTypeFound_ExceptionIsThrown ( var validatedTypeResolverStub = new Mock(); validatedTypeResolverStub.Setup(stub => stub.GetValidatedType(typeof(CustomerValidationRuleCollector1))).Returns((Type)null); - var typeCollectorProvider = DiscoveryServiceBasedValidationRuleCollectorReflector.Create(_typeDiscoveryServiceStub.Object, validatedTypeResolverStub.Object); + var typeCollectorProvider = new DiscoveryServiceBasedValidationRuleCollectorReflector(_typeDiscoveryServiceStub.Object, validatedTypeResolverStub.Object); Assert.That( () => typeCollectorProvider.GetCollectorsForType(typeof(Customer)), Throws.InvalidOperationException diff --git a/SecurityManager/Core.UnitTests/SetUpFixture.cs b/SecurityManager/Core.UnitTests/SetUpFixture.cs index 859d6f4f36..349fc82359 100644 --- a/SecurityManager/Core.UnitTests/SetUpFixture.cs +++ b/SecurityManager/Core.UnitTests/SetUpFixture.cs @@ -78,7 +78,7 @@ public void OneTimeSetUp () MappingConfiguration.SetCurrent( MappingConfiguration.Create( - MappingReflector.Create( + new MappingReflector( typeDiscoveryService, SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(), diff --git a/SecurityManager/Metadata.Importer/Program.cs b/SecurityManager/Metadata.Importer/Program.cs index 9d6d292dbc..350f1bd8b3 100644 --- a/SecurityManager/Metadata.Importer/Program.cs +++ b/SecurityManager/Metadata.Importer/Program.cs @@ -100,7 +100,7 @@ public int Run () ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder); MappingConfiguration.SetCurrent( MappingConfiguration.Create( - MappingReflector.Create( + new MappingReflector( typeDiscoveryService, SafeServiceLocator.Current.GetInstance(), SafeServiceLocator.Current.GetInstance(),