* starts cleaning up old test project, removing ones we'll never convert, moves new test to where it should be. * Makes ContentNodeKit immutable properties, moves first nucache tests over * Gets the Nucache unit tests working and refactors a bit to use builder pattern for models. * Migrates first xml based cache test to use nucache. * Migrates a bunch more * Migrates remaining tests for PublishedContentTests * Moves PublishedRouterTests * Moves PublishedContentExtensionTests * Moves more tests. * committing wip * committing wip * Gets PublishedContentLanguageVariantTests converted and working. * Fixes DataTable ext method and moves PublishedContentDataTableTests * Moves PublishedMediaTests * wip - moving EntityXmlSerializerTests * Moves more tests * moves more tests * moves more tests * Move another test * Moves more tests * Fix test * move another test * Moves more tests * Moves more tests * Moves more tests * wip before merge * More tests * More tests * More tests * More tests * More tests * More tests * Cleanup and moving classes. * Remove unused code * Fixed failing tests, due to new null checks, that did not exist in v8 * Avoid breaking changes * Unbreak more things, even that it the old solution was crazy.. * Fixed bug where ordering of stream readings was changed.. * cleanup Co-authored-by: Bjarke Berg <mail@bergmania.dk>
96 lines
4.8 KiB
C#
96 lines
4.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Umbraco.Cms.Core.Models;
|
|
using Umbraco.Cms.Core.Models.PublishedContent;
|
|
using Umbraco.Cms.Infrastructure.PublishedCache;
|
|
using Umbraco.Cms.Infrastructure.PublishedCache.Persistence;
|
|
|
|
namespace Umbraco.Cms.Tests.UnitTests.TestHelpers
|
|
{
|
|
public class TestNuCacheContentService : INuCacheContentService
|
|
{
|
|
private IPublishedModelFactory PublishedModelFactory { get; } = new NoopPublishedModelFactory();
|
|
|
|
public TestNuCacheContentService(params ContentNodeKit[] kits)
|
|
: this((IEnumerable<ContentNodeKit>)kits)
|
|
{ }
|
|
|
|
public TestNuCacheContentService(IEnumerable<ContentNodeKit> contentKits, IEnumerable<ContentNodeKit> mediaKits = null)
|
|
{
|
|
ContentKits = contentKits?.ToDictionary(x => x.Node.Id, x => x) ?? new Dictionary<int, ContentNodeKit>();
|
|
MediaKits = mediaKits?.ToDictionary(x => x.Node.Id, x => x) ?? new Dictionary<int, ContentNodeKit>();
|
|
}
|
|
|
|
public Dictionary<int, ContentNodeKit> ContentKits { get; }
|
|
public Dictionary<int, ContentNodeKit> MediaKits { get; }
|
|
|
|
// note: it is important to clone the returned kits, as the inner
|
|
// ContentNode is directly reused and modified by the snapshot service
|
|
public ContentNodeKit GetContentSource(int id)
|
|
=> ContentKits.TryGetValue(id, out ContentNodeKit kit) ? kit.Clone(PublishedModelFactory) : default;
|
|
|
|
public IEnumerable<ContentNodeKit> GetAllContentSources()
|
|
=> ContentKits.Values
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public IEnumerable<ContentNodeKit> GetBranchContentSources(int id)
|
|
=> ContentKits.Values
|
|
.Where(x => x.Node.Path.EndsWith("," + id) || x.Node.Path.Contains("," + id + ","))
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public IEnumerable<ContentNodeKit> GetTypeContentSources(IEnumerable<int> ids)
|
|
=> ContentKits.Values
|
|
.Where(x => ids.Contains(x.ContentTypeId))
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public ContentNodeKit GetMediaSource(int id)
|
|
=> MediaKits.TryGetValue(id, out ContentNodeKit kit) ? kit.Clone(PublishedModelFactory) : default;
|
|
|
|
public IEnumerable<ContentNodeKit> GetAllMediaSources()
|
|
=> MediaKits.Values
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public IEnumerable<ContentNodeKit> GetBranchMediaSources(int id)
|
|
=> MediaKits.Values
|
|
.Where(x => x.Node.Path.EndsWith("," + id) || x.Node.Path.Contains("," + id + ","))
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public IEnumerable<ContentNodeKit> GetTypeMediaSources(IEnumerable<int> ids)
|
|
=> MediaKits.Values
|
|
.Where(x => ids.Contains(x.ContentTypeId))
|
|
.OrderBy(x => x.Node.Level)
|
|
.ThenBy(x => x.Node.ParentContentId)
|
|
.ThenBy(x => x.Node.SortOrder)
|
|
.Select(x => x.Clone(PublishedModelFactory));
|
|
|
|
public void DeleteContentItem(IContentBase item) => throw new NotImplementedException();
|
|
public void DeleteContentItems(IEnumerable<IContentBase> items) => throw new NotImplementedException();
|
|
public void RefreshContent(IContent content) => throw new NotImplementedException();
|
|
|
|
public void RebuildDatabaseCacheIfSerializerChanged() => throw new NotImplementedException();
|
|
public void RefreshMedia(IMedia media) => throw new NotImplementedException();
|
|
public void RefreshMember(IMember member) => throw new NotImplementedException();
|
|
public void Rebuild(IReadOnlyCollection<int> contentTypeIds = null, IReadOnlyCollection<int> mediaTypeIds = null, IReadOnlyCollection<int> memberTypeIds = null) => throw new NotImplementedException();
|
|
|
|
public bool VerifyContentDbCache() => throw new NotImplementedException();
|
|
public bool VerifyMediaDbCache() => throw new NotImplementedException();
|
|
public bool VerifyMemberDbCache() => throw new NotImplementedException();
|
|
}
|
|
}
|