public void GetDocumentVersionsEligibleForCleanup_Always_ExcludesActiveVersions() { 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); ContentService.SaveAndPublish(content); // At this point content has 2 versions, a draft version and a published version. ContentService.SaveAndPublish(content); // At this point content has 3 versions, a historic version, a draft version and a published version. using (ScopeProvider.CreateScope()) { var sut = new DocumentVersionRepository(ScopeAccessor); var results = sut.GetDocumentVersionsEligibleForCleanup(); Assert.Multiple(() => { Assert.AreEqual(1, results.Count); Assert.AreEqual(1, results.First().VersionId); }); } }
public void DeleteVersions_Always_DeletesSpecifiedVersions() { var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); ServiceContext.ContentTypeService.Save(contentType); var content = MockedContent.CreateSimpleContent(contentType); ServiceContext.ContentService.SaveAndPublish(content); ServiceContext.ContentService.SaveAndPublish(content); ServiceContext.ContentService.SaveAndPublish(content); ServiceContext.ContentService.SaveAndPublish(content); var scopeProvider = TestObjects.GetScopeProvider(Logger); using (var scope = scopeProvider.CreateScope()) { var query = scope.SqlContext.Sql(); query.Select <ContentVersionDto>() .From <ContentVersionDto>(); var sut = new DocumentVersionRepository((IScopeAccessor)scopeProvider); sut.DeleteVersions(new [] { 1, 2, 3 }); var after = scope.Database.Fetch <ContentVersionDto>(query); Assert.Multiple(() => { Assert.AreEqual(2, after.Count); Assert.True(after.All(x => x.Id > 3)); }); } }
public void DeleteVersions_Always_DeletesSpecifiedVersions() { Template template = TemplateBuilder.CreateTextPageTemplate(); FileService.SaveTemplate(template); var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id); ContentTypeService.Save(contentType); var content = ContentBuilder.CreateSimpleContent(contentType); ContentService.SaveAndPublish(content); ContentService.SaveAndPublish(content); ContentService.SaveAndPublish(content); ContentService.SaveAndPublish(content); using (var scope = ScopeProvider.CreateScope()) { var query = scope.SqlContext.Sql(); query.Select <ContentVersionDto>() .From <ContentVersionDto>(); var sut = new DocumentVersionRepository(ScopeAccessor); sut.DeleteVersions(new [] { 1, 2, 3 }); var after = scope.Database.Fetch <ContentVersionDto>(query); Assert.Multiple(() => { Assert.AreEqual(2, after.Count); Assert.True(after.All(x => x.Id > 3)); }); } }
public void GetDocumentVersionsEligibleForCleanup_Always_ExcludesActiveVersions() { var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); ServiceContext.ContentTypeService.Save(contentType); var content = MockedContent.CreateSimpleContent(contentType); ServiceContext.ContentService.SaveAndPublish(content); // At this point content has 2 versions, a draft version and a published version. ServiceContext.ContentService.SaveAndPublish(content); // At this point content has 3 versions, a historic version, a draft version and a published version. var scopeProvider = TestObjects.GetScopeProvider(Logger); using (scopeProvider.CreateScope()) { var sut = new DocumentVersionRepository((IScopeAccessor)scopeProvider); var results = sut.GetDocumentVersionsEligibleForCleanup(); Assert.Multiple(() => { Assert.AreEqual(1, results.Count); Assert.AreEqual(1, results.First().VersionId); }); } }
public void GetPagedItemsByContentId_WithInvariantCultureContent_ReturnsPaginatedResults() { var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); ServiceContext.ContentTypeService.Save(contentType); var content = MockedContent.CreateSimpleContent(contentType); ServiceContext.ContentService.SaveAndPublish(content); // Draft + Published ServiceContext.ContentService.SaveAndPublish(content); // New Draft var scopeProvider = TestObjects.GetScopeProvider(Logger); using (scopeProvider.CreateScope()) { var sut = new DocumentVersionRepository((IScopeAccessor)scopeProvider); var page1 = sut.GetPagedItemsByContentId(content.Id, 0, 2, out var page1Total); var page2 = sut.GetPagedItemsByContentId(content.Id, 1, 2, out var page2Total); Assert.Multiple(() => { Assert.AreEqual(2, page1.Count()); Assert.AreEqual(3, page1Total); Assert.AreEqual(1, page2.Count()); Assert.AreEqual(3, page2Total); }); } }
public void GetPagedItemsByContentId_WithInvariantCultureContent_ReturnsPaginatedResults() { var template = TemplateBuilder.CreateTextPageTemplate(); FileService.SaveTemplate(template); var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id); ContentTypeService.Save(contentType); var content = ContentBuilder.CreateSimpleContent(contentType); ContentService.SaveAndPublish(content); // Draft + Published ContentService.SaveAndPublish(content); // New Draft using (ScopeProvider.CreateScope()) { var sut = new DocumentVersionRepository((IScopeAccessor)ScopeProvider); var page1 = sut.GetPagedItemsByContentId(content.Id, 0, 2, out var page1Total); var page2 = sut.GetPagedItemsByContentId(content.Id, 1, 2, out var page2Total); Assert.Multiple(() => { Assert.AreEqual(2, page1.Count()); Assert.AreEqual(3, page1Total); Assert.AreEqual(1, page2.Count()); Assert.AreEqual(3, page2Total); }); } }
public void GetDocumentVersionsEligibleForCleanup_Always_ExcludesPinnedVersions() { var 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); ContentService.SaveAndPublish(content); // At this point content has 2 versions, a draft version and a published version. ContentService.SaveAndPublish(content); ContentService.SaveAndPublish(content); ContentService.SaveAndPublish(content); // At this point content has 5 versions, 3 historic versions, a draft version and a published version. var allVersions = ContentService.GetVersions(content.Id); Debug.Assert(allVersions.Count() == 5); // Sanity check using (var scope = ScopeProvider.CreateScope()) { ScopeAccessor.AmbientScope.Database.Update <ContentVersionDto>("set preventCleanup = 1 where id in (1,3)"); var sut = new DocumentVersionRepository(ScopeAccessor); var results = sut.GetDocumentVersionsEligibleForCleanup(); Assert.Multiple(() => { Assert.AreEqual(1, results.Count); // We pinned 1 & 3 // 4 is current // 5 is published // So all that is left is 2 Assert.AreEqual(2, results.First().VersionId); }); } }
public void GetPagedItemsByContentId_WithVariantCultureContent_ReturnsPaginatedResults() { Template template = TemplateBuilder.CreateTextPageTemplate(); FileService.SaveTemplate(template); var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id); contentType.Variations = ContentVariation.Culture; foreach (var propertyType in contentType.PropertyTypes) { propertyType.Variations = ContentVariation.Culture; } FileService.SaveTemplate(contentType.DefaultTemplate); ContentTypeService.Save(contentType); var content = ContentBuilder.CreateSimpleContent(contentType, "foo", culture: "en-US"); content.SetCultureName("foo", "en-US"); ContentService.SaveAndPublish(content, "en-US"); // Draft + Published ContentService.SaveAndPublish(content, "en-US"); // New Draft using (ScopeProvider.CreateScope()) { var sut = new DocumentVersionRepository((IScopeAccessor)ScopeProvider); var page1 = sut.GetPagedItemsByContentId(content.Id, 0, 2, out var page1Total, 1); var page2 = sut.GetPagedItemsByContentId(content.Id, 1, 2, out var page2Total, 1); Assert.Multiple(() => { Assert.AreEqual(2, page1.Count()); Assert.AreEqual(3, page1Total); Assert.AreEqual(1, page2.Count()); Assert.AreEqual(3, page2Total); }); } }