Cleanup and fixed tests
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
|
||||
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
|
||||
@@ -25,8 +26,11 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repos
|
||||
[Test]
|
||||
public void GetDocumentVersionsEligibleForCleanup_Always_ExcludesActiveVersions()
|
||||
{
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
FileService.SaveTemplate(contentType.DefaultTemplate);
|
||||
Template template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentType);
|
||||
ContentTypeService.Save(contentType);
|
||||
|
||||
var content = ContentBuilder.CreateSimpleContent(contentType);
|
||||
@@ -53,8 +57,11 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repos
|
||||
[Test]
|
||||
public void GetDocumentVersionsEligibleForCleanup_Always_ExcludesPinnedVersions()
|
||||
{
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
FileService.SaveTemplate(contentType.DefaultTemplate);
|
||||
Template template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentType);
|
||||
ContentTypeService.Save(contentType);
|
||||
|
||||
var content = ContentBuilder.CreateSimpleContent(contentType);
|
||||
@@ -92,8 +99,10 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repos
|
||||
[Test]
|
||||
public void DeleteVersions_Always_DeletesSpecifiedVersions()
|
||||
{
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
FileService.SaveTemplate(contentType.DefaultTemplate);
|
||||
Template template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentType);
|
||||
|
||||
var content = ContentBuilder.CreateSimpleContent(contentType);
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
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.
|
||||
@@ -33,8 +34,10 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
// With 200K Versions
|
||||
// With 11M Property data
|
||||
|
||||
ContentType contentTypeA = ContentTypeBuilder.CreateSimpleContentType("contentTypeA", "contentTypeA");
|
||||
FileService.SaveTemplate(contentTypeA.DefaultTemplate);
|
||||
Template template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
ContentType contentTypeA = ContentTypeBuilder.CreateSimpleContentType("contentTypeA", "contentTypeA", defaultTemplateId: template.Id);
|
||||
ContentTypeService.Save(contentTypeA);
|
||||
|
||||
Content content = ContentBuilder.CreateSimpleContent(contentTypeA);
|
||||
@@ -53,7 +56,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
// Kill all historic
|
||||
InsertCleanupPolicy(contentTypeA, 0, 0);
|
||||
|
||||
((IContentVersionService)ContentService).PerformContentVersionCleanup(DateTime.Now.AddHours(1));
|
||||
ContentVersionService.PerformContentVersionCleanup(DateTime.Now.AddHours(1));
|
||||
|
||||
Report after = GetReport();
|
||||
|
||||
|
||||
@@ -19,15 +19,20 @@ namespace Umbraco.Tests.Scheduling
|
||||
{
|
||||
[Test, AutoMoqData]
|
||||
public async Task ContentVersionCleanup_WhenNotEnabled_DoesNotCleanupWillRepeat(
|
||||
[Frozen] Mock<IOptions<ContentSettings>> settings,
|
||||
[Frozen] Mock<IOptionsMonitor<ContentSettings>> settings,
|
||||
[Frozen] Mock<IMainDom> mainDom,
|
||||
[Frozen] Mock<IServerRoleAccessor> serverRoleAccessor,
|
||||
[Frozen] Mock<IRuntimeState> runtimeState,
|
||||
[Frozen] Mock<IContentVersionService> cleanupService,
|
||||
ContentVersionCleanup sut)
|
||||
{
|
||||
settings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(false);
|
||||
|
||||
settings.Setup(x => x.CurrentValue).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = false
|
||||
}
|
||||
});
|
||||
runtimeState.Setup(x => x.Level).Returns(RuntimeLevel.Run);
|
||||
mainDom.Setup(x => x.IsMainDom).Returns(true);
|
||||
serverRoleAccessor.Setup(x => x.CurrentServerRole).Returns(ServerRole.SchedulingPublisher);
|
||||
@@ -39,14 +44,20 @@ namespace Umbraco.Tests.Scheduling
|
||||
|
||||
[Test, AutoMoqData]
|
||||
public async Task ContentVersionCleanup_RuntimeLevelNotRun_DoesNotCleanupWillRepeat(
|
||||
[Frozen] Mock<IOptions<ContentSettings>> settings,
|
||||
[Frozen] Mock<IOptionsMonitor<ContentSettings>> settings,
|
||||
[Frozen] Mock<IMainDom> mainDom,
|
||||
[Frozen] Mock<IServerRoleAccessor> serverRoleAccessor,
|
||||
[Frozen] Mock<IRuntimeState> runtimeState,
|
||||
[Frozen] Mock<IContentVersionService> cleanupService,
|
||||
ContentVersionCleanup sut)
|
||||
{
|
||||
settings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
settings.Setup(x => x.CurrentValue).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true
|
||||
}
|
||||
});
|
||||
runtimeState.Setup(x => x.Level).Returns(RuntimeLevel.Unknown);
|
||||
mainDom.Setup(x => x.IsMainDom).Returns(true);
|
||||
serverRoleAccessor.Setup(x => x.CurrentServerRole).Returns(ServerRole.SchedulingPublisher);
|
||||
@@ -58,14 +69,20 @@ namespace Umbraco.Tests.Scheduling
|
||||
|
||||
[Test, AutoMoqData]
|
||||
public async Task ContentVersionCleanup_ServerRoleUnknown_DoesNotCleanupWillRepeat(
|
||||
[Frozen] Mock<IOptions<ContentSettings>> settings,
|
||||
[Frozen] Mock<IOptionsMonitor<ContentSettings>> settings,
|
||||
[Frozen] Mock<IMainDom> mainDom,
|
||||
[Frozen] Mock<IServerRoleAccessor> serverRoleAccessor,
|
||||
[Frozen] Mock<IRuntimeState> runtimeState,
|
||||
[Frozen] Mock<IContentVersionService> cleanupService,
|
||||
ContentVersionCleanup sut)
|
||||
{
|
||||
settings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
settings.Setup(x => x.CurrentValue).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true
|
||||
}
|
||||
});
|
||||
runtimeState.Setup(x => x.Level).Returns(RuntimeLevel.Run);
|
||||
mainDom.Setup(x => x.IsMainDom).Returns(true);
|
||||
serverRoleAccessor.Setup(x => x.CurrentServerRole).Returns(ServerRole.Unknown);
|
||||
@@ -77,14 +94,21 @@ namespace Umbraco.Tests.Scheduling
|
||||
|
||||
[Test, AutoMoqData]
|
||||
public async Task ContentVersionCleanup_NotMainDom_DoesNotCleanupWillNotRepeat(
|
||||
[Frozen] Mock<IOptions<ContentSettings>> settings,
|
||||
[Frozen] Mock<IOptionsMonitor<ContentSettings>> settings,
|
||||
[Frozen] Mock<IMainDom> mainDom,
|
||||
[Frozen] Mock<IServerRoleAccessor> serverRoleAccessor,
|
||||
[Frozen] Mock<IRuntimeState> runtimeState,
|
||||
[Frozen] Mock<IContentVersionService> cleanupService,
|
||||
ContentVersionCleanup sut)
|
||||
{
|
||||
settings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
settings.Setup(x => x.CurrentValue).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true
|
||||
}
|
||||
});
|
||||
|
||||
runtimeState.Setup(x => x.Level).Returns(RuntimeLevel.Run);
|
||||
mainDom.Setup(x => x.IsMainDom).Returns(false);
|
||||
serverRoleAccessor.Setup(x => x.CurrentServerRole).Returns(ServerRole.SchedulingPublisher);
|
||||
@@ -96,14 +120,21 @@ namespace Umbraco.Tests.Scheduling
|
||||
|
||||
[Test, AutoMoqData]
|
||||
public async Task ContentVersionCleanup_Enabled_DelegatesToCleanupService(
|
||||
[Frozen] Mock<IOptions<ContentSettings>> settings,
|
||||
[Frozen] Mock<IOptionsMonitor<ContentSettings>> settings,
|
||||
[Frozen] Mock<IMainDom> mainDom,
|
||||
[Frozen] Mock<IServerRoleAccessor> serverRoleAccessor,
|
||||
[Frozen] Mock<IRuntimeState> runtimeState,
|
||||
[Frozen] Mock<IContentVersionService> cleanupService,
|
||||
ContentVersionCleanup sut)
|
||||
{
|
||||
settings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
settings.Setup(x => x.CurrentValue).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true
|
||||
}
|
||||
});
|
||||
|
||||
runtimeState.Setup(x => x.Level).Returns(RuntimeLevel.Run);
|
||||
mainDom.Setup(x => x.IsMainDom).Returns(true);
|
||||
serverRoleAccessor.Setup(x => x.CurrentServerRole).Returns(ServerRole.SchedulingPublisher);
|
||||
|
||||
@@ -7,10 +7,10 @@ using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Persistence.Repositories;
|
||||
using Umbraco.Cms.Infrastructure.Services.Implement;
|
||||
using Umbraco.Cms.Tests.UnitTests.AutoFixture;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using ContentVersionCleanupPolicySettings = Umbraco.Core.Models.ContentVersionCleanupPolicySettings;
|
||||
using ContentVersionCleanupPolicySettings = Umbraco.Cms.Core.Models.ContentVersionCleanupPolicySettings;
|
||||
|
||||
namespace Umbraco.Tests.Services
|
||||
{
|
||||
@@ -31,9 +31,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: ++versionId, contentId: 1, contentTypeId: 1, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 0,
|
||||
KeepLatestVersionPerDayForDays = 0
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(Array.Empty<ContentVersionCleanupPolicySettings>());
|
||||
@@ -60,9 +66,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: ++versionId, contentId: 1, contentTypeId: 1, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(2);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(2);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 2,
|
||||
KeepLatestVersionPerDayForDays = 2
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(Array.Empty<ContentVersionCleanupPolicySettings>());
|
||||
@@ -96,9 +108,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: 9, contentId: 2, contentTypeId: 1, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(3);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 0,
|
||||
KeepLatestVersionPerDayForDays = 3
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(Array.Empty<ContentVersionCleanupPolicySettings>());
|
||||
@@ -134,9 +152,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: 6, contentId: 2, contentTypeId: 2, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 0,
|
||||
KeepLatestVersionPerDayForDays = 0
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(new ContentVersionCleanupPolicySettings[]
|
||||
@@ -169,9 +193,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: 6, contentId: 2, contentTypeId: 2, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 0,
|
||||
KeepLatestVersionPerDayForDays = 0
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(new ContentVersionCleanupPolicySettings[]
|
||||
@@ -204,9 +234,15 @@ namespace Umbraco.Tests.Services
|
||||
new HistoricContentVersionMeta(versionId: 6, contentId: 2, contentTypeId: 2, versionDate: DateTime.Today.AddHours(-1)),
|
||||
};
|
||||
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.EnableCleanup).Returns(true);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepAllVersionsNewerThanDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value.ContentVersionCleanupPolicy.KeepLatestVersionPerDayForDays).Returns(0);
|
||||
contentSettings.Setup(x => x.Value).Returns(new ContentSettings()
|
||||
{
|
||||
ContentVersionCleanupPolicy = new Cms.Core.Configuration.Models.ContentVersionCleanupPolicySettings()
|
||||
{
|
||||
EnableCleanup = true,
|
||||
KeepAllVersionsNewerThanDays = 0,
|
||||
KeepLatestVersionPerDayForDays = 0
|
||||
}
|
||||
});
|
||||
|
||||
documentVersionRepository.Setup(x => x.GetCleanupPolicies())
|
||||
.Returns(new ContentVersionCleanupPolicySettings[]
|
||||
|
||||
Reference in New Issue
Block a user