V10: fix build warnings in test projects (#12509)
* Run code cleanup * Dotnet format benchmarks project * Fix up Test.Common * Run dotnet format + manual cleanup * Run code cleanup for unit tests * Run dotnet format * Fix up errors * Manual cleanup of Unit test project * Update tests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Testing/TestDbMeta.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Benchmarks/TypeFinderBenchmarks.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Fix according to review * Fix after merge * Fix errors Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk> Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> Co-authored-by: Zeegaan <nge@umbraco.dk>
This commit is contained in:
@@ -2,121 +2,121 @@ using System;
|
||||
using System.Diagnostics;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Scoping;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
|
||||
using Umbraco.Cms.Tests.Common.Builders;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
using Umbraco.Cms.Tests.Integration.Testing;
|
||||
|
||||
using IScopeProvider = Umbraco.Cms.Infrastructure.Scoping.IScopeProvider;
|
||||
using IScope = Umbraco.Cms.Infrastructure.Scoping.IScope;
|
||||
namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services;
|
||||
|
||||
namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
internal class ContentVersionCleanupServiceTest : UmbracoIntegrationTest
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
internal class ContentVersionCleanupServiceTest : UmbracoIntegrationTest
|
||||
public IFileService FileService => GetRequiredService<IFileService>();
|
||||
|
||||
public IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
|
||||
public IContentService ContentService => GetRequiredService<IContentService>();
|
||||
|
||||
public IContentVersionService ContentVersionService => GetRequiredService<IContentVersionService>();
|
||||
|
||||
/// <remarks>
|
||||
/// This is covered by the unit tests, but nice to know it deletes on infra.
|
||||
/// And proves implementation is compatible with SQL CE.
|
||||
/// </remarks>
|
||||
[Test]
|
||||
public void PerformContentVersionCleanup_WithNoKeepPeriods_DeletesEverythingExceptActive()
|
||||
{
|
||||
public IFileService FileService => GetRequiredService<IFileService>();
|
||||
// For reference, Our currently has
|
||||
// 5000 Documents
|
||||
// With 200K Versions
|
||||
// With 11M Property data
|
||||
|
||||
public IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
public IContentService ContentService => GetRequiredService<IContentService>();
|
||||
var contentTypeA =
|
||||
ContentTypeBuilder.CreateSimpleContentType("contentTypeA", "contentTypeA", defaultTemplateId: template.Id);
|
||||
|
||||
public IContentVersionService ContentVersionService => GetRequiredService<IContentVersionService>();
|
||||
// Kill all historic
|
||||
contentTypeA.HistoryCleanup.PreventCleanup = false;
|
||||
contentTypeA.HistoryCleanup.KeepAllVersionsNewerThanDays = 0;
|
||||
contentTypeA.HistoryCleanup.KeepLatestVersionPerDayForDays = 0;
|
||||
|
||||
/// <remarks>
|
||||
/// This is covered by the unit tests, but nice to know it deletes on infra.
|
||||
/// And proves implementation is compatible with SQL CE.
|
||||
/// </remarks>
|
||||
[Test]
|
||||
public void PerformContentVersionCleanup_WithNoKeepPeriods_DeletesEverythingExceptActive()
|
||||
ContentTypeService.Save(contentTypeA);
|
||||
|
||||
var content = ContentBuilder.CreateSimpleContent(contentTypeA);
|
||||
ContentService.SaveAndPublish(content);
|
||||
|
||||
for (var i = 0; i < 10; i++)
|
||||
{
|
||||
// For reference, Our currently has
|
||||
// 5000 Documents
|
||||
// With 200K Versions
|
||||
// With 11M Property data
|
||||
|
||||
Template template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
ContentType contentTypeA = ContentTypeBuilder.CreateSimpleContentType("contentTypeA", "contentTypeA", defaultTemplateId: template.Id);
|
||||
|
||||
// Kill all historic
|
||||
contentTypeA.HistoryCleanup.PreventCleanup = false;
|
||||
contentTypeA.HistoryCleanup.KeepAllVersionsNewerThanDays = 0;
|
||||
contentTypeA.HistoryCleanup.KeepLatestVersionPerDayForDays = 0;
|
||||
|
||||
ContentTypeService.Save(contentTypeA);
|
||||
|
||||
Content content = ContentBuilder.CreateSimpleContent(contentTypeA);
|
||||
ContentService.SaveAndPublish(content);
|
||||
|
||||
for (var i = 0; i < 10; i++)
|
||||
{
|
||||
ContentService.SaveAndPublish(content);
|
||||
}
|
||||
|
||||
Report before = GetReport();
|
||||
|
||||
Debug.Assert(before.ContentVersions == 12); // 10 historic + current draft + current published
|
||||
Debug.Assert(before.PropertyData == 12 * 3); // CreateSimpleContentType = 3 props
|
||||
|
||||
ContentVersionService.PerformContentVersionCleanup(DateTime.Now.AddHours(1));
|
||||
|
||||
Report after = GetReport();
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.AreEqual(2, after.ContentVersions); // current draft, current published
|
||||
Assert.AreEqual(2, after.DocumentVersions);
|
||||
Assert.AreEqual(6, after.PropertyData); // CreateSimpleContentType = 3 props
|
||||
});
|
||||
}
|
||||
|
||||
private Report GetReport()
|
||||
var before = GetReport();
|
||||
|
||||
Debug.Assert(before.ContentVersions == 12); // 10 historic + current draft + current published
|
||||
Debug.Assert(before.PropertyData == 12 * 3); // CreateSimpleContentType = 3 props
|
||||
|
||||
ContentVersionService.PerformContentVersionCleanup(DateTime.Now.AddHours(1));
|
||||
|
||||
var after = GetReport();
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
using (IScope scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||
Assert.AreEqual(2, after.ContentVersions); // current draft, current published
|
||||
Assert.AreEqual(2, after.DocumentVersions);
|
||||
Assert.AreEqual(6, after.PropertyData); // CreateSimpleContentType = 3 props
|
||||
});
|
||||
}
|
||||
|
||||
private Report GetReport()
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||
{
|
||||
// SQL CE is fun!
|
||||
var contentVersions =
|
||||
ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoContentVersion");
|
||||
var documentVersions =
|
||||
ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoDocumentVersion");
|
||||
var propertyData =
|
||||
ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoPropertyData");
|
||||
|
||||
return new Report
|
||||
{
|
||||
// SQL CE is fun!
|
||||
var contentVersions = ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoContentVersion");
|
||||
var documentVersions = ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoDocumentVersion");
|
||||
var propertyData = ScopeAccessor.AmbientScope.Database.Single<int>(@"select count(1) from umbracoPropertyData");
|
||||
|
||||
return new Report
|
||||
{
|
||||
ContentVersions = contentVersions,
|
||||
DocumentVersions = documentVersions,
|
||||
PropertyData = propertyData
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private void InsertCleanupPolicy(IContentType contentType, int daysToKeepAll, int daysToRollupAll, bool preventCleanup = false)
|
||||
{
|
||||
using (IScope scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||
{
|
||||
var entity = new ContentVersionCleanupPolicyDto
|
||||
{
|
||||
ContentTypeId = contentType.Id,
|
||||
KeepAllVersionsNewerThanDays = daysToKeepAll,
|
||||
KeepLatestVersionPerDayForDays = daysToRollupAll,
|
||||
PreventCleanup = preventCleanup,
|
||||
Updated = DateTime.Today
|
||||
};
|
||||
|
||||
ScopeAccessor.AmbientScope.Database.Insert(entity);
|
||||
}
|
||||
}
|
||||
|
||||
private class Report
|
||||
{
|
||||
public int ContentVersions { get; set; }
|
||||
|
||||
public int DocumentVersions { get; set; }
|
||||
|
||||
public int PropertyData { get; set; }
|
||||
ContentVersions = contentVersions,
|
||||
DocumentVersions = documentVersions,
|
||||
PropertyData = propertyData
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private void InsertCleanupPolicy(IContentType contentType, int daysToKeepAll, int daysToRollupAll,
|
||||
bool preventCleanup = false)
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||
{
|
||||
var entity = new ContentVersionCleanupPolicyDto
|
||||
{
|
||||
ContentTypeId = contentType.Id,
|
||||
KeepAllVersionsNewerThanDays = daysToKeepAll,
|
||||
KeepLatestVersionPerDayForDays = daysToRollupAll,
|
||||
PreventCleanup = preventCleanup,
|
||||
Updated = DateTime.Today
|
||||
};
|
||||
|
||||
ScopeAccessor.AmbientScope.Database.Insert(entity);
|
||||
}
|
||||
}
|
||||
|
||||
private class Report
|
||||
{
|
||||
public int ContentVersions { get; set; }
|
||||
|
||||
public int DocumentVersions { get; set; }
|
||||
|
||||
public int PropertyData { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user