Fix tests

This commit is contained in:
Stephan
2016-11-29 18:59:01 +01:00
parent 677cc74a61
commit e29f8bedb5
8 changed files with 58 additions and 25 deletions

View File

@@ -259,6 +259,7 @@ namespace Umbraco.Core
.Add<PropertyMapper>()
.Add<PropertyTypeMapper>()
.Add<RelationMapper>()
.Add<RelationTypeMapper>()
.Add<ServerRegistrationMapper>()
.Add<TagMapper>()
.Add<TaskTypeMapper>()

View File

@@ -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

View File

@@ -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;

View File

@@ -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]

View File

@@ -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);

View File

@@ -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)

View File

@@ -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>();

View File

@@ -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);