Fix tests
This commit is contained in:
@@ -259,6 +259,7 @@ namespace Umbraco.Core
|
||||
.Add<PropertyMapper>()
|
||||
.Add<PropertyTypeMapper>()
|
||||
.Add<RelationMapper>()
|
||||
.Add<RelationTypeMapper>()
|
||||
.Add<ServerRegistrationMapper>()
|
||||
.Add<TagMapper>()
|
||||
.Add<TaskTypeMapper>()
|
||||
|
||||
@@ -88,8 +88,14 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
get
|
||||
{
|
||||
if (_cachePolicy != null) return _cachePolicy;
|
||||
if (_hasIdQuery == null) _hasIdQuery = Query.Where(x => x.Id != 0);
|
||||
var options = new RepositoryCachePolicyOptions(() => PerformCount(_hasIdQuery));
|
||||
// fixme - no query for some TEntity?!
|
||||
//if (_hasIdQuery == null) _hasIdQuery = Query.Where(x => x.Id != 0);
|
||||
//var options = new RepositoryCachePolicyOptions(() => PerformCount(_hasIdQuery));
|
||||
var options = new RepositoryCachePolicyOptions(() =>
|
||||
{
|
||||
if (_hasIdQuery == null) _hasIdQuery = Query.Where(x => x.Id != 0);
|
||||
return PerformCount(_hasIdQuery);
|
||||
});
|
||||
return _cachePolicy = new DefaultRepositoryCachePolicy<TEntity, TId>(RuntimeCache, options);
|
||||
}
|
||||
set
|
||||
|
||||
@@ -84,10 +84,10 @@ namespace Umbraco.Core.Persistence
|
||||
|
||||
// INTERNAL FOR UNIT TESTS
|
||||
internal UmbracoDatabase(DbConnection connection,
|
||||
ISqlSyntaxProvider sqlSyntax, DatabaseType databaseType, ILogger logger)
|
||||
: base(connection, databaseType, DefaultIsolationLevel)
|
||||
SqlContext sqlContext, ILogger logger)
|
||||
: base(connection, sqlContext.DatabaseType, DefaultIsolationLevel)
|
||||
{
|
||||
_sqlContext = new SqlContext(sqlSyntax, null, databaseType); // beware! no pocoDataFactory!
|
||||
_sqlContext = sqlContext;
|
||||
|
||||
_logger = logger;
|
||||
|
||||
|
||||
@@ -439,7 +439,7 @@ namespace Umbraco.Tests.IO
|
||||
Assert.IsTrue(fs.FileExists("sub/f5.txt"));
|
||||
scope.Dispose();
|
||||
Assert.IsTrue(fs.FileExists("sub/f5.txt"));
|
||||
Assert.IsFalse(Directory.Exists(appdata + "/Shadow/" + id));
|
||||
TestHelper.TryAssert(() => Assert.IsFalse(Directory.Exists(appdata + "/Shadow/" + id)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using NPoco;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Configuration.UmbracoSettings;
|
||||
@@ -14,10 +7,8 @@ using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Mappers;
|
||||
using Umbraco.Core.Persistence.Querying;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
|
||||
@@ -29,7 +20,7 @@ namespace Umbraco.Tests.Templates
|
||||
private readonly Mock<CacheHelper> _cacheMock = new Mock<CacheHelper>();
|
||||
private readonly Mock<IFileSystem> _viewFileSystemMock = new Mock<IFileSystem>();
|
||||
private readonly Mock<IFileSystem> _masterpageFileSystemMock = new Mock<IFileSystem>();
|
||||
private readonly Mock<ITemplatesSection> _templateConfigMock = new Mock<Core.Configuration.UmbracoSettings.ITemplatesSection>();
|
||||
private readonly Mock<ITemplatesSection> _templateConfigMock = new Mock<ITemplatesSection>();
|
||||
private TemplateRepository _templateRepository;
|
||||
|
||||
[SetUp]
|
||||
@@ -38,8 +29,13 @@ namespace Umbraco.Tests.Templates
|
||||
var logger = Mock.Of<ILogger>();
|
||||
|
||||
var unitOfWorkMock = new Mock<IDatabaseUnitOfWork>();
|
||||
var db = TestObjects.GetUmbracoSqlCeDatabase(logger);
|
||||
unitOfWorkMock.Setup(x => x.Database).Returns(db);
|
||||
var database = TestObjects.GetUmbracoSqlCeDatabase(logger);
|
||||
unitOfWorkMock.Setup(x => x.Database).Returns(database);
|
||||
|
||||
var databaseFactoryMock = new Mock<IDatabaseFactory>();
|
||||
databaseFactoryMock.Setup(x => x.QueryFactory).Returns(Mock.Of<IQueryFactory>());
|
||||
var databaseContext = new DatabaseContext(databaseFactoryMock.Object);
|
||||
unitOfWorkMock.Setup(x => x.DatabaseContext).Returns(databaseContext);
|
||||
|
||||
_templateRepository = new TemplateRepository(unitOfWorkMock.Object, _cacheMock.Object, logger, _masterpageFileSystemMock.Object, _viewFileSystemMock.Object, _templateConfigMock.Object);
|
||||
|
||||
|
||||
@@ -54,7 +54,8 @@ namespace Umbraco.Tests.TestHelpers
|
||||
{
|
||||
var syntax = new SqlCeSyntaxProvider();
|
||||
var connection = GetDbConnection();
|
||||
return new UmbracoDatabase(connection, syntax, DatabaseType.SQLCe, logger);
|
||||
var sqlContext = new SqlContext(syntax, Mock.Of<IPocoDataFactory>(), DatabaseType.SQLCe);
|
||||
return new UmbracoDatabase(connection, sqlContext, logger);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -68,7 +69,8 @@ namespace Umbraco.Tests.TestHelpers
|
||||
{
|
||||
var syntax = new SqlServerSyntaxProvider(new Lazy<IDatabaseFactory>(() => null)); // do NOT try to get the server's version!
|
||||
var connection = GetDbConnection();
|
||||
return new UmbracoDatabase(connection, syntax, DatabaseType.SqlServer2008, logger);
|
||||
var sqlContext = new SqlContext(syntax, Mock.Of<IPocoDataFactory>(), DatabaseType.SqlServer2008);
|
||||
return new UmbracoDatabase(connection, sqlContext, logger);
|
||||
}
|
||||
|
||||
public static void RegisterServices(IServiceContainer container)
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
|
||||
protected IMapperCollection Mappers => Container.GetInstance<IMapperCollection>();
|
||||
|
||||
protected IQueryFactory QueryFactory => Container.GetInstance<IQueryFactory>();
|
||||
protected IQueryFactory QueryFactory => Container.GetInstance<DatabaseContext>().QueryFactory;
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the plugin manager should be resetted before and after each test.
|
||||
@@ -114,8 +114,36 @@ namespace Umbraco.Tests.TestHelpers
|
||||
Container.RegisterSingleton<IPublishedContentModelFactory, NoopPublishedContentModelFactory>();
|
||||
|
||||
// register application stuff (database factory & context, services...)
|
||||
Container.RegisterCollectionBuilder<MapperCollectionBuilder>()
|
||||
.Add(f => f.GetInstance<PluginManager>().ResolveAssignedMapperTypes());
|
||||
Container.RegisterCollectionBuilder<MapperCollectionBuilder>() // fixme - see CoreRuntime, should not duplicate core here
|
||||
.Add<AccessMapper>()
|
||||
.Add<AuditItemMapper>()
|
||||
.Add<ContentMapper>()
|
||||
.Add<ContentTypeMapper>()
|
||||
.Add<DataTypeDefinitionMapper>()
|
||||
.Add<DictionaryMapper>()
|
||||
.Add<DictionaryTranslationMapper>()
|
||||
.Add<DomainMapper>()
|
||||
.Add<LanguageMapper>()
|
||||
.Add<MacroMapper>()
|
||||
.Add<MediaMapper>()
|
||||
.Add<MediaTypeMapper>()
|
||||
.Add<MemberGroupMapper>()
|
||||
.Add<MemberMapper>()
|
||||
.Add<MemberTypeMapper>()
|
||||
.Add<MigrationEntryMapper>()
|
||||
.Add<PropertyGroupMapper>()
|
||||
.Add<PropertyMapper>()
|
||||
.Add<PropertyTypeMapper>()
|
||||
.Add<RelationMapper>()
|
||||
.Add<RelationTypeMapper>()
|
||||
.Add<ServerRegistrationMapper>()
|
||||
.Add<TagMapper>()
|
||||
.Add<TaskTypeMapper>()
|
||||
.Add<TemplateMapper>()
|
||||
.Add<UmbracoEntityMapper>()
|
||||
.Add<UserMapper>()
|
||||
.Add<ExternalLoginMapper>()
|
||||
.Add<UserTypeMapper>();
|
||||
|
||||
Container.RegisterSingleton<IEventMessagesFactory>(_ => new TransientEventMessagesFactory());
|
||||
Container.RegisterSingleton<IUmbracoDatabaseAccessor, TestUmbracoDatabaseAccessor>();
|
||||
|
||||
@@ -389,8 +389,8 @@ namespace umbraco.DataLayer
|
||||
var databaseContextProperty = currentType.GetProperty("DatabaseContext", BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);
|
||||
var databaseContext = databaseContextProperty.GetValue(null);
|
||||
|
||||
var factoryField = databaseContextType.GetField("_factory", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
Factory = factoryField.GetValue(databaseContext);
|
||||
var factoryProperty = databaseContextType.GetProperty("DatabaseFactory", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
Factory = factoryProperty.GetValue(databaseContext);
|
||||
|
||||
GetMethod = defaultDatabaseFactoryType.GetMethod("GetDatabase", BindingFlags.Instance | BindingFlags.Public);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user