Fixes tests

This commit is contained in:
Shannon
2018-10-02 15:19:01 +02:00
parent 0c5cf5256b
commit 7196c855b2
5 changed files with 37 additions and 21 deletions

View File

@@ -748,7 +748,7 @@ ORDER BY colName";
if (excludeUserGroups != null && excludeUserGroups.Length > 0)
{
var subQuery = @"AND (umbracoUser.id NOT IN (SELECT DISTINCT umbracoUser.id
const string subQuery = @"AND (umbracoUser.id NOT IN (SELECT DISTINCT umbracoUser.id
FROM umbracoUser
INNER JOIN umbracoUser2UserGroup ON umbracoUser2UserGroup.userId = umbracoUser.id
INNER JOIN umbracoUserGroup ON umbracoUserGroup.id = umbracoUser2UserGroup.userGroupId
@@ -809,7 +809,7 @@ ORDER BY colName";
sql = new SqlTranslator<IUser>(sql, query).Translate();
// get sorted and filtered sql
var sqlNodeIdsWithSort = ApplySort(ApplyFilter(sql, filterSql), orderDirection, orderBy);
var sqlNodeIdsWithSort = ApplySort(ApplyFilter(sql, filterSql, query != null), orderDirection, orderBy);
// get a page of results and total count
var pagedResult = Database.Page<UserDto>(pageIndex + 1, pageSize, sqlNodeIdsWithSort);
@@ -820,11 +820,17 @@ ORDER BY colName";
return pagedResult.Items.Select(UserFactory.BuildEntity);
}
private Sql<ISqlContext> ApplyFilter(Sql<ISqlContext> sql, Sql<ISqlContext> filterSql)
private Sql<ISqlContext> ApplyFilter(Sql<ISqlContext> sql, Sql<ISqlContext> filterSql, bool hasWhereClause)
{
if (filterSql == null) return sql;
sql.Append(SqlContext.Sql(" WHERE " + filterSql.SQL.TrimStart("AND "), filterSql.Arguments));
//ensure we don't append a WHERE if there is already one
var args = filterSql.Arguments;
var sqlFilter = hasWhereClause
? filterSql.SQL
: " WHERE " + filterSql.SQL.TrimStart("AND ");
sql.Append(SqlContext.Sql(sqlFilter, args));
return sql;
}

View File

@@ -1,5 +1,6 @@
using System.Linq;
using NUnit.Framework;
using Umbraco.Core.Composing;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
@@ -8,15 +9,17 @@ using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Core.Logging;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
namespace Umbraco.Tests.Persistence.Repositories
{
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, Logger = UmbracoTestOptions.Logger.Console)]
public class AuditRepositoryTest : TestWithDatabaseBase
{
[Test]
public void Can_Add_Audit_Entry()
{
@@ -24,7 +27,7 @@ namespace Umbraco.Tests.Persistence.Repositories
using (var scope = sp.CreateScope())
{
var repo = new AuditRepository((IScopeAccessor) sp, CacheHelper, Logger);
repo.Save(new AuditItem(-1, "This is a System audit trail", AuditType.System, 0));
repo.Save(new AuditItem(-1, "This is a System audit trail", AuditType.System, -1));
var dtos = scope.Database.Fetch<LogDto>("WHERE id > -1");
@@ -43,8 +46,8 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 100; i++)
{
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, 0));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, 0));
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, -1));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, -1));
}
scope.Complete();
@@ -71,8 +74,8 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 100; i++)
{
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, 0));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, 0));
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, -1));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, -1));
}
scope.Complete();
@@ -82,7 +85,7 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var repo = new AuditRepository((IScopeAccessor)sp, CacheHelper, Logger);
var query = sp.SqlContext.Query<IAuditItem>().Where(x => x.UserId == 0);
var query = sp.SqlContext.Query<IAuditItem>().Where(x => x.UserId == -1);
try
{
@@ -91,7 +94,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var page = repo.GetPagedResultsByQuery(query, 0, 10, out var total, Direction.Descending,
new[] { AuditType.Publish },
sp.SqlContext.Query<IAuditItem>().Where(x => x.UserId > -1));
sp.SqlContext.Query<IAuditItem>().Where(x => x.UserId > -2));
Assert.AreEqual(10, page.Count());
Assert.AreEqual(100, total);
@@ -114,8 +117,8 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 100; i++)
{
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, 0));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, 0));
repo.Save(new AuditItem(i, $"Content {i} created", AuditType.New, -1));
repo.Save(new AuditItem(i, $"Content {i} published", AuditType.Publish, -1));
}
scope.Complete();
@@ -145,8 +148,8 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 100; i++)
{
repo.Save(new AuditItem(i, "Content created", AuditType.New, 0));
repo.Save(new AuditItem(i, "Content published", AuditType.Publish, 0));
repo.Save(new AuditItem(i, "Content created", AuditType.New, -1));
repo.Save(new AuditItem(i, "Content published", AuditType.Publish, -1));
}
scope.Complete();

View File

@@ -20,7 +20,7 @@ using Umbraco.Core.Persistence;
namespace Umbraco.Tests.Persistence.Repositories
{
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, WithApplication = true)]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, WithApplication = true, Logger = UmbracoTestOptions.Logger.Console)]
public class UserRepositoryTest : TestWithDatabaseBase
{
private MediaRepository CreateMediaRepository(IScopeProvider provider, out IMediaTypeRepository mediaTypeRepository)
@@ -52,14 +52,14 @@ namespace Umbraco.Tests.Persistence.Repositories
private UserRepository CreateRepository(IScopeProvider provider)
{
var accessor = (IScopeAccessor) provider;
var repository = new UserRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), Mock.Of<IMapperCollection>(), TestObjects.GetGlobalSettings());
var repository = new UserRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Mappers, TestObjects.GetGlobalSettings());
return repository;
}
private UserGroupRepository CreateUserGroupRepository(IScopeProvider provider)
{
var accessor = (IScopeAccessor) provider;
return new UserGroupRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
return new UserGroupRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Logger);
}
[Test]
@@ -396,7 +396,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var result = repository.GetPagedResultsByQuery(null, 0, 10, out var totalRecs, user => user.Id, Direction.Ascending,
includeUserGroups: new[] { Constants.Security.AdminGroupAlias, Constants.Security.SensitiveDataGroupAlias },
excludeUserGroups: new[] { Constants.Security.TranslatorGroupAlias },
filter: provider.SqlContext.Query<IUser>().Where(x => x.Id == 0));
filter: provider.SqlContext.Query<IUser>().Where(x => x.Id == -1));
// Assert
Assert.AreEqual(1, totalRecs);

View File

@@ -172,6 +172,11 @@ namespace Umbraco.Tests.Testing
Container.RegisterSingleton<ILogger>(f => new SerilogLogger(new FileInfo(TestHelper.MapPathForTest("~/unit-test.config"))));
Container.RegisterSingleton<IProfiler>(f => new LogProfiler(f.GetInstance<ILogger>()));
}
else if (option == UmbracoTestOptions.Logger.Console)
{
Container.RegisterSingleton<ILogger>(f => new ConsoleLogger());
Container.RegisterSingleton<IProfiler>(f => new LogProfiler(f.GetInstance<ILogger>()));
}
Container.RegisterSingleton(f => new ProfilingLogger(f.GetInstance<ILogger>(), f.GetInstance<IProfiler>()));
}

View File

@@ -7,7 +7,9 @@
// pure mocks
Mock,
// Serilog for tests
Serilog
Serilog,
// console logger
Console
}
public enum Database