diff --git a/src/Umbraco.Core/CoreBootManager.cs b/src/Umbraco.Core/CoreBootManager.cs
index 88fc87d8b5..f7e2551687 100644
--- a/src/Umbraco.Core/CoreBootManager.cs
+++ b/src/Umbraco.Core/CoreBootManager.cs
@@ -75,8 +75,17 @@ namespace Umbraco.Core
//create database and service contexts for the app context
var dbFactory = new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, LoggerResolver.Current.Logger);
Database.Mapper = new PetaPocoMapper();
- var dbContext = new DatabaseContext(dbFactory, LoggerResolver.Current.Logger);
+
+ var dbContext = new DatabaseContext(
+ dbFactory,
+ LoggerResolver.Current.Logger,
+ SqlSyntaxProviders.CreateDefault(LoggerResolver.Current.Logger));
+
+ //initialize the DatabaseContext
+ dbContext.Initialize();
+
var serviceContext = new ServiceContext(
+ new RepositoryFactory(ApplicationCache, LoggerResolver.Current.Logger, dbContext.SqlSyntax, UmbracoConfig.For.UmbracoSettings()),
new PetaPocoUnitOfWorkProvider(dbFactory),
new FileUnitOfWorkProvider(),
new PublishingStrategy(),
@@ -89,8 +98,7 @@ namespace Umbraco.Core
InitializeResolvers();
- //initialize the DatabaseContext
- dbContext.Initialize();
+
InitializeModelMappers();
@@ -300,14 +308,10 @@ namespace Umbraco.Core
MappingResolver.Current = new MappingResolver(
() => PluginManager.Current.ResolveAssignedMapperTypes());
- RepositoryResolver.Current = new RepositoryResolver(
- new RepositoryFactory(ApplicationCache));
+
- SqlSyntaxProvidersResolver.Current = new SqlSyntaxProvidersResolver(
- new[] { typeof(MySqlSyntaxProvider), typeof(SqlCeSyntaxProvider), typeof(SqlServerSyntaxProvider) })
- {
- CanResolveBeforeFrozen = true
- };
+ //RepositoryResolver.Current = new RepositoryResolver(
+ // new RepositoryFactory(ApplicationCache));
CacheRefreshersResolver.Current = new CacheRefreshersResolver(
() => PluginManager.Current.ResolveCacheRefreshers());
diff --git a/src/Umbraco.Core/DatabaseContext.cs b/src/Umbraco.Core/DatabaseContext.cs
index f12ccf84bb..53ea6bda7e 100644
--- a/src/Umbraco.Core/DatabaseContext.cs
+++ b/src/Umbraco.Core/DatabaseContext.cs
@@ -24,10 +24,9 @@ namespace Umbraco.Core
///
public class DatabaseContext
{
-
-
private readonly IDatabaseFactory _factory;
private readonly ILogger _logger;
+ private readonly SqlSyntaxProviders _syntaxProviders;
private bool _configured;
private bool _canConnect;
private volatile bool _connectCheck = false;
@@ -38,22 +37,47 @@ namespace Umbraco.Core
[Obsolete("Use the constructor specifying all dependencies instead")]
public DatabaseContext(IDatabaseFactory factory)
- : this(factory, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider)
+ : this(factory, LoggerResolver.Current.Logger, new SqlSyntaxProviders(new ISqlSyntaxProvider[]
+ {
+ new MySqlSyntaxProvider(LoggerResolver.Current.Logger),
+ new SqlCeSyntaxProvider(),
+ new SqlServerSyntaxProvider()
+ }))
{
}
- public DatabaseContext(IDatabaseFactory factory, ILogger logger)
- {
+ ///
+ /// Default constructor
+ ///
+ ///
+ ///
+ ///
+ public DatabaseContext(IDatabaseFactory factory, ILogger logger, SqlSyntaxProviders syntaxProviders)
+ {
+ if (factory == null) throw new ArgumentNullException("factory");
+ if (logger == null) throw new ArgumentNullException("logger");
+ if (syntaxProviders == null) throw new ArgumentNullException("syntaxProviders");
+
_factory = factory;
_logger = logger;
+ _syntaxProviders = syntaxProviders;
}
- public DatabaseContext(IDatabaseFactory factory, ILogger logger, ISqlSyntaxProvider sqlSyntax)
+ ///
+ /// Create a configured DatabaseContext
+ ///
+ ///
+ ///
+ ///
+ ///
+ public DatabaseContext(IDatabaseFactory factory, ILogger logger, ISqlSyntaxProvider sqlSyntax, string providerName)
{
+ _providerName = providerName;
SqlSyntax = sqlSyntax;
SqlSyntaxContext.SqlSyntaxProvider = SqlSyntax;
_factory = factory;
_logger = logger;
+ _configured = true;
}
public ISqlSyntaxProvider SqlSyntax { get; private set; }
@@ -418,11 +442,22 @@ namespace Umbraco.Core
internal void Initialize(string providerName)
{
+ //only configure once!
+ if (_configured == true) return;
+
_providerName = providerName;
try
{
- SqlSyntax = SqlSyntaxProvidersResolver.Current.GetByProviderNameOrDefault(providerName);
+ if (_syntaxProviders != null)
+ {
+ SqlSyntax = _syntaxProviders.GetByProviderNameOrDefault(providerName);
+ }
+ else if (SqlSyntax == null)
+ {
+ throw new InvalidOperationException("No " + typeof(ISqlSyntaxProvider) + " specified or no " + typeof(SqlSyntaxProviders) + " instance specified");
+ }
+
SqlSyntaxContext.SqlSyntaxProvider = SqlSyntax;
_configured = true;
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
index a1a476e49a..48340f0803 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
@@ -37,8 +37,8 @@ namespace Umbraco.Core.Persistence.Repositories
private readonly ContentPreviewRepository _contentPreviewRepository;
private readonly ContentXmlRepository _contentXmlRepository;
- public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, CacheHelper cacheHelper)
- : base(work, cache, logger)
+ public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository)
+ : base(work, cacheHelper, logger)
{
if (contentTypeRepository == null) throw new ArgumentNullException("contentTypeRepository");
if (templateRepository == null) throw new ArgumentNullException("templateRepository");
diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
index d935f32a1f..70e08edb04 100644
--- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
@@ -26,8 +26,8 @@ namespace Umbraco.Core.Persistence.Repositories
private readonly IUserTypeRepository _userTypeRepository;
private readonly CacheHelper _cacheHelper;
- public UserRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, IUserTypeRepository userTypeRepository, CacheHelper cacheHelper)
- : base(work, cache, logger)
+ public UserRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IUserTypeRepository userTypeRepository)
+ : base(work, cacheHelper, logger)
{
_userTypeRepository = userTypeRepository;
_cacheHelper = cacheHelper;
diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
index e82c07fba5..c609505449 100644
--- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs
+++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
@@ -79,8 +79,10 @@ namespace Umbraco.Core.Persistence
_logger,
CreateContentTypeRepository(uow),
CreateTemplateRepository(uow),
- CreateTagRepository(uow),
- _cacheHelper) { EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming };
+ CreateTagRepository(uow))
+ {
+ EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming
+ };
}
public virtual IContentTypeRepository CreateContentTypeRepository(IDatabaseUnitOfWork uow)
@@ -172,7 +174,7 @@ namespace Umbraco.Core.Persistence
public virtual IStylesheetRepository CreateStylesheetRepository(IUnitOfWork uow, IDatabaseUnitOfWork db)
{
- return new StylesheetRepository(uow, db);
+ return new StylesheetRepository(uow, db, new PhysicalFileSystem(SystemDirectories.Css));
}
public virtual ITemplateRepository CreateTemplateRepository(IDatabaseUnitOfWork uow)
@@ -209,8 +211,7 @@ namespace Umbraco.Core.Persistence
//Need to cache users - we look up user information more than anything in the back office!
_cacheHelper,
_logger,
- CreateUserTypeRepository(uow),
- _cacheHelper);
+ CreateUserTypeRepository(uow));
}
internal virtual IMacroRepository CreateMacroRepository(IDatabaseUnitOfWork uow)
diff --git a/src/Umbraco.Core/Persistence/RepositoryResolver.cs b/src/Umbraco.Core/Persistence/RepositoryResolver.cs
deleted file mode 100644
index 558a3aaee7..0000000000
--- a/src/Umbraco.Core/Persistence/RepositoryResolver.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Linq;
-using System.Reflection;
-using Umbraco.Core.ObjectResolution;
-using Umbraco.Core.Persistence.Repositories;
-using Umbraco.Core.Persistence.UnitOfWork;
-
-namespace Umbraco.Core.Persistence
-{
- ///
- /// A resolver used to return the current implementation of the RepositoryInstanceFactory
- ///
- internal class RepositoryResolver : SingleObjectResolverBase
- {
- internal RepositoryResolver(RepositoryFactory registrar)
- : base(registrar)
- {
- }
-
- ///
- /// Can be used by developers at runtime to set their own RepositoryInstanceFactory at app startup
- ///
- ///
- public void SetRepositoryInstanceFactory(RepositoryFactory factory)
- {
- Value = factory;
- }
-
- ///
- /// Returns the RepositoryInstanceFactory object
- ///
- internal RepositoryFactory Factory
- {
- get { return Value; }
- }
-
- ///
- /// Return the repository based on the type
- ///
- ///
- ///
- ///
- internal TRepository ResolveByType(IUnitOfWork unitOfWork)
- where TRepository : class, IRepository
- {
- var createMethod = this.Value.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public)
- .First(x => x.Name == "Create" + typeof (TRepository).Name.Substring(1));
-
- if (createMethod.GetParameters().Count() != 1
- || !createMethod.GetParameters().Single().ParameterType.IsType())
- {
- throw new FormatException("The method " + createMethod.Name + " must only contain one parameter of type " + typeof(IUnitOfWork).FullName);
- }
- if (!createMethod.ReturnType.IsType())
- {
- throw new FormatException("The method " + createMethod.Name + " must return the type " + typeof(TRepository).FullName);
- }
-
- return (TRepository) createMethod.Invoke(this.Value, new object[] {unitOfWork});
- }
-
- }
-}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProvidersResolver.cs b/src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviders.cs
similarity index 53%
rename from src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProvidersResolver.cs
rename to src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviders.cs
index 1ba9edca73..9f3d337d67 100644
--- a/src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProvidersResolver.cs
+++ b/src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviders.cs
@@ -1,56 +1,58 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Umbraco.Core.ObjectResolution;
-
-namespace Umbraco.Core.Persistence.SqlSyntax
-{
- ///
- /// A resolver to return all ISqlSyntaxProvider objects
- ///
- [Obsolete("This should really not be used, instead ISqlSyntaxProvider should be ctor injected into any service that needs it")]
- internal sealed class SqlSyntaxProvidersResolver : ManyObjectsResolverBase
- {
- ///
- /// Constructor
- ///
- ///
- internal SqlSyntaxProvidersResolver(IEnumerable syntaxProviders)
- : base(syntaxProviders)
- {
-
- }
-
- ///
- /// Gets the implementations.
- ///
- public IEnumerable SqlSyntaxProviders
- {
- get
- {
- return Values;
- }
- }
-
- ///
- /// Gets a by its attributed provider.
- ///
- /// ProviderName from the ConnectionString settings
- /// that corresponds to the attributed provider or the default Sql Server Syntax Provider.
- public ISqlSyntaxProvider GetByProviderNameOrDefault(string providerName)
- {
- var provider =
- Values.FirstOrDefault(
- x =>
- x.GetType()
- .FirstAttribute()
- .ProviderName.ToLowerInvariant()
- .Equals(providerName.ToLowerInvariant()));
-
- if (provider != null)
- return provider;
-
- return Values.First(x => x.GetType() == typeof (SqlServerSyntaxProvider));
- }
- }
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Umbraco.Core.Logging;
+using Umbraco.Core.ObjectResolution;
+
+namespace Umbraco.Core.Persistence.SqlSyntax
+{
+ ///
+ /// Used to return the correct syntax provider for a given provider name
+ ///
+ public sealed class SqlSyntaxProviders
+ {
+ private readonly IEnumerable _syntaxProviders;
+
+ internal static SqlSyntaxProviders CreateDefault(ILogger logger)
+ {
+ return new SqlSyntaxProviders(new ISqlSyntaxProvider[]
+ {
+ new MySqlSyntaxProvider(logger),
+ new SqlCeSyntaxProvider(),
+ new SqlServerSyntaxProvider()
+ });
+ }
+
+ ///
+ /// Constructor
+ ///
+ ///
+ public SqlSyntaxProviders(IEnumerable syntaxProviders)
+ {
+ if (syntaxProviders == null) throw new ArgumentNullException("syntaxProviders");
+ _syntaxProviders = syntaxProviders;
+ }
+
+ ///
+ /// Gets a by its attributed provider.
+ ///
+ /// ProviderName from the ConnectionString settings
+ /// that corresponds to the attributed provider or the default Sql Server Syntax Provider.
+ public ISqlSyntaxProvider GetByProviderNameOrDefault(string providerName)
+ {
+ var provider =
+ _syntaxProviders.FirstOrDefault(
+ x =>
+ x.GetType()
+ .FirstAttribute()
+ .ProviderName.ToLowerInvariant()
+ .Equals(providerName.ToLowerInvariant()));
+
+ if (provider != null)
+ return provider;
+
+ //default
+ return _syntaxProviders.First(x => x.GetType() == typeof(SqlServerSyntaxProvider));
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Services/MediaService.cs b/src/Umbraco.Core/Services/MediaService.cs
index 641a07b4ae..e8a547897a 100644
--- a/src/Umbraco.Core/Services/MediaService.cs
+++ b/src/Umbraco.Core/Services/MediaService.cs
@@ -1115,6 +1115,8 @@ namespace Umbraco.Core.Services
private IMediaType FindMediaTypeByAlias(string mediaTypeAlias)
{
+ Mandate.ParameterNotNullOrEmpty(mediaTypeAlias, "mediaTypeAlias");
+
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
{
diff --git a/src/Umbraco.Core/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs
index be3259f0ff..e01471e3a7 100644
--- a/src/Umbraco.Core/Services/ServiceContext.cs
+++ b/src/Umbraco.Core/Services/ServiceContext.cs
@@ -98,19 +98,16 @@ namespace Umbraco.Core.Services
_notificationService = new Lazy(() => notificationService);
}
- ///
- /// Constructor used to instantiate the core services
- ///
- ///
- ///
- ///
- ///
- internal ServiceContext(IDatabaseUnitOfWorkProvider dbUnitOfWorkProvider, IUnitOfWorkProvider fileUnitOfWorkProvider, BasePublishingStrategy publishingStrategy, CacheHelper cache, ILogger logger)
+ internal ServiceContext(
+ RepositoryFactory repositoryFactory,
+ IDatabaseUnitOfWorkProvider dbUnitOfWorkProvider,
+ IUnitOfWorkProvider fileUnitOfWorkProvider,
+ BasePublishingStrategy publishingStrategy,
+ CacheHelper cache,
+ ILogger logger)
{
- BuildServiceCache(dbUnitOfWorkProvider, fileUnitOfWorkProvider, publishingStrategy, cache,
- //this needs to be lazy because when we create the service context it's generally before the
- //resolvers have been initialized!
- new Lazy(() => RepositoryResolver.Current.Factory),
+ BuildServiceCache(dbUnitOfWorkProvider, fileUnitOfWorkProvider, publishingStrategy, cache,
+ repositoryFactory,
logger);
}
@@ -122,7 +119,7 @@ namespace Umbraco.Core.Services
IUnitOfWorkProvider fileUnitOfWorkProvider,
BasePublishingStrategy publishingStrategy,
CacheHelper cache,
- Lazy repositoryFactory,
+ RepositoryFactory repositoryFactory,
ILogger logger)
{
var provider = dbUnitOfWorkProvider;
@@ -137,42 +134,42 @@ namespace Umbraco.Core.Services
_notificationService = new Lazy(() => new NotificationService(provider, _userService.Value, _contentService.Value, logger));
if (_serverRegistrationService == null)
- _serverRegistrationService = new Lazy(() => new ServerRegistrationService(provider, repositoryFactory.Value));
+ _serverRegistrationService = new Lazy(() => new ServerRegistrationService(provider, repositoryFactory));
if (_userService == null)
- _userService = new Lazy(() => new UserService(provider, repositoryFactory.Value));
+ _userService = new Lazy(() => new UserService(provider, repositoryFactory));
if (_memberService == null)
- _memberService = new Lazy(() => new MemberService(provider, repositoryFactory.Value, _memberGroupService.Value, _dataTypeService.Value));
+ _memberService = new Lazy(() => new MemberService(provider, repositoryFactory, _memberGroupService.Value, _dataTypeService.Value));
if (_contentService == null)
- _contentService = new Lazy(() => new ContentService(logger, provider, repositoryFactory.Value, publishingStrategy, _dataTypeService.Value, _userService.Value));
+ _contentService = new Lazy(() => new ContentService(logger, provider, repositoryFactory, publishingStrategy, _dataTypeService.Value, _userService.Value));
if (_mediaService == null)
- _mediaService = new Lazy(() => new MediaService(provider, repositoryFactory.Value, _dataTypeService.Value, _userService.Value));
+ _mediaService = new Lazy(() => new MediaService(provider, repositoryFactory, _dataTypeService.Value, _userService.Value));
if (_contentTypeService == null)
- _contentTypeService = new Lazy(() => new ContentTypeService(logger, provider, repositoryFactory.Value, _contentService.Value, _mediaService.Value));
+ _contentTypeService = new Lazy(() => new ContentTypeService(logger, provider, repositoryFactory, _contentService.Value, _mediaService.Value));
if (_dataTypeService == null)
- _dataTypeService = new Lazy(() => new DataTypeService(provider, repositoryFactory.Value));
+ _dataTypeService = new Lazy(() => new DataTypeService(provider, repositoryFactory));
if (_fileService == null)
- _fileService = new Lazy(() => new FileService(fileProvider, provider, repositoryFactory.Value));
+ _fileService = new Lazy(() => new FileService(fileProvider, provider, repositoryFactory));
if (_localizationService == null)
- _localizationService = new Lazy(() => new LocalizationService(provider, repositoryFactory.Value));
+ _localizationService = new Lazy(() => new LocalizationService(provider, repositoryFactory));
if (_packagingService == null)
- _packagingService = new Lazy(() => new PackagingService(logger, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _macroService.Value, _dataTypeService.Value, _fileService.Value, _localizationService.Value, _userService.Value, repositoryFactory.Value, provider));
+ _packagingService = new Lazy(() => new PackagingService(logger, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _macroService.Value, _dataTypeService.Value, _fileService.Value, _localizationService.Value, _userService.Value, repositoryFactory, provider));
if (_entityService == null)
_entityService = new Lazy(() => new EntityService(
- provider, repositoryFactory.Value,
+ provider, repositoryFactory,
_contentService.Value, _contentTypeService.Value, _mediaService.Value, _dataTypeService.Value, _memberService.Value, _memberTypeService.Value));
if (_relationService == null)
- _relationService = new Lazy(() => new RelationService(provider, repositoryFactory.Value, _entityService.Value));
+ _relationService = new Lazy(() => new RelationService(provider, repositoryFactory, _entityService.Value));
if (_treeService == null)
_treeService = new Lazy(() => new ApplicationTreeService(logger, cache));
@@ -181,16 +178,16 @@ namespace Umbraco.Core.Services
_sectionService = new Lazy(() => new SectionService(_userService.Value, _treeService.Value, provider, cache));
if (_macroService == null)
- _macroService = new Lazy(() => new MacroService(provider, repositoryFactory.Value));
+ _macroService = new Lazy(() => new MacroService(provider, repositoryFactory));
if (_memberTypeService == null)
- _memberTypeService = new Lazy(() => new MemberTypeService(provider, repositoryFactory.Value, _memberService.Value));
+ _memberTypeService = new Lazy(() => new MemberTypeService(provider, repositoryFactory, _memberService.Value));
if (_tagService == null)
- _tagService = new Lazy(() => new TagService(provider, repositoryFactory.Value));
+ _tagService = new Lazy(() => new TagService(provider, repositoryFactory));
if (_memberGroupService == null)
- _memberGroupService = new Lazy(() => new MemberGroupService(provider, repositoryFactory.Value));
+ _memberGroupService = new Lazy(() => new MemberGroupService(provider, repositoryFactory));
}
diff --git a/src/Umbraco.Core/Standalone/ServiceContextManager.cs b/src/Umbraco.Core/Standalone/ServiceContextManager.cs
index b7ac0d2862..b036359dc6 100644
--- a/src/Umbraco.Core/Standalone/ServiceContextManager.cs
+++ b/src/Umbraco.Core/Standalone/ServiceContextManager.cs
@@ -1,9 +1,11 @@
using System;
using System.Diagnostics;
using Umbraco.Core.Cache;
+using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Mappers;
+using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Publishing;
using Umbraco.Core.Services;
@@ -15,14 +17,16 @@ namespace Umbraco.Core.Standalone
private readonly string _connectionString;
private readonly string _providerName;
private readonly ILogger _logger;
+ private readonly ISqlSyntaxProvider _syntaxProvider;
private ServiceContext _serviceContext;
private readonly StandaloneCoreApplication _application;
- public ServiceContextManager(string connectionString, string providerName, string baseDirectory, ILogger logger)
+ public ServiceContextManager(string connectionString, string providerName, string baseDirectory, ILogger logger, ISqlSyntaxProvider syntaxProvider)
{
_connectionString = connectionString;
_providerName = providerName;
_logger = logger;
+ _syntaxProvider = syntaxProvider;
Trace.WriteLine("ServiceContextManager-Current AppDomain: " + AppDomain.CurrentDomain.FriendlyName);
Trace.WriteLine("ServiceContextManager-Current AppDomain: " + AppDomain.CurrentDomain.BaseDirectory);
@@ -56,9 +60,10 @@ namespace Umbraco.Core.Standalone
new NullCacheProvider());
var dbFactory = new DefaultDatabaseFactory(_connectionString, _providerName, _logger);
- var dbContext = new DatabaseContext(dbFactory, _logger);
+ var dbContext = new DatabaseContext(dbFactory, _logger, _syntaxProvider, _providerName);
Database.Mapper = new PetaPocoMapper();
_serviceContext = new ServiceContext(
+ new RepositoryFactory(cacheHelper, _logger, dbContext.SqlSyntax, UmbracoConfig.For.UmbracoSettings()),
new PetaPocoUnitOfWorkProvider(dbFactory),
new FileUnitOfWorkProvider(),
new PublishingStrategy(),
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index dcade72684..f6b1a9fb48 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -856,7 +856,7 @@
-
+
diff --git a/src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs b/src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs
index 6a83caf407..a21e15dc38 100644
--- a/src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs
+++ b/src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs
@@ -5,6 +5,7 @@ using System.Text;
using System.Web;
using NUnit.Framework;
using Umbraco.Core;
+using Umbraco.Core.Configuration;
using Umbraco.Core.ObjectResolution;
using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Tests.TestHelpers;
@@ -22,7 +23,7 @@ namespace Umbraco.Tests.BootManagers
public override void Initialize()
{
base.Initialize();
- _testApp = new TestApp();
+ _testApp = new TestApp();
}
[TearDown]
@@ -30,10 +31,7 @@ namespace Umbraco.Tests.BootManagers
{
base.TearDown();
- _testApp = null;
-
- //ApplicationEventsResolver.Reset();
- //SqlSyntaxProvidersResolver.Reset();
+ _testApp = null;
}
protected override void FreezeResolution()
@@ -74,17 +72,7 @@ namespace Umbraco.Tests.BootManagers
CanResolveBeforeFrozen = true
};
}
-
- protected override void InitializeResolvers()
- {
- //Do nothing as we don't want to initialize all resolvers in this test
- //We only include this resolver to not cause trouble for the database context
- SqlSyntaxProvidersResolver.Current = new SqlSyntaxProvidersResolver(
- PluginManager.Current.ResolveSqlSyntaxProviders())
- {
- CanResolveBeforeFrozen = true
- };
- }
+
}
///
diff --git a/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7TagsUpgradeTest.cs b/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7TagsUpgradeTest.cs
index 26276181c4..44bc02d678 100644
--- a/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7TagsUpgradeTest.cs
+++ b/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7TagsUpgradeTest.cs
@@ -28,7 +28,7 @@ namespace Umbraco.Tests.Migrations.Upgrades
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
- var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper());
+ var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
return repository;
}
diff --git a/src/Umbraco.Tests/MockTests.cs b/src/Umbraco.Tests/MockTests.cs
index 2a64d5dbbb..4214bbcdb4 100644
--- a/src/Umbraco.Tests/MockTests.cs
+++ b/src/Umbraco.Tests/MockTests.cs
@@ -69,7 +69,7 @@ namespace Umbraco.Tests
[Test]
public void Can_Create_Db_Context()
{
- var dbCtx = new DatabaseContext(new Mock().Object, Mock.Of());
+ var dbCtx = new DatabaseContext(new Mock().Object, Mock.Of(), Mock.Of(), "test");
Assert.Pass();
}
@@ -77,7 +77,7 @@ namespace Umbraco.Tests
public void Can_Create_App_Context_With_Services()
{
var appCtx = new ApplicationContext(
- new DatabaseContext(new Mock().Object, Mock.Of()),
+ new DatabaseContext(new Mock().Object, Mock.Of(), Mock.Of(), "test"),
new ServiceContext(
new Mock().Object,
new Mock().Object,
diff --git a/src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs b/src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs
index 968983adc3..f239ccb80e 100644
--- a/src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs
+++ b/src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs
@@ -44,24 +44,21 @@ namespace Umbraco.Tests.Persistence
string path = TestHelper.CurrentAssemblyDirectory;
AppDomain.CurrentDomain.SetData("DataDirectory", path);
- RepositoryResolver.Current = new RepositoryResolver(new RepositoryFactory(CacheHelper.CreateDisabledCacheHelper(),
- _logger,
- new SqlCeSyntaxProvider(),
- Mock.Of()));
-
//disable cache
var cacheHelper = CacheHelper.CreateDisabledCacheHelper();
var dbContext = new DatabaseContext(
- new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, _logger),
- _logger, SqlSyntaxProvider);
+ new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, _logger),
+ _logger, SqlSyntaxProvider, "System.Data.SqlServerCe.4.0");
+
+ var repositoryFactory = new RepositoryFactory(cacheHelper, _logger, SqlSyntaxProvider, SettingsForTests.GenerateMockSettings());
ApplicationContext.Current = new ApplicationContext(
//assign the db context
dbContext,
//assign the service context
- new ServiceContext(new PetaPocoUnitOfWorkProvider(_logger), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, _logger),
+ new ServiceContext(repositoryFactory, new PetaPocoUnitOfWorkProvider(_logger), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, _logger),
cacheHelper,
new Logger(new FileInfo(TestHelper.MapPathForTest("~/unit-test-log4net.config"))))
{
@@ -79,7 +76,8 @@ namespace Umbraco.Tests.Persistence
//reset the app context
ApplicationContext.Current = null;
- RepositoryResolver.Reset();
+ Resolution.Reset();
+ //RepositoryResolver.Reset();
}
diff --git a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs
index 5ad1c27110..a1f6dd3b89 100644
--- a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs
+++ b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs
@@ -22,8 +22,8 @@ namespace Umbraco.Tests.Persistence
public void Setup()
{
_dbContext = new DatabaseContext(
- new DefaultDatabaseFactory(Core.Configuration.GlobalSettings.UmbracoConnectionName, Mock.Of()),
- Mock.Of(), new SqlCeSyntaxProvider());
+ new DefaultDatabaseFactory(Core.Configuration.GlobalSettings.UmbracoConnectionName, Mock.Of()),
+ Mock.Of(), new SqlCeSyntaxProvider(), "System.Data.SqlServerCe.4.0");
//unfortunately we have to set this up because the PetaPocoExtensions require singleton access
ApplicationContext.Current = new ApplicationContext(CacheHelper.CreateDisabledCacheHelper())
@@ -80,11 +80,13 @@ namespace Umbraco.Tests.Persistence
var engine = new SqlCeEngine(settings.ConnectionString.Replace("UmbracoPetaPocoTests", "DatabaseContextTests"));
engine.CreateDatabase();
+ var dbFactory = new DefaultDatabaseFactory(engine.LocalConnectionString, "System.Data.SqlServerCe.4.0", Mock.Of());
//re-map the dbcontext to the new conn string
_dbContext = new DatabaseContext(
- new DefaultDatabaseFactory(engine.LocalConnectionString, "System.Data.SqlServerCe.4.0", Mock.Of()),
+ dbFactory,
Mock.Of(),
- new SqlCeSyntaxProvider());
+ new SqlCeSyntaxProvider(),
+ dbFactory.ProviderName);
var schemaHelper = new DatabaseSchemaHelper(_dbContext.Database, Mock.Of(), new SqlCeSyntaxProvider());
diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
index 1382687c29..b9c884a4ff 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
@@ -47,7 +47,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
- var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper());
+ var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
return repository;
}
@@ -202,20 +202,6 @@ namespace Umbraco.Tests.Persistence.Repositories
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Perform_Add_On_ContentRepository()
{
@@ -304,35 +290,6 @@ namespace Umbraco.Tests.Persistence.Repositories
}
- [Test]
- public void Can_Perform_Multiple_Adds_On_ContentRepository_With_RepositoryResolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
- ContentTypeRepository contentTypeRepository;
- using (var repository = CreateRepository(unitOfWork, out contentTypeRepository))
- {
- ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
- Content textpage = MockedContent.CreateSimpleContent(contentType);
-
- // Act
- contentTypeRepository.AddOrUpdate(contentType);
- repository.AddOrUpdate(textpage);
- unitOfWork.Commit();
-
- var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork);
- Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
- repository2.AddOrUpdate(subpage);
- unitOfWork.Commit();
-
- // Assert
- Assert.That(contentType.HasIdentity, Is.True);
- Assert.That(textpage.HasIdentity, Is.True);
- Assert.That(subpage.HasIdentity, Is.True);
- Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId));
- }
- }
[Test]
public void Can_Verify_Fresh_Entity_Is_Not_Dirty()
@@ -394,11 +351,10 @@ namespace Umbraco.Tests.Persistence.Repositories
unitOfWork.Commit();
var id = content.Id;
- var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork);
- repository2.Delete(content);
+ repository.Delete(content);
unitOfWork.Commit();
- var content1 = repository2.Get(id);
+ var content1 = repository.Get(id);
// Assert
Assert.That(content1, Is.Null);
diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
index e5e9a0847b..1b4469f47e 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
@@ -42,7 +42,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
- var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper());
+ var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
return repository;
}
@@ -55,19 +55,6 @@ namespace Umbraco.Tests.Persistence.Repositories
//TODO Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id).
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
[Test]
public void Maps_Templates_Correctly()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs
index 81ea585c32..d6ab20f7b8 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs
@@ -91,19 +91,7 @@ namespace Umbraco.Tests.Persistence.Repositories
}
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
+
[Test]
public void Can_Perform_Get_On_DataTypeDefinitionRepository()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs
index f6ca73c38b..a9b58fa38c 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs
@@ -34,19 +34,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return dictionaryRepository;
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
[Test]
public void Can_Perform_Get_By_Key_On_DictionaryRepository()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs
index b25b7ab4e4..ea0a25e803 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs
@@ -31,19 +31,7 @@ namespace Umbraco.Tests.Persistence.Repositories
return new LanguageRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
+
[Test]
public void Can_Perform_Get_On_LanguageRepository()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
index 0e2a259832..1c81bd29e7 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
@@ -113,21 +113,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(62, unitOfWork.Database.ExecuteScalar("SELECT COUNT(*) FROM cmsContentXml"));
}
}
-
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
+
[Test]
public void Can_Perform_Add_On_MediaRepository()
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs
index 8f4d5b09be..d4643d4ab0 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs
@@ -30,20 +30,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return new MediaTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Perform_Add_On_MediaTypeRepository()
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
index a300b146a1..b8837491b5 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
@@ -112,19 +112,6 @@ namespace Umbraco.Tests.Persistence.Repositories
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
[Test]
public void MemberRepository_Can_Get_Member_By_Id()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
index 5b6eab9889..f2278a176a 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
@@ -35,20 +35,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return new MemberTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Persist_Member_Type()
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs
index 516db84d8c..119257430e 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs
@@ -37,20 +37,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return repository;
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Perform_Add_On_RelationRepository()
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs
index 60c69d1400..a8a7501f73 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs
@@ -32,19 +32,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
[Test]
public void Can_Perform_Add_On_RelationTypeRepository()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs
index d3e7605586..d0bcccd19f 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs
@@ -39,20 +39,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return tagRepository;
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Perform_Add_On_Repository()
{
@@ -956,7 +942,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
- var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper());
+ var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
return repository;
}
diff --git a/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs
index 9d753eebed..34d7affea8 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs
@@ -35,23 +35,6 @@ namespace Umbraco.Tests.Persistence.Repositories
_viewsFileSystem = new PhysicalFileSystem(SystemDirectories.MvcViews);
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- using (var repository = RepositoryResolver.Current.ResolveByType(unitOfWork))
- {
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
- }
-
[Test]
public void Can_Instantiate_Repository()
{
@@ -433,7 +416,7 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
var contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
- var contentRepo = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper());
+ var contentRepo = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
using (contentRepo)
{
diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
index 378b0ae32d..117a6a6498 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
@@ -35,23 +35,10 @@ namespace Umbraco.Tests.Persistence.Repositories
private UserRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out UserTypeRepository userTypeRepository)
{
userTypeRepository = new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
- var repository = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), userTypeRepository, CacheHelper.CreateDisabledCacheHelper());
+ var repository = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), userTypeRepository);
return repository;
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
[Test]
public void Can_Perform_Add_On_UserRepository()
@@ -188,14 +175,17 @@ namespace Umbraco.Tests.Persistence.Repositories
unitOfWork.Commit();
var id = user.Id;
- var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork);
- repository2.Delete(user);
- unitOfWork.Commit();
+ using (var utRepo = new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var repository2 = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, utRepo))
+ {
+ repository2.Delete(user);
+ unitOfWork.Commit();
- var resolved = repository2.Get((int)id);
+ var resolved = repository2.Get((int) id);
- // Assert
- Assert.That(resolved, Is.Null);
+ // Assert
+ Assert.That(resolved, Is.Null);
+ }
}
}
@@ -493,20 +483,21 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
+ using (var utRepo = new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var repository = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, utRepo))
+ {
- // Act
- var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1", "test", "media");
- repository.AddOrUpdate(user1);
- unitOfWork.Commit();
-
- // Assert
- Assert.AreEqual(3, user1.DefaultPermissions.Count());
- Assert.AreEqual("A", user1.DefaultPermissions.ElementAt(0));
- Assert.AreEqual("B", user1.DefaultPermissions.ElementAt(1));
- Assert.AreEqual("C", user1.DefaultPermissions.ElementAt(2));
+ // Act
+ var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1", "test", "media");
+ repository.AddOrUpdate(user1);
+ unitOfWork.Commit();
+ // Assert
+ Assert.AreEqual(3, user1.DefaultPermissions.Count());
+ Assert.AreEqual("A", user1.DefaultPermissions.ElementAt(0));
+ Assert.AreEqual("B", user1.DefaultPermissions.ElementAt(1));
+ Assert.AreEqual("C", user1.DefaultPermissions.ElementAt(2));
+ }
}
private void AssertPropertyValues(IUser updatedItem, IUser originalUser)
@@ -543,11 +534,13 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
- var userType = MockedUserType.CreateUserType();
- repository.AddOrUpdate(userType);
- unitOfWork.Commit();
- return userType;
+ using (var repository = new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ {
+ var userType = MockedUserType.CreateUserType();
+ repository.AddOrUpdate(userType);
+ unitOfWork.Commit();
+ return userType;
+ }
}
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs
index d84b942ffc..3bb0d46ddc 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs
@@ -35,20 +35,6 @@ namespace Umbraco.Tests.Persistence.Repositories
return new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
}
- [Test]
- public void Can_Instantiate_Repository_From_Resolver()
- {
- // Arrange
- var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var unitOfWork = provider.GetUnitOfWork();
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- }
-
[Test]
public void Can_Perform_Add_On_UserTypeRepository()
{
@@ -157,14 +143,17 @@ namespace Umbraco.Tests.Persistence.Repositories
unitOfWork.Commit();
var id = userType.Id;
- var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork);
- repository2.Delete(userType);
- unitOfWork.Commit();
+ using (var repository2 = new UserTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ {
+ repository2.Delete(userType);
+ unitOfWork.Commit();
- var resolved = repository2.Get(id);
+ var resolved = repository2.Get(id);
- // Assert
- Assert.That(resolved, Is.Null);
+ // Assert
+ Assert.That(resolved, Is.Null);
+ }
+
}
}
diff --git a/src/Umbraco.Tests/Persistence/RepositoryResolverTests.cs b/src/Umbraco.Tests/Persistence/RepositoryResolverTests.cs
deleted file mode 100644
index be387cc339..0000000000
--- a/src/Umbraco.Tests/Persistence/RepositoryResolverTests.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-using System;
-using System.Reflection;
-using Moq;
-using NUnit.Framework;
-using Umbraco.Core;
-using Umbraco.Core.Configuration.UmbracoSettings;
-using Umbraco.Core.Logging;
-using Umbraco.Core.Models;
-using Umbraco.Core.Models.Membership;
-using Umbraco.Core.ObjectResolution;
-using Umbraco.Core.Persistence;
-using Umbraco.Core.Persistence.Repositories;
-using Umbraco.Core.Persistence.SqlSyntax;
-using Umbraco.Core.Persistence.UnitOfWork;
-using Umbraco.Tests.TestHelpers;
-
-namespace Umbraco.Tests.Persistence
-{
- [TestFixture]
- public class RepositoryResolverTests
- {
-
- [SetUp]
- public void Setup()
- {
- RepositoryResolver.Current = new RepositoryResolver(
- new RepositoryFactory(CacheHelper.CreateDisabledCacheHelper(), //disable all repo caches for tests!
- Mock.Of(),
- new SqlCeSyntaxProvider(),
- SettingsForTests.GenerateMockSettings()));
-
- Resolution.Freeze();
- }
-
- [TearDown]
- public void Teardown()
- {
- RepositoryResolver.Reset();
- }
-
- //[TestCase(typeof(IUserTypeRepository))]
- //[TestCase(typeof(IUserRepository))]
- //[TestCase(typeof(IMacroRepository))]
- [TestCase(typeof(IContentRepository))]
- [TestCase(typeof(IMediaRepository))]
- [TestCase(typeof(IMediaTypeRepository))]
- [TestCase(typeof(IContentTypeRepository))]
- [TestCase(typeof(IDataTypeDefinitionRepository))]
- [TestCase(typeof(IDictionaryRepository))]
- [TestCase(typeof(ILanguageRepository))]
- [TestCase(typeof(IRelationRepository))]
- [TestCase(typeof(IRelationTypeRepository))]
- [TestCase(typeof(IScriptRepository))]
- //[TestCase(typeof(IStylesheetRepository))]
- [TestCase(typeof(ITemplateRepository))]
- public void ResolveRepository(Type repoType)
- {
- var method = typeof(RepositoryResolver).GetMethod("ResolveByType", BindingFlags.NonPublic | BindingFlags.Instance);
- var gMethod = method.MakeGenericMethod(repoType);
- var repo = gMethod.Invoke(RepositoryResolver.Current, new object[] { PetaPocoUnitOfWorkProvider.CreateUnitOfWork(Mock.Of()) });
- Assert.IsNotNull(repo);
- Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(repoType, repo.GetType()));
- repo.DisposeIfDisposable();
- }
-
- [Test]
- public void Can_Verify_UOW_In_Repository()
- {
- // Arrange
- var uow = PetaPocoUnitOfWorkProvider.CreateUnitOfWork(Mock.Of());
-
- // Act
- var repository = RepositoryResolver.Current.ResolveByType(uow);
-
- // Assert
- Assert.That(repository, Is.Not.Null);
- Assert.That(uow.Key, Is.EqualTo(((RepositoryBase)repository).UnitKey));
-
- repository.Dispose();
- }
-
- [Test]
- public void Type_Checking()
- {
- var repositoryType = typeof (IContentRepository);
- bool isSubclassOf = repositoryType.IsSubclassOf(typeof(IRepository));
- bool isAssignableFrom = typeof(IRepository).IsAssignableFrom(repositoryType);
-
- Assert.That(isSubclassOf, Is.False);
- Assert.That(isAssignableFrom, Is.True);
-
- var uow = PetaPocoUnitOfWorkProvider.CreateUnitOfWork(Mock.Of());
- var repository = RepositoryResolver.Current.ResolveByType(uow);
- bool subclassOf = repository.GetType().IsSubclassOf(typeof (IRepository));
-
- Assert.That(subclassOf, Is.False);
- Assert.That((typeof(IRepository).IsInstanceOfType(repository)), Is.True);
-
- repository.Dispose();
- }
- }
-}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
index 4a3bf208f6..e8989329f5 100644
--- a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
+++ b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
@@ -2,8 +2,11 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
+using Moq;
using NUnit.Framework;
using Umbraco.Core;
+using Umbraco.Core.Configuration.UmbracoSettings;
+using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
@@ -49,10 +52,10 @@ namespace Umbraco.Tests.Services
// ... NOPE, made even more nice changes, it is now...
// 4452ms !!!!!!!
- var contentType1 = MockedContentTypes.CreateTextpageContentType("test1", "test1");
+ var contentType1 = MockedContentTypes.CreateTextpageContentType("test1", "test1");
var contentType2 = MockedContentTypes.CreateTextpageContentType("test2", "test2");
- var contentType3 = MockedContentTypes.CreateTextpageContentType("test3", "test3");
- ServiceContext.ContentTypeService.Save(new[] {contentType1, contentType2, contentType3});
+ var contentType3 = MockedContentTypes.CreateTextpageContentType("test3", "test3");
+ ServiceContext.ContentTypeService.Save(new[] { contentType1, contentType2, contentType3 });
contentType1.AllowedContentTypes = new[]
{
new ContentTypeSort(new Lazy(() => contentType2.Id), 0, contentType2.Alias),
@@ -69,7 +72,7 @@ namespace Umbraco.Tests.Services
new ContentTypeSort(new Lazy(() => contentType2.Id), 1, contentType2.Alias)
};
ServiceContext.ContentTypeService.Save(new[] { contentType1, contentType2, contentType3 });
-
+
var roots = MockedContent.CreateTextpageContent(contentType1, -1, 10);
ServiceContext.ContentService.Save(roots);
foreach (var root in roots)
@@ -144,19 +147,26 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
- // Act
- Stopwatch watch = Stopwatch.StartNew();
- var contents = repository.GetAll();
- watch.Stop();
- var elapsed = watch.ElapsedMilliseconds;
+ using (var tRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()))
+ using (var tagRepo = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var ctRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, tRepository))
+ using (var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, ctRepository, tRepository, tagRepo))
+ {
+ // Act
+ Stopwatch watch = Stopwatch.StartNew();
+ var contents = repository.GetAll();
+ watch.Stop();
+ var elapsed = watch.ElapsedMilliseconds;
+
+ Console.WriteLine("100 content items retrieved in {0} ms without caching", elapsed);
+
+ // Assert
+ Assert.That(contents.Any(x => x.HasIdentity == false), Is.False);
+ Assert.That(contents.Any(x => x == null), Is.False);
+ }
- Console.WriteLine("100 content items retrieved in {0} ms without caching", elapsed);
- // Assert
- Assert.That(contents.Any(x => x.HasIdentity == false), Is.False);
- Assert.That(contents.Any(x => x == null), Is.False);
}
[Test, NUnit.Framework.Ignore]
@@ -169,19 +179,23 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
+ using (var tRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()))
+ using (var tagRepo = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var ctRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, tRepository))
+ using (var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, ctRepository, tRepository, tagRepo))
+ {
+ // Act
+ Stopwatch watch = Stopwatch.StartNew();
+ var contents = repository.GetAll();
+ watch.Stop();
+ var elapsed = watch.ElapsedMilliseconds;
- // Act
- Stopwatch watch = Stopwatch.StartNew();
- var contents = repository.GetAll();
- watch.Stop();
- var elapsed = watch.ElapsedMilliseconds;
+ Console.WriteLine("1000 content items retrieved in {0} ms without caching", elapsed);
- Console.WriteLine("1000 content items retrieved in {0} ms without caching", elapsed);
-
- // Assert
- //Assert.That(contents.Any(x => x.HasIdentity == false), Is.False);
- //Assert.That(contents.Any(x => x == null), Is.False);
+ // Assert
+ //Assert.That(contents.Any(x => x.HasIdentity == false), Is.False);
+ //Assert.That(contents.Any(x => x == null), Is.False);
+ }
}
[Test]
@@ -194,22 +208,28 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
- // Act
- var contents = repository.GetAll();
+ using (var tRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()))
+ using (var tagRepo = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var ctRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, tRepository))
+ using (var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, ctRepository, tRepository, tagRepo))
+ {
- Stopwatch watch = Stopwatch.StartNew();
- var contentsCached = repository.GetAll();
- watch.Stop();
- var elapsed = watch.ElapsedMilliseconds;
+ // Act
+ var contents = repository.GetAll();
- Console.WriteLine("100 content items retrieved in {0} ms with caching", elapsed);
+ Stopwatch watch = Stopwatch.StartNew();
+ var contentsCached = repository.GetAll();
+ watch.Stop();
+ var elapsed = watch.ElapsedMilliseconds;
- // Assert
- Assert.That(contentsCached.Any(x => x.HasIdentity == false), Is.False);
- Assert.That(contentsCached.Any(x => x == null), Is.False);
- Assert.That(contentsCached.Count(), Is.EqualTo(contents.Count()));
+ Console.WriteLine("100 content items retrieved in {0} ms with caching", elapsed);
+
+ // Assert
+ Assert.That(contentsCached.Any(x => x.HasIdentity == false), Is.False);
+ Assert.That(contentsCached.Any(x => x == null), Is.False);
+ Assert.That(contentsCached.Count(), Is.EqualTo(contents.Count()));
+ }
}
[Test, NUnit.Framework.Ignore]
@@ -222,22 +242,27 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
+ using (var tRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()))
+ using (var tagRepo = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger))
+ using (var ctRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, tRepository))
+ using (var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, ctRepository, tRepository, tagRepo))
+ {
- // Act
- var contents = repository.GetAll();
+ // Act
+ var contents = repository.GetAll();
- Stopwatch watch = Stopwatch.StartNew();
- var contentsCached = repository.GetAll();
- watch.Stop();
- var elapsed = watch.ElapsedMilliseconds;
+ Stopwatch watch = Stopwatch.StartNew();
+ var contentsCached = repository.GetAll();
+ watch.Stop();
+ var elapsed = watch.ElapsedMilliseconds;
- Console.WriteLine("1000 content items retrieved in {0} ms with caching", elapsed);
+ Console.WriteLine("1000 content items retrieved in {0} ms with caching", elapsed);
- // Assert
- //Assert.That(contentsCached.Any(x => x.HasIdentity == false), Is.False);
- //Assert.That(contentsCached.Any(x => x == null), Is.False);
- //Assert.That(contentsCached.Count(), Is.EqualTo(contents.Count()));
+ // Assert
+ //Assert.That(contentsCached.Any(x => x.HasIdentity == false), Is.False);
+ //Assert.That(contentsCached.Any(x => x == null), Is.False);
+ //Assert.That(contentsCached.Count(), Is.EqualTo(contents.Count()));
+ }
}
[TearDown]
diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs
index f3247df26f..50e178dbe6 100644
--- a/src/Umbraco.Tests/Services/ContentServiceTests.cs
+++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs
@@ -4,6 +4,9 @@ using System.Linq;
using System.Threading;
using Moq;
using NUnit.Framework;
+using Umbraco.Core;
+using Umbraco.Core.Configuration.UmbracoSettings;
+using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
@@ -719,10 +722,7 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
- {
- Assert.IsTrue(uow.Database.Exists(content.Id));
- }
+ Assert.IsTrue(uow.Database.Exists(content.Id));
// Act
bool unpublished = contentService.UnPublish(content, 0);
@@ -733,10 +733,7 @@ namespace Umbraco.Tests.Services
Assert.That(content.Published, Is.False);
uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
- {
- Assert.IsFalse(uow.Database.Exists(content.Id));
- }
+ Assert.IsFalse(uow.Database.Exists(content.Id));
}
///
@@ -786,11 +783,12 @@ namespace Umbraco.Tests.Services
var allContent = rootContent.Concat(rootContent.SelectMany(x => x.Descendants()));
//for testing we need to clear out the contentXml table so we can see if it worked
var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+ using (var uow = provider.GetUnitOfWork())
{
- uow.Database.TruncateTable("cmsContentXml");
+ uow.Database.TruncateTable("cmsContentXml");
}
+
+
//for this test we are also going to save a revision for a content item that is not published, this is to ensure
//that it's published version still makes it into the cmsContentXml table!
contentService.Save(allContent.Last());
@@ -800,10 +798,9 @@ namespace Umbraco.Tests.Services
// Assert
Assert.IsTrue(published);
- uow = provider.GetUnitOfWork();
- using (var repo = RepositoryResolver.Current.ResolveByType(uow))
+ using (var uow = provider.GetUnitOfWork())
{
- Assert.AreEqual(allContent.Count(), uow.Database.ExecuteScalar("select count(*) from cmsContentXml"));
+ Assert.AreEqual(allContent.Count(), uow.Database.ExecuteScalar("select count(*) from cmsContentXml"));
}
}
@@ -820,8 +817,8 @@ namespace Umbraco.Tests.Services
var allContent = rootContent.Concat(rootContent.SelectMany(x => x.Descendants())).ToList();
//for testing we need to clear out the contentXml table so we can see if it worked
var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+
+ using (var uow = provider.GetUnitOfWork())
{
uow.Database.TruncateTable("cmsContentXml");
}
@@ -833,8 +830,7 @@ namespace Umbraco.Tests.Services
contentService.RePublishAll(new int[]{allContent.Last().ContentTypeId});
// Assert
- uow = provider.GetUnitOfWork();
- using (var repo = RepositoryResolver.Current.ResolveByType(uow))
+ using (var uow = provider.GetUnitOfWork())
{
Assert.AreEqual(allContent.Count(), uow.Database.ExecuteScalar("select count(*) from cmsContentXml"));
}
@@ -1273,21 +1269,25 @@ namespace Umbraco.Tests.Services
var c2 = new Lazy(() => MockedContent.CreateSimpleContent(contentType, "Hierarchy Simple Text Subpage", c.Value.Id));
var list = new List> {c, c2};
- var repository = RepositoryResolver.Current.ResolveByType(unitOfWork);
- foreach (var content in list)
+ ContentTypeRepository contentTypeRepository;
+ using (var repository = CreateRepository(unitOfWork, out contentTypeRepository))
{
- repository.AddOrUpdate(content.Value);
- unitOfWork.Commit();
+ foreach (var content in list)
+ {
+ repository.AddOrUpdate(content.Value);
+ unitOfWork.Commit();
+ }
+
+ Assert.That(c.Value.HasIdentity, Is.True);
+ Assert.That(c2.Value.HasIdentity, Is.True);
+
+ Assert.That(c.Value.Id > 0, Is.True);
+ Assert.That(c2.Value.Id > 0, Is.True);
+
+ Assert.That(c.Value.ParentId > 0, Is.True);
+ Assert.That(c2.Value.ParentId > 0, Is.True);
}
-
- Assert.That(c.Value.HasIdentity, Is.True);
- Assert.That(c2.Value.HasIdentity, Is.True);
-
- Assert.That(c.Value.Id > 0, Is.True);
- Assert.That(c2.Value.Id > 0, Is.True);
-
- Assert.That(c.Value.ParentId > 0, Is.True);
- Assert.That(c2.Value.ParentId > 0, Is.True);
+
}
[Test]
@@ -1376,16 +1376,15 @@ namespace Umbraco.Tests.Services
contentService.Save(content);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+
+ using (var uow = provider.GetUnitOfWork())
{
Assert.IsFalse(uow.Database.Exists(content.Id));
}
contentService.Publish(content);
- uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+ using (var uow = provider.GetUnitOfWork())
{
Assert.IsTrue(uow.Database.Exists(content.Id));
}
@@ -1401,8 +1400,8 @@ namespace Umbraco.Tests.Services
contentService.Save(content);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+
+ using (var uow = provider.GetUnitOfWork())
{
Assert.IsTrue(uow.Database.SingleOrDefault("WHERE nodeId=@nodeId AND versionId = @versionId", new{nodeId = content.Id, versionId = content.Version}) != null);
}
@@ -1440,5 +1439,14 @@ namespace Umbraco.Tests.Services
}
return list;
}
+
+ private ContentRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository)
+ {
+ var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
+ var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of());
+ contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), templateRepository);
+ var repository = new ContentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), contentTypeRepository, templateRepository, tagRepository);
+ return repository;
+ }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Services/MediaServiceTests.cs b/src/Umbraco.Tests/Services/MediaServiceTests.cs
index 55ee9dfbf9..12d4b4b0aa 100644
--- a/src/Umbraco.Tests/Services/MediaServiceTests.cs
+++ b/src/Umbraco.Tests/Services/MediaServiceTests.cs
@@ -92,10 +92,8 @@ namespace Umbraco.Tests.Services
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
- {
- Assert.IsTrue(uow.Database.Exists(media.Id));
- }
+
+ Assert.IsTrue(uow.Database.Exists(media.Id));
}
diff --git a/src/Umbraco.Tests/Services/MemberServiceTests.cs b/src/Umbraco.Tests/Services/MemberServiceTests.cs
index 1e079ebc4e..d9cb75e587 100644
--- a/src/Umbraco.Tests/Services/MemberServiceTests.cs
+++ b/src/Umbraco.Tests/Services/MemberServiceTests.cs
@@ -1067,8 +1067,8 @@ namespace Umbraco.Tests.Services
ServiceContext.MemberService.Save(customMember);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
- var uow = provider.GetUnitOfWork();
- using (RepositoryResolver.Current.ResolveByType(uow))
+
+ using (var uow = provider.GetUnitOfWork())
{
Assert.IsTrue(uow.Database.Exists(customMember.Id));
}
diff --git a/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs b/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
index 88596eef49..add40b19cc 100644
--- a/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
+++ b/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
@@ -7,8 +7,10 @@ using System.Threading;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Cache;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
+using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Publishing;
using Umbraco.Core.Services;
@@ -35,9 +37,9 @@ namespace Umbraco.Tests.Services
//a Database instance is created per thread, whereas the default implementation which will work in an HttpContext
//threading environment, or a single apartment threading environment will not work for this test because
//it is multi-threaded.
- _dbFactory = new PerThreadDatabaseFactory();
+ _dbFactory = new PerThreadDatabaseFactory(Logger);
//overwrite the local object
- ApplicationContext.DatabaseContext = new DatabaseContext(_dbFactory);
+ ApplicationContext.DatabaseContext = new DatabaseContext(_dbFactory, Logger, new SqlCeSyntaxProvider(), "System.Data.SqlServerCe.4.0");
//disable cache
var cacheHelper = CacheHelper.CreateDisabledCacheHelper();
@@ -45,8 +47,15 @@ namespace Umbraco.Tests.Services
//here we are going to override the ServiceContext because normally with our test cases we use a
//global Database object but this is NOT how it should work in the web world or in any multi threaded scenario.
//we need a new Database object for each thread.
+ var repositoryFactory = new RepositoryFactory(cacheHelper, Logger, SqlSyntaxProvider, SettingsForTests.GenerateMockSettings());
_uowProvider = new PerThreadPetaPocoUnitOfWorkProvider(_dbFactory);
- ApplicationContext.Services = new ServiceContext(_uowProvider, new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, Logger);
+ ApplicationContext.Services = new ServiceContext(
+ repositoryFactory,
+ _uowProvider,
+ new FileUnitOfWorkProvider(),
+ new PublishingStrategy(),
+ cacheHelper,
+ Logger);
CreateTestData();
}
@@ -208,11 +217,20 @@ namespace Umbraco.Tests.Services
///
internal class PerThreadDatabaseFactory : DisposableObject, IDatabaseFactory
{
- private readonly ConcurrentDictionary _databases = new ConcurrentDictionary();
+ private readonly ILogger _logger;
+
+ public PerThreadDatabaseFactory(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ private readonly ConcurrentDictionary _databases = new ConcurrentDictionary();
public UmbracoDatabase CreateDatabase()
{
- var db = _databases.GetOrAdd(Thread.CurrentThread.ManagedThreadId, i => new UmbracoDatabase(Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName));
+ var db = _databases.GetOrAdd(
+ Thread.CurrentThread.ManagedThreadId,
+ i => new UmbracoDatabase(Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName, _logger));
return db;
}
diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
index 8e4715e9d5..548b412d5b 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
@@ -73,13 +73,15 @@ namespace Umbraco.Tests.TestHelpers
GetDbProviderName(),
Logger);
+ var repositoryFactory = new RepositoryFactory(cacheHelper, Logger, SqlSyntaxProvider, SettingsForTests.GenerateMockSettings());
+
_appContext = new ApplicationContext(
//assign the db context
- new DatabaseContext(dbFactory, Logger, SqlSyntaxProvider),
+ new DatabaseContext(dbFactory, Logger, SqlSyntaxProvider, "System.Data.SqlServerCe.4.0"),
//assign the service context
- new ServiceContext(new PetaPocoUnitOfWorkProvider(dbFactory), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, Logger),
- cacheHelper,
- Logger)
+ new ServiceContext(repositoryFactory, new PetaPocoUnitOfWorkProvider(dbFactory), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, Logger),
+ cacheHelper,
+ Logger)
{
IsReady = true
};
@@ -101,7 +103,7 @@ namespace Umbraco.Tests.TestHelpers
protected virtual ISqlSyntaxProvider SqlSyntaxProvider
{
- get { return new SqlCeSyntaxProvider();}
+ get { return new SqlCeSyntaxProvider(); }
}
protected override void SetupApplicationContext()
@@ -131,7 +133,7 @@ namespace Umbraco.Tests.TestHelpers
///
protected virtual string GetDbConnectionString()
{
- return @"Datasource=|DataDirectory|UmbracoPetaPocoTests.sdf;Flush Interval=1;";
+ return @"Datasource=|DataDirectory|UmbracoPetaPocoTests.sdf;Flush Interval=1;";
}
///
@@ -143,11 +145,11 @@ namespace Umbraco.Tests.TestHelpers
return;
var path = TestHelper.CurrentAssemblyDirectory;
-
+
//Get the connectionstring settings from config
var settings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName];
ConfigurationManager.AppSettings.Set(
- Core.Configuration.GlobalSettings.UmbracoConnectionName,
+ Core.Configuration.GlobalSettings.UmbracoConnectionName,
GetDbConnectionString());
_dbPath = string.Concat(path, "\\UmbracoPetaPocoTests.sdf");
@@ -159,7 +161,7 @@ namespace Umbraco.Tests.TestHelpers
// - _isFirstTestInFixture + DbInitBehavior.NewDbFileAndSchemaPerFixture
//if this is the first test in the session, always ensure a new db file is created
- if (_isFirstRunInTestSession || File.Exists(_dbPath) == false
+ if (_isFirstRunInTestSession || File.Exists(_dbPath) == false
|| DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerTest
|| (_isFirstTestInFixture && DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerFixture))
{
@@ -185,10 +187,10 @@ namespace Umbraco.Tests.TestHelpers
else
{
var engine = new SqlCeEngine(settings.ConnectionString);
- engine.CreateDatabase();
+ engine.CreateDatabase();
}
}
-
+
}
}
@@ -204,15 +206,6 @@ namespace Umbraco.Tests.TestHelpers
DataTypesResolver.Current = new DataTypesResolver(
() => PluginManager.Current.ResolveDataTypes());
- RepositoryResolver.Current = new RepositoryResolver(
- new RepositoryFactory(CacheHelper.CreateDisabledCacheHelper(), //disable all repo caches for tests!
- Logger,
- SqlSyntaxProvider,
- SettingsForTests.GenerateMockSettings()));
-
- SqlSyntaxProvidersResolver.Current = new SqlSyntaxProvidersResolver(
- new List { typeof(MySqlSyntaxProvider), typeof(SqlCeSyntaxProvider), typeof(SqlServerSyntaxProvider) }) { CanResolveBeforeFrozen = true };
-
MappingResolver.Current = new MappingResolver(
() => PluginManager.Current.ResolveAssignedMapperTypes());
@@ -238,7 +231,7 @@ namespace Umbraco.Tests.TestHelpers
// - NewDbFileAndSchemaPerTest
// - _isFirstTestInFixture + DbInitBehavior.NewDbFileAndSchemaPerFixture
- if (_dbBytes == null &&
+ if (_dbBytes == null &&
(_isFirstRunInTestSession
|| DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerTest
|| (_isFirstTestInFixture && DatabaseTestBehavior == DatabaseBehavior.NewDbFileAndSchemaPerFixture)))
@@ -253,7 +246,7 @@ namespace Umbraco.Tests.TestHelpers
CloseDbConnections();
_dbBytes = File.ReadAllBytes(_dbPath);
- }
+ }
}
[TestFixtureTearDown]
@@ -278,7 +271,7 @@ namespace Umbraco.Tests.TestHelpers
SqlSyntaxContext.SqlSyntaxProvider = null;
}
-
+
base.TearDown();
}
@@ -343,15 +336,15 @@ namespace Umbraco.Tests.TestHelpers
}
}
- protected ServiceContext ServiceContext
- {
- get { return ApplicationContext.Services; }
- }
+ protected ServiceContext ServiceContext
+ {
+ get { return ApplicationContext.Services; }
+ }
- protected DatabaseContext DatabaseContext
- {
- get { return ApplicationContext.DatabaseContext; }
- }
+ protected DatabaseContext DatabaseContext
+ {
+ get { return ApplicationContext.DatabaseContext; }
+ }
protected UmbracoContext GetUmbracoContext(string url, int templateId, RouteData routeData = null, bool setSingleton = false)
{
diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs
index 7a62b5f5df..ba64d8e8a0 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs
@@ -59,28 +59,19 @@ namespace Umbraco.Tests.TestHelpers
throw;
}
-
- RepositoryResolver.Current = new RepositoryResolver(
- new RepositoryFactory(CacheHelper.CreateDisabledCacheHelper(),//disable all repo caches for tests!
- Logger,
- SyntaxProvider,
- Mock.Of()));
-
- SqlSyntaxProvidersResolver.Current = new SqlSyntaxProvidersResolver(
- new List { typeof(MySqlSyntaxProvider), typeof(SqlCeSyntaxProvider), typeof(SqlServerSyntaxProvider) }) { CanResolveBeforeFrozen = true };
-
Resolution.Freeze();
//disable cache
var cacheHelper = CacheHelper.CreateDisabledCacheHelper();
var logger = new Logger(new FileInfo(TestHelper.MapPathForTest("~/unit-test-log4net.config")));
-
+ var repositoryFactory = new RepositoryFactory(cacheHelper, Logger, SyntaxProvider, SettingsForTests.GenerateMockSettings());
+ var dbFactory = new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, logger);
ApplicationContext.Current = new ApplicationContext(
//assign the db context
- new DatabaseContext(new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, logger)),
+ new DatabaseContext(dbFactory, logger, SqlSyntaxProviders.CreateDefault(logger)),
//assign the service context
- new ServiceContext(new PetaPocoUnitOfWorkProvider(), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, logger),
+ new ServiceContext(repositoryFactory, new PetaPocoUnitOfWorkProvider(dbFactory), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, logger),
cacheHelper,
logger)
{
@@ -110,8 +101,6 @@ namespace Umbraco.Tests.TestHelpers
//reset the app context
ApplicationContext.Current = null;
-
- RepositoryResolver.Reset();
}
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
index 7c25c29600..fda4f37542 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
@@ -43,7 +43,7 @@ namespace Umbraco.Tests.TestHelpers
using (DisposableTimer.TraceDuration("init", "init"))
{
TestHelper.InitializeContentDirectories();
-
+
InitializeLegacyMappingsForCoreEditors();
SetupPluginManager();
@@ -54,7 +54,7 @@ namespace Umbraco.Tests.TestHelpers
FreezeResolution();
}
-
+
}
[TearDown]
@@ -73,12 +73,12 @@ namespace Umbraco.Tests.TestHelpers
//reset the app context, this should reset most things that require resetting like ALL resolvers
ObjectExtensions.DisposeIfDisposable(ApplicationContext.Current);
ApplicationContext.Current = null;
- ResetPluginManager();
+ ResetPluginManager();
}
-
+
}
-
- private static readonly object Locker = new object();
+
+ private static readonly object Locker = new object();
private static void InitializeLegacyMappingsForCoreEditors()
{
@@ -89,9 +89,9 @@ namespace Umbraco.Tests.TestHelpers
//Create the legacy prop-eds mapping
LegacyPropertyEditorIdToAliasConverter.CreateMappingsForCoreEditors();
}
- }
+ }
}
-
+
///
/// If this class requires auto-mapper mapping initialization then init them
///
@@ -115,7 +115,7 @@ namespace Umbraco.Tests.TestHelpers
{
mapper.ConfigureMappings(configuration, ApplicationContext);
}
- });
+ });
}
}
@@ -136,7 +136,7 @@ namespace Umbraco.Tests.TestHelpers
{
if (PluginManagerResetRequired)
{
- PluginManager.Current = null;
+ PluginManager.Current = null;
}
}
@@ -148,12 +148,15 @@ namespace Umbraco.Tests.TestHelpers
//disable cache
var cacheHelper = CacheHelper.CreateDisabledCacheHelper();
+ var sqlSyntax = new SqlCeSyntaxProvider();
+ var repoFactory = new RepositoryFactory(CacheHelper.CreateDisabledCacheHelper(), Logger, sqlSyntax, SettingsForTests.GenerateMockSettings());
+
ApplicationContext.Current = new ApplicationContext(
//assign the db context
- new DatabaseContext(new DefaultDatabaseFactory(Core.Configuration.GlobalSettings.UmbracoConnectionName, Logger),
- Logger, new SqlCeSyntaxProvider()),
+ new DatabaseContext(new DefaultDatabaseFactory(Core.Configuration.GlobalSettings.UmbracoConnectionName, Logger),
+ Logger, sqlSyntax, "System.Data.SqlServerCe.4.0"),
//assign the service context
- new ServiceContext(new PetaPocoUnitOfWorkProvider(Logger), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, Logger),
+ new ServiceContext(repoFactory, new PetaPocoUnitOfWorkProvider(Logger), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper, Logger),
cacheHelper,
Logger)
{
diff --git a/src/Umbraco.Web/Standalone/ServiceContextManager.cs b/src/Umbraco.Web/Standalone/ServiceContextManager.cs
index 6e782f37a8..32c0867429 100644
--- a/src/Umbraco.Web/Standalone/ServiceContextManager.cs
+++ b/src/Umbraco.Web/Standalone/ServiceContextManager.cs
@@ -2,9 +2,11 @@
using System.Diagnostics;
using Umbraco.Core;
using Umbraco.Core.Cache;
+using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Mappers;
+using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Publishing;
using Umbraco.Core.Services;
@@ -18,14 +20,16 @@ namespace Umbraco.Web.Standalone
private readonly string _connectionString;
private readonly string _providerName;
private readonly ILogger _logger;
+ private readonly ISqlSyntaxProvider _syntaxProvider;
private ServiceContext _serviceContext;
private readonly StandaloneApplication _application;
- public ServiceContextManager(string connectionString, string providerName, string baseDirectory, ILogger logger)
+ public ServiceContextManager(string connectionString, string providerName, string baseDirectory, ILogger logger, ISqlSyntaxProvider syntaxProvider)
{
_connectionString = connectionString;
_providerName = providerName;
_logger = logger;
+ _syntaxProvider = syntaxProvider;
Trace.WriteLine("Current AppDomain: " + AppDomain.CurrentDomain.FriendlyName);
Trace.WriteLine("Current AppDomain: " + AppDomain.CurrentDomain.BaseDirectory);
@@ -50,9 +54,10 @@ namespace Umbraco.Web.Standalone
new NullCacheProvider());
var dbFactory = new DefaultDatabaseFactory(_connectionString, _providerName, _logger);
- var dbContext = new DatabaseContext(dbFactory, _logger);
+ var dbContext = new DatabaseContext(dbFactory, _logger, _syntaxProvider, _providerName);
Database.Mapper = new PetaPocoMapper();
_serviceContext = new ServiceContext(
+ new RepositoryFactory(cacheHelper, _logger, dbContext.SqlSyntax, UmbracoConfig.For.UmbracoSettings()),
new PetaPocoUnitOfWorkProvider(dbFactory),
new FileUnitOfWorkProvider(),
new PublishingStrategy(),