Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedMediaTests.cs
Mole 1258962429 V15: Remove Nucache (#17166)
* Remove nucache reference from Web.Common

* Get tests building-ish

* Move ReservedFieldNamesService to the right project

* Remove IPublishedSnapshotStatus

* Added functionality to the INavigationQueryService to get root keys

* Fixed issue with navigation

* Remove IPublishedSnapshot from UmbracoContext

* Begin removing usage of IPublishedSnapshot from PublishedContentExtensions

* Fix PublishedContentExtensions.cs

* Don't use snapshots in delivery media api

* Use IPublishedMediaCache in QueryMediaApiController

* Remove more usages of IPublishedSnapshotAccessor

* Comment out tests

* Remove more usages of PublishedSnapshotAccessor

* Remove PublishedSnapshot from property

* Fixed test build

* Fix errors

* Fix some tests

* Delete NuCache 🎉

* Implement DatabaseCacheRebuilder

* Remove usage of IPublishedSnapshotService

* Remove IPublishedSnapshotService

* Remove TestPublishedSnapshotAccessor and make tests build

* Don't test Snapshot cachelevel

It's no longer supported

* Fix BlockEditorConverter

Element != Element document type

* Remember to set cachemanager

* Fix RichTextParserTests

* Implement TryGetLevel on INavigationQueryService

* Fake level and obsolete it in PublishedContent

* Remove ChildrenForAllCultures

* Hack Path property on PublishedContent

* Remove usages of IPublishedSnapshot in tests

* More ConvertersTests

* Add hybrid cache to integration tests

We can actually do this now because we no longer save files on disk

* Rename IPublishedSnapshotRebuilder to ICacheRebuilder

* Comment out tests

* V15: Replacing the usages of Parent (navigation data) from IPublishedContent (#17125)

* Fix .Parent references in PublishedContentExtensions

* Add missing methods to FriendlyPublishedContentExtensions (ones that you were able to call on the content directly as they now require extra params)

* Fix references from the extension methods

* Fix dependencies in tests

* Replace IPublishedSnapshotAccessor with the content cache in tests

* Resolving more .Parent references

* Fix unit tests

* Obsolete and use extension methods

* Remove private method and use extension instead

* Moving code around

* Fix tests

* Fix more references

* Cleanup

* Fix more usages

* Resolve merge conflict

* Fix tests

* Cleanup

* Fix more tests

* Fixed unit tests

* Cleanup

* Replace last usages

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Remove usage of IPublishedSnapshotAccessor from IRequestItemProvider

* Post merge fixup

* Remo IPublishedSnapshot

* Add HasAny to IDocumentUrlService

* Fix TextBuilder

* Fix modelsbuilder tests

* Use explicit types

* Implement GetByContentType

* Support element types in PublishedContentTypeCache

* Run enlistments before publishing notifications

* Fix elements cache refreshing

* Implement GetByUdi

* Implement GetAtRoot

* Implement GetByRoute

* Reimplement GetRouteById

* Fix blocks unit tests

* Initialize domain cache on boot

* Only return routes with domains on non default lanauges

* V15: Replacing the usages of `Children` (navigation data) from `IPublishedContent` (#17159)

* Update params in PublishedContentExtensions to the general interfaces for the published cache and navigation service, so that we can use the extension methods on both documents and media

* Introduce GetParent() which uses the right services

* Fix obsolete message on .Parent

* Obsolete .Children

* Fix usages of Children for ApiMediaQueryService

* Fix usage in internal

* Fix usages in views

* Fix indentation

* Fix issue with delete language

* Update nuget pacakges

* Clear elements cache when content is deleted

instead of trying to update it

* Reset publishedModelFactory

* Fixed publishing

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: kjac <kja@umbraco.dk>
2024-10-01 15:03:02 +02:00

243 lines
9.2 KiB
C#

// using System.Collections.Generic;
// using System.Linq;
// using Moq;
// using NUnit.Framework;
// using Umbraco.Cms.Core.Models;
// using Umbraco.Cms.Core.PropertyEditors;
// using Umbraco.Cms.Core.Strings;
// using Umbraco.Cms.Infrastructure.PublishedCache;
// using Umbraco.Cms.Infrastructure.Serialization;
// using Umbraco.Cms.Tests.Common.Builders;
// using Umbraco.Cms.Tests.Common.Builders.Extensions;
// using Umbraco.Cms.Tests.UnitTests.TestHelpers;
// using Umbraco.Extensions;
//
// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.PublishedCache;
//
// FIXME: Reintroduce if relevant
// /// <summary>
// /// Tests the typed extension methods on IPublishedContent using the DefaultPublishedMediaStore
// /// </summary>
// [TestFixture]
// public class PublishedMediaTests : PublishedSnapshotServiceTestBase
// {
// [SetUp]
// public override void Setup()
// {
// base.Setup();
//
// var dataTypes = GetDefaultDataTypes().ToList();
// var serializer = new SystemTextConfigurationEditorJsonSerializer();
// var rteDataType = new DataType(new VoidEditor("RTE", Mock.Of<IDataValueEditorFactory>()), serializer) { Id = 4 };
// dataTypes.Add(rteDataType);
// _dataTypes = dataTypes.ToArray();
//
// _propertyDataTypes = new Dictionary<string, IDataType>
// {
// // defaults will just use the first one
// [string.Empty] = _dataTypes[0],
//
// // content uses the RTE
// ["content"] = _dataTypes[1],
// };
// }
//
// private Dictionary<string, IDataType> _propertyDataTypes;
// private DataType[] _dataTypes;
//
// private ContentNodeKit CreateRoot(out MediaType mediaType)
// {
// mediaType = new MediaType(ShortStringHelper, -1);
//
// var item1Data = new ContentDataBuilder()
// .WithName("Content 1")
// .WithProperties(new PropertyDataBuilder()
// .WithPropertyData("content", "<div>This is some content</div>")
// .Build())
//
// // build with a dynamically created media type
// .Build(ShortStringHelper, _propertyDataTypes, mediaType, "image2");
//
// var item1 = ContentNodeKitBuilder.CreateWithContent(
// mediaType.Id,
// 1,
// "-1,1",
// draftData: item1Data,
// publishedData: item1Data);
//
// return item1;
// }
//
// private IEnumerable<ContentNodeKit> CreateChildren(
// int startId,
// ContentNodeKit parent,
// IMediaType mediaType,
// int count)
// {
// for (var i = 0; i < count; i++)
// {
// var id = startId + i + 1;
//
// var item1Data = new ContentDataBuilder()
// .WithName("Child " + id)
// .WithProperties(new PropertyDataBuilder()
// .WithPropertyData("content", "<div>This is some content</div>")
// .Build())
// .Build();
//
// var parentPath = parent.Node.Path;
//
// var item1 = ContentNodeKitBuilder.CreateWithContent(
// mediaType.Id,
// id,
// $"{parentPath},{id}",
// draftData: item1Data,
// publishedData: item1Data);
//
// yield return item1;
// }
// }
//
// private void InitializeWithHierarchy(
// out int rootId,
// out IReadOnlyList<ContentNodeKit> firstLevelChildren,
// out IReadOnlyList<ContentNodeKit> secondLevelChildren)
// {
// var cache = new List<ContentNodeKit>();
// var root = CreateRoot(out var mediaType);
// firstLevelChildren = CreateChildren(10, root, mediaType, 3).ToList();
// secondLevelChildren = CreateChildren(20, firstLevelChildren[0], mediaType, 3).ToList();
// cache.Add(root);
// cache.AddRange(firstLevelChildren);
// cache.AddRange(secondLevelChildren);
// InitializedCache(null, null, _dataTypes, cache, new[] { mediaType });
// rootId = root.Node.Id;
// }
//
// [Test]
// public void Get_Property_Value_Uses_Converter()
// {
// var cache = CreateRoot(out var mediaType);
// InitializedCache(null, null, _dataTypes.ToArray(), new[] { cache }, new[] { mediaType });
//
// var publishedMedia = GetMedia(1);
//
// var propVal = publishedMedia.Value(PublishedValueFallback, "content");
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal);
// Assert.AreEqual("<div>This is some content</div>", propVal.ToString());
//
// var propVal2 = publishedMedia.Value<IHtmlEncodedString>(PublishedValueFallback, "content");
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal2);
// Assert.AreEqual("<div>This is some content</div>", propVal2.ToString());
//
// var propVal3 = publishedMedia.Value(PublishedValueFallback, "Content");
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal3);
// Assert.AreEqual("<div>This is some content</div>", propVal3.ToString());
// }
//
// [Test]
// public void Children()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedMedia = GetMedia(rootId);
//
// var rootChildren = publishedMedia.Children(VariationContextAccessor);
// Assert.IsTrue(rootChildren.Select(x => x.Id).ContainsAll(firstLevelChildren.Select(x => x.Node.Id)));
//
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
// var subChildren = publishedChild1.Children(VariationContextAccessor);
// Assert.IsTrue(subChildren.Select(x => x.Id).ContainsAll(secondLevelChildren.Select(x => x.Node.Id)));
// }
//
// [Test]
// public void Descendants()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedMedia = GetMedia(rootId);
// var rootDescendants = publishedMedia.Descendants(VariationContextAccessor);
//
// var descendentIds =
// firstLevelChildren.Select(x => x.Node.Id).Concat(secondLevelChildren.Select(x => x.Node.Id));
//
// Assert.IsTrue(rootDescendants.Select(x => x.Id).ContainsAll(descendentIds));
//
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
// var subDescendants = publishedChild1.Descendants(VariationContextAccessor);
// Assert.IsTrue(subDescendants.Select(x => x.Id).ContainsAll(secondLevelChildren.Select(x => x.Node.Id)));
// }
//
// [Test]
// public void DescendantsOrSelf()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedMedia = GetMedia(rootId);
// var rootDescendantsOrSelf = publishedMedia.DescendantsOrSelf(VariationContextAccessor);
// var descendentAndSelfIds = firstLevelChildren.Select(x => x.Node.Id)
// .Concat(secondLevelChildren.Select(x => x.Node.Id))
// .Append(rootId);
//
// Assert.IsTrue(rootDescendantsOrSelf.Select(x => x.Id).ContainsAll(descendentAndSelfIds));
//
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
// var subDescendantsOrSelf = publishedChild1.DescendantsOrSelf(VariationContextAccessor);
// Assert.IsTrue(subDescendantsOrSelf.Select(x => x.Id).ContainsAll(
// secondLevelChildren.Select(x => x.Node.Id).Append(firstLevelChildren[0].Node.Id)));
// }
//
// [Test]
// public void Parent()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedMedia = GetMedia(rootId);
// Assert.AreEqual(null, publishedMedia.Parent);
//
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
// Assert.AreEqual(publishedMedia.Id, publishedChild1.Parent.Id);
//
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
// Assert.AreEqual(firstLevelChildren[0].Node.Id, publishedSubChild1.Parent.Id);
// }
//
// [Test]
// public void Ancestors()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
// Assert.IsTrue(publishedSubChild1.Ancestors().Select(x => x.Id)
// .ContainsAll(new[] { firstLevelChildren[0].Node.Id, rootId }));
// }
//
// [Test]
// public void AncestorsOrSelf()
// {
// InitializeWithHierarchy(
// out var rootId,
// out var firstLevelChildren,
// out var secondLevelChildren);
//
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
// Assert.IsTrue(publishedSubChild1.AncestorsOrSelf().Select(x => x.Id)
// .ContainsAll(new[] { secondLevelChildren[0].Node.Id, firstLevelChildren[0].Node.Id, rootId }));
// }
// }