2017-07-20 11:21:28 +02:00
|
|
|
|
using System;
|
2018-03-28 12:46:34 +11:00
|
|
|
|
using System.Collections;
|
2015-04-10 10:36:21 +10:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Xml;
|
|
|
|
|
|
using Examine;
|
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
using Umbraco.Core;
|
2016-05-26 18:48:35 +02:00
|
|
|
|
using Umbraco.Core.Cache;
|
2015-04-10 10:36:21 +10:00
|
|
|
|
using Umbraco.Core.Models.PublishedContent;
|
2015-05-05 18:24:31 +10:00
|
|
|
|
using Umbraco.Core.Strings;
|
2015-04-10 10:36:21 +10:00
|
|
|
|
using Umbraco.Tests.TestHelpers;
|
|
|
|
|
|
using Umbraco.Web.PublishedCache.XmlPublishedCache;
|
2016-12-16 10:40:14 +01:00
|
|
|
|
using Umbraco.Tests.Testing;
|
2017-05-30 18:13:11 +02:00
|
|
|
|
using Current = Umbraco.Web.Composing.Current;
|
2017-05-22 17:22:10 +02:00
|
|
|
|
using LightInject;
|
2017-06-20 12:12:29 +02:00
|
|
|
|
using Umbraco.Core.Models;
|
|
|
|
|
|
using Umbraco.Core.Models.Membership;
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Tests.Cache.PublishedCache
|
|
|
|
|
|
{
|
2017-07-20 11:21:28 +02:00
|
|
|
|
[TestFixture]
|
2016-11-05 19:23:55 +01:00
|
|
|
|
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
2015-04-10 10:36:21 +10:00
|
|
|
|
public class PublishMediaCacheTests : BaseWebTest
|
2017-07-20 11:21:28 +02:00
|
|
|
|
{
|
2016-11-07 20:50:14 +01:00
|
|
|
|
protected override void Compose()
|
2015-04-10 10:36:21 +10:00
|
|
|
|
{
|
2016-11-07 20:50:14 +01:00
|
|
|
|
base.Compose();
|
|
|
|
|
|
|
2016-11-08 17:38:05 +01:00
|
|
|
|
Container.GetInstance<UrlSegmentProviderCollectionBuilder>()
|
|
|
|
|
|
.Clear()
|
2016-08-13 16:23:17 +02:00
|
|
|
|
.Append<DefaultUrlSegmentProvider>();
|
2015-04-10 10:36:21 +10:00
|
|
|
|
}
|
2016-07-29 10:58:57 +02:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
private IMediaType MakeNewMediaType(IUser user, string text, int parentId = -1)
|
|
|
|
|
|
{
|
|
|
|
|
|
var mt = new MediaType(parentId) { Name = text, Alias = text, Thumbnail = "icon-folder", Icon = "icon-folder" };
|
2017-06-20 12:12:29 +02:00
|
|
|
|
ServiceContext.MediaTypeService.Save(mt);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
return mt;
|
|
|
|
|
|
}
|
2017-06-20 12:12:29 +02:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
private IMedia MakeNewMedia(string name, IMediaType mediaType, IUser user, int parentId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var m = ServiceContext.MediaService.CreateMediaWithIdentity(name, parentId, mediaType.Alias);
|
|
|
|
|
|
return m;
|
|
|
|
|
|
}
|
2017-06-20 12:12:29 +02:00
|
|
|
|
|
2015-05-05 18:24:31 +10:00
|
|
|
|
//NOTE: This is "Without_Examine" too
|
2015-04-10 10:36:21 +10:00
|
|
|
|
[Test]
|
2017-07-20 11:21:28 +02:00
|
|
|
|
public void Get_Root_Docs()
|
|
|
|
|
|
{
|
2016-03-16 17:52:08 +01:00
|
|
|
|
var user = ServiceContext.UserService.GetUserById(0);
|
2017-06-20 12:12:29 +02:00
|
|
|
|
var mType = MakeNewMediaType(user, "TestMediaType");
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var mRoot1 = MakeNewMedia("MediaRoot1", mType, user, -1);
|
|
|
|
|
|
var mRoot2 = MakeNewMedia("MediaRoot2", mType, user, -1);
|
|
|
|
|
|
var mChild1 = MakeNewMedia("Child1", mType, user, mRoot1.Id);
|
|
|
|
|
|
var mChild2 = MakeNewMedia("Child2", mType, user, mRoot2.Id);
|
2016-07-29 10:58:57 +02:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var ctx = GetUmbracoContext("/test");
|
2017-12-15 11:19:03 +01:00
|
|
|
|
var cache = new PublishedMediaCache(new XmlStore((XmlDocument) null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var roots = cache.GetAtRoot();
|
|
|
|
|
|
Assert.AreEqual(2, roots.Count());
|
|
|
|
|
|
Assert.IsTrue(roots.Select(x => x.Id).ContainsAll(new[] {mRoot1.Id, mRoot2.Id}));
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
}
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
[Test]
|
|
|
|
|
|
public void Get_Item_Without_Examine()
|
|
|
|
|
|
{
|
2016-03-16 17:52:08 +01:00
|
|
|
|
var user = ServiceContext.UserService.GetUserById(0);
|
2017-06-20 12:12:29 +02:00
|
|
|
|
var mType = MakeNewMediaType(user, "TestMediaType");
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var mRoot = MakeNewMedia("MediaRoot", mType, user, -1);
|
|
|
|
|
|
var mChild1 = MakeNewMedia("Child1", mType, user, mRoot.Id);
|
2016-05-26 18:48:35 +02:00
|
|
|
|
|
|
|
|
|
|
//var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234));
|
2016-10-11 18:52:01 +02:00
|
|
|
|
var umbracoContext = GetUmbracoContext("/test");
|
2017-12-15 11:19:03 +01:00
|
|
|
|
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
|
2016-05-26 18:48:35 +02:00
|
|
|
|
var publishedMedia = cache.GetById(mRoot.Id);
|
|
|
|
|
|
Assert.IsNotNull(publishedMedia);
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
Assert.AreEqual(mRoot.Id, publishedMedia.Id);
|
|
|
|
|
|
Assert.AreEqual(mRoot.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"), publishedMedia.CreateDate.ToString("dd/MM/yyyy HH:mm:ss"));
|
|
|
|
|
|
Assert.AreEqual(mRoot.CreatorId, publishedMedia.CreatorId);
|
|
|
|
|
|
//Assert.AreEqual(mRoot.User.Name, publishedMedia.CreatorName);
|
|
|
|
|
|
Assert.AreEqual(mRoot.ContentType.Alias, publishedMedia.DocumentTypeAlias);
|
|
|
|
|
|
Assert.AreEqual(mRoot.ContentType.Id, publishedMedia.DocumentTypeId);
|
|
|
|
|
|
Assert.AreEqual(mRoot.Level, publishedMedia.Level);
|
|
|
|
|
|
Assert.AreEqual(mRoot.Name, publishedMedia.Name);
|
|
|
|
|
|
Assert.AreEqual(mRoot.Path, publishedMedia.Path);
|
|
|
|
|
|
Assert.AreEqual(mRoot.SortOrder, publishedMedia.SortOrder);
|
|
|
|
|
|
Assert.IsNull(publishedMedia.Parent);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestCase("id")]
|
|
|
|
|
|
[TestCase("nodeId")]
|
|
|
|
|
|
[TestCase("__NodeId")]
|
|
|
|
|
|
public void DictionaryDocument_Id_Keys(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(idKey: key);
|
|
|
|
|
|
DoAssert(dicDoc);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestCase("template")]
|
|
|
|
|
|
[TestCase("templateId")]
|
|
|
|
|
|
public void DictionaryDocument_Template_Keys(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(templateKey: key);
|
|
|
|
|
|
DoAssert(dicDoc);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestCase("nodeName")]
|
|
|
|
|
|
[TestCase("__nodeName")]
|
|
|
|
|
|
public void DictionaryDocument_NodeName_Keys(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(nodeNameKey: key);
|
|
|
|
|
|
DoAssert(dicDoc);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestCase("nodeTypeAlias")]
|
|
|
|
|
|
[TestCase("__NodeTypeAlias")]
|
|
|
|
|
|
public void DictionaryDocument_NodeTypeAlias_Keys(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(nodeTypeAliasKey: key);
|
|
|
|
|
|
DoAssert(dicDoc);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestCase("path")]
|
|
|
|
|
|
[TestCase("__Path")]
|
|
|
|
|
|
public void DictionaryDocument_Path_Keys(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(pathKey: key);
|
|
|
|
|
|
DoAssert(dicDoc);
|
|
|
|
|
|
}
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2015-09-01 16:11:26 +02:00
|
|
|
|
[Test]
|
|
|
|
|
|
public void DictionaryDocument_Key()
|
|
|
|
|
|
{
|
|
|
|
|
|
var key = Guid.NewGuid();
|
|
|
|
|
|
var dicDoc = GetDictionaryDocument(keyVal: key);
|
|
|
|
|
|
DoAssert(dicDoc, keyVal: key);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
[Test]
|
|
|
|
|
|
public void DictionaryDocument_Get_Children()
|
|
|
|
|
|
{
|
|
|
|
|
|
var child1 = GetDictionaryDocument(idVal: 222333);
|
|
|
|
|
|
var child2 = GetDictionaryDocument(idVal: 444555);
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var dicDoc = GetDictionaryDocument(children: new List<IPublishedContent>()
|
|
|
|
|
|
{
|
|
|
|
|
|
child1, child2
|
|
|
|
|
|
});
|
2016-07-29 10:58:57 +02:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
Assert.AreEqual(2, dicDoc.Children.Count());
|
|
|
|
|
|
Assert.AreEqual(222333, dicDoc.Children.ElementAt(0).Id);
|
|
|
|
|
|
Assert.AreEqual(444555, dicDoc.Children.ElementAt(1).Id);
|
|
|
|
|
|
}
|
2016-07-29 10:58:57 +02:00
|
|
|
|
|
2016-04-28 22:12:55 +02:00
|
|
|
|
[Test]
|
|
|
|
|
|
public void Convert_From_Search_Result()
|
2017-07-20 11:21:28 +02:00
|
|
|
|
{
|
2016-10-11 18:52:01 +02:00
|
|
|
|
var ctx = GetUmbracoContext("/test");
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var key = Guid.NewGuid();
|
|
|
|
|
|
|
2018-03-27 18:14:21 +11:00
|
|
|
|
var fields = new Dictionary<string, string>
|
|
|
|
|
|
{
|
|
|
|
|
|
{"__IndexType", "media"},
|
|
|
|
|
|
{"__NodeId", "1234"},
|
|
|
|
|
|
{"__NodeTypeAlias", Constants.Conventions.MediaTypes.Image},
|
|
|
|
|
|
{"__Path", "-1,1234"},
|
|
|
|
|
|
{"__nodeName", "Test"},
|
|
|
|
|
|
{"id", "1234"},
|
|
|
|
|
|
{"key", key.ToString()},
|
|
|
|
|
|
{"urlName", "/media/test.jpg"},
|
|
|
|
|
|
{"nodeType", "0"},
|
|
|
|
|
|
{"sortOrder", "0"},
|
|
|
|
|
|
{"level", "2"},
|
|
|
|
|
|
{"nodeName", "Test"},
|
|
|
|
|
|
{"nodeTypeAlias", Constants.Conventions.MediaTypes.Image},
|
|
|
|
|
|
{"parentID", "-1"},
|
|
|
|
|
|
{"path", "-1,1234"},
|
|
|
|
|
|
{"updateDate", DateTime.Parse("2012-07-16T10:34:09").Ticks.ToString()},
|
|
|
|
|
|
{"createDate", DateTime.Parse("2012-07-17T10:34:09").Ticks.ToString()},
|
|
|
|
|
|
{"creatorID", "0"},
|
|
|
|
|
|
{"creatorName", "Shannon"}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2018-03-28 12:46:34 +11:00
|
|
|
|
var result = new SearchResult("1234", 1, 1, () => fields.ToDictionary(x => x.Key, x => new List<string> { x.Value }));
|
2018-03-27 18:14:21 +11:00
|
|
|
|
|
2017-12-15 11:19:03 +01:00
|
|
|
|
var store = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var doc = store.CreateFromCacheValues(store.ConvertFromSearchResult(result));
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
DoAssert(doc, 1234, key, 0, 0, "/media/test.jpg", "Image", 0, "Shannon", "Shannon", 0, 0, "-1,1234", DateTime.Parse("2012-07-17T10:34:09"), DateTime.Parse("2012-07-16T10:34:09"), 2);
|
|
|
|
|
|
Assert.AreEqual(null, doc.Parent);
|
|
|
|
|
|
}
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2016-04-28 22:12:55 +02:00
|
|
|
|
[Test]
|
|
|
|
|
|
public void Convert_From_XPath_Navigator()
|
2017-07-20 11:21:28 +02:00
|
|
|
|
{
|
2016-10-11 18:52:01 +02:00
|
|
|
|
var ctx = GetUmbracoContext("/test");
|
2015-09-01 16:11:26 +02:00
|
|
|
|
var key = Guid.NewGuid();
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var xmlDoc = GetMediaXml();
|
2016-04-28 22:12:55 +02:00
|
|
|
|
((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString());
|
|
|
|
|
|
var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
|
2017-12-15 11:19:03 +01:00
|
|
|
|
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var doc = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true));
|
|
|
|
|
|
|
|
|
|
|
|
DoAssert(doc, 2000, key, 0, 2, "image1", "Image", 2044, "Shannon", "Shannon", 33, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
|
|
|
|
|
|
Assert.AreEqual(null, doc.Parent);
|
|
|
|
|
|
Assert.AreEqual(2, doc.Children.Count());
|
|
|
|
|
|
Assert.AreEqual(2001, doc.Children.ElementAt(0).Id);
|
|
|
|
|
|
Assert.AreEqual(2002, doc.Children.ElementAt(1).Id);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private XmlDocument GetMediaXml()
|
|
|
|
|
|
{
|
|
|
|
|
|
var xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
|
2016-07-29 10:58:57 +02:00
|
|
|
|
<!DOCTYPE root[
|
2015-04-10 10:36:21 +10:00
|
|
|
|
<!ELEMENT Home ANY>
|
|
|
|
|
|
<!ATTLIST Home id ID #REQUIRED>
|
|
|
|
|
|
<!ELEMENT CustomDocument ANY>
|
|
|
|
|
|
<!ATTLIST CustomDocument id ID #REQUIRED>
|
|
|
|
|
|
]>
|
|
|
|
|
|
<root id=""-1"">
|
2017-07-20 11:21:28 +02:00
|
|
|
|
<Image id=""2000"" parentID=""-1"" level=""1"" writerID=""33"" creatorID=""33"" nodeType=""2044"" template=""0"" sortOrder=""2"" createDate=""2012-06-12T14:13:17"" updateDate=""2012-07-20T18:50:43"" nodeName=""Image1"" urlName=""image1"" writerName=""Shannon"" creatorName=""Shannon"" path=""-1,2000"" isDoc="""">
|
|
|
|
|
|
<file><![CDATA[/media/1234/image1.png]]></file>
|
|
|
|
|
|
<Image id=""2001"" parentID=""2000"" level=""2"" writerID=""33"" creatorID=""33"" nodeType=""2044"" template=""0"" sortOrder=""2"" createDate=""2012-06-12T14:13:17"" updateDate=""2012-07-20T18:50:43"" nodeName=""Image1"" urlName=""image1"" writerName=""Shannon"" creatorName=""Shannon"" path=""-1,2000,2001"" isDoc="""">
|
|
|
|
|
|
<file><![CDATA[/media/1234/image1.png]]></file>
|
|
|
|
|
|
</Image>
|
|
|
|
|
|
<Image id=""2002"" parentID=""2000"" level=""2"" writerID=""33"" creatorID=""33"" nodeType=""2044"" template=""0"" sortOrder=""2"" createDate=""2012-06-12T14:13:17"" updateDate=""2012-07-20T18:50:43"" nodeName=""Image1"" urlName=""image1"" writerName=""Shannon"" creatorName=""Shannon"" path=""-1,2000,2002"" isDoc="""">
|
|
|
|
|
|
<file><![CDATA[/media/1234/image1.png]]></file>
|
|
|
|
|
|
</Image>
|
|
|
|
|
|
</Image>
|
2015-04-10 10:36:21 +10:00
|
|
|
|
</root>";
|
|
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
var xmlDoc = new XmlDocument();
|
|
|
|
|
|
xmlDoc.LoadXml(xml);
|
|
|
|
|
|
return xmlDoc;
|
|
|
|
|
|
}
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
private Dictionary<string, string> GetDictionary(
|
|
|
|
|
|
int id,
|
2015-09-01 16:11:26 +02:00
|
|
|
|
Guid key,
|
2017-07-20 11:21:28 +02:00
|
|
|
|
int parentId,
|
|
|
|
|
|
string idKey,
|
|
|
|
|
|
string templateKey,
|
|
|
|
|
|
string nodeNameKey,
|
|
|
|
|
|
string nodeTypeAliasKey,
|
|
|
|
|
|
string pathKey)
|
|
|
|
|
|
{
|
|
|
|
|
|
return new Dictionary<string, string>()
|
|
|
|
|
|
{
|
|
|
|
|
|
{idKey, id.ToString()},
|
2015-09-01 16:11:26 +02:00
|
|
|
|
{"key", key.ToString()},
|
2017-07-20 11:21:28 +02:00
|
|
|
|
{templateKey, "0"},
|
|
|
|
|
|
{"sortOrder", "44"},
|
|
|
|
|
|
{nodeNameKey, "Testing"},
|
|
|
|
|
|
{"urlName", "testing"},
|
|
|
|
|
|
{nodeTypeAliasKey, "myType"},
|
|
|
|
|
|
{"nodeType", "22"},
|
|
|
|
|
|
{"writerName", "Shannon"},
|
|
|
|
|
|
{"creatorName", "Shannon"},
|
|
|
|
|
|
{"writerID", "33"},
|
|
|
|
|
|
{"creatorID", "33"},
|
|
|
|
|
|
{pathKey, "1,2,3,4,5"},
|
|
|
|
|
|
{"createDate", "2012-01-02"},
|
|
|
|
|
|
{"updateDate", "2012-01-02"},
|
|
|
|
|
|
{"level", "3"},
|
|
|
|
|
|
{"parentID", parentId.ToString()}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private PublishedMediaCache.DictionaryPublishedContent GetDictionaryDocument(
|
|
|
|
|
|
string idKey = "id",
|
|
|
|
|
|
string templateKey = "template",
|
|
|
|
|
|
string nodeNameKey = "nodeName",
|
|
|
|
|
|
string nodeTypeAliasKey = "nodeTypeAlias",
|
|
|
|
|
|
string pathKey = "path",
|
|
|
|
|
|
int idVal = 1234,
|
2015-09-01 16:11:26 +02:00
|
|
|
|
Guid keyVal = default(Guid),
|
2017-07-20 11:21:28 +02:00
|
|
|
|
int parentIdVal = 321,
|
|
|
|
|
|
IEnumerable<IPublishedContent> children = null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (children == null)
|
|
|
|
|
|
children = new List<IPublishedContent>();
|
2015-04-10 10:36:21 +10:00
|
|
|
|
var dicDoc = new PublishedMediaCache.DictionaryPublishedContent(
|
2016-05-26 18:48:35 +02:00
|
|
|
|
//the dictionary
|
|
|
|
|
|
GetDictionary(idVal, keyVal, parentIdVal, idKey, templateKey, nodeNameKey, nodeTypeAliasKey, pathKey),
|
|
|
|
|
|
//callback to get the parent
|
|
|
|
|
|
d => new PublishedMediaCache.DictionaryPublishedContent(
|
|
|
|
|
|
// the dictionary
|
|
|
|
|
|
GetDictionary(parentIdVal, default(Guid), -1, idKey, templateKey, nodeNameKey, nodeTypeAliasKey, pathKey),
|
|
|
|
|
|
// callback to get the parent: there is no parent
|
|
|
|
|
|
a => null,
|
|
|
|
|
|
// callback to get the children: we're not going to test this so ignore
|
|
|
|
|
|
(dd, n) => new List<IPublishedContent>(),
|
|
|
|
|
|
// callback to get a property
|
2018-01-10 12:48:51 +01:00
|
|
|
|
(dd, a) => dd.Properties.FirstOrDefault(x => x.Alias.InvariantEquals(a)),
|
2016-05-26 18:48:35 +02:00
|
|
|
|
null, // cache provider
|
|
|
|
|
|
ContentTypesCache,
|
|
|
|
|
|
// no xpath
|
2015-06-18 15:36:04 +02:00
|
|
|
|
null,
|
2016-05-26 18:48:35 +02:00
|
|
|
|
// not from examine
|
|
|
|
|
|
false),
|
|
|
|
|
|
//callback to get the children
|
|
|
|
|
|
(dd, n) => children,
|
|
|
|
|
|
// callback to get a property
|
2018-01-10 12:48:51 +01:00
|
|
|
|
(dd, a) => dd.Properties.FirstOrDefault(x => x.Alias.InvariantEquals(a)),
|
2016-05-26 18:48:35 +02:00
|
|
|
|
null, // cache provider
|
|
|
|
|
|
ContentTypesCache,
|
|
|
|
|
|
// no xpath
|
|
|
|
|
|
null,
|
|
|
|
|
|
// not from examine
|
|
|
|
|
|
false);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
return dicDoc;
|
|
|
|
|
|
}
|
2015-04-10 10:36:21 +10:00
|
|
|
|
|
2017-07-20 11:21:28 +02:00
|
|
|
|
private void DoAssert(
|
|
|
|
|
|
PublishedMediaCache.DictionaryPublishedContent dicDoc,
|
|
|
|
|
|
int idVal = 1234,
|
2015-09-01 16:11:26 +02:00
|
|
|
|
Guid keyVal = default(Guid),
|
2017-07-20 11:21:28 +02:00
|
|
|
|
int templateIdVal = 0,
|
|
|
|
|
|
int sortOrderVal = 44,
|
|
|
|
|
|
string urlNameVal = "testing",
|
|
|
|
|
|
string nodeTypeAliasVal = "myType",
|
|
|
|
|
|
int nodeTypeIdVal = 22,
|
|
|
|
|
|
string writerNameVal = "Shannon",
|
|
|
|
|
|
string creatorNameVal = "Shannon",
|
|
|
|
|
|
int writerIdVal = 33,
|
|
|
|
|
|
int creatorIdVal = 33,
|
|
|
|
|
|
string pathVal = "1,2,3,4,5",
|
|
|
|
|
|
DateTime? createDateVal = null,
|
|
|
|
|
|
DateTime? updateDateVal = null,
|
|
|
|
|
|
int levelVal = 3,
|
|
|
|
|
|
int parentIdVal = 321)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!createDateVal.HasValue)
|
|
|
|
|
|
createDateVal = DateTime.Parse("2012-01-02");
|
|
|
|
|
|
if (!updateDateVal.HasValue)
|
|
|
|
|
|
updateDateVal = DateTime.Parse("2012-01-02");
|
|
|
|
|
|
|
|
|
|
|
|
DoAssert((IPublishedContent)dicDoc, idVal, keyVal, templateIdVal, sortOrderVal, urlNameVal, nodeTypeAliasVal, nodeTypeIdVal, writerNameVal,
|
|
|
|
|
|
creatorNameVal, writerIdVal, creatorIdVal, pathVal, createDateVal, updateDateVal, levelVal);
|
|
|
|
|
|
|
|
|
|
|
|
//now validate the parentId that has been parsed, this doesn't exist on the IPublishedContent
|
|
|
|
|
|
Assert.AreEqual(parentIdVal, dicDoc.ParentId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void DoAssert(
|
|
|
|
|
|
IPublishedContent doc,
|
|
|
|
|
|
int idVal = 1234,
|
2015-09-01 16:11:26 +02:00
|
|
|
|
Guid keyVal = default(Guid),
|
2016-04-28 22:12:55 +02:00
|
|
|
|
int templateIdVal = 0,
|
2017-07-20 11:21:28 +02:00
|
|
|
|
int sortOrderVal = 44,
|
|
|
|
|
|
string urlNameVal = "testing",
|
|
|
|
|
|
string nodeTypeAliasVal = "myType",
|
|
|
|
|
|
int nodeTypeIdVal = 22,
|
|
|
|
|
|
string writerNameVal = "Shannon",
|
|
|
|
|
|
string creatorNameVal = "Shannon",
|
|
|
|
|
|
int writerIdVal = 33,
|
|
|
|
|
|
int creatorIdVal = 33,
|
|
|
|
|
|
string pathVal = "1,2,3,4,5",
|
|
|
|
|
|
DateTime? createDateVal = null,
|
|
|
|
|
|
DateTime? updateDateVal = null,
|
|
|
|
|
|
int levelVal = 3)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!createDateVal.HasValue)
|
|
|
|
|
|
createDateVal = DateTime.Parse("2012-01-02");
|
|
|
|
|
|
if (!updateDateVal.HasValue)
|
|
|
|
|
|
updateDateVal = DateTime.Parse("2012-01-02");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(idVal, doc.Id);
|
2016-06-09 19:38:51 +02:00
|
|
|
|
Assert.AreEqual(keyVal, doc.Key);
|
2017-07-20 11:21:28 +02:00
|
|
|
|
Assert.AreEqual(templateIdVal, doc.TemplateId);
|
|
|
|
|
|
Assert.AreEqual(sortOrderVal, doc.SortOrder);
|
|
|
|
|
|
Assert.AreEqual(urlNameVal, doc.UrlName);
|
|
|
|
|
|
Assert.AreEqual(nodeTypeAliasVal, doc.DocumentTypeAlias);
|
|
|
|
|
|
Assert.AreEqual(nodeTypeIdVal, doc.DocumentTypeId);
|
|
|
|
|
|
Assert.AreEqual(writerNameVal, doc.WriterName);
|
|
|
|
|
|
Assert.AreEqual(creatorNameVal, doc.CreatorName);
|
|
|
|
|
|
Assert.AreEqual(writerIdVal, doc.WriterId);
|
|
|
|
|
|
Assert.AreEqual(creatorIdVal, doc.CreatorId);
|
|
|
|
|
|
Assert.AreEqual(pathVal, doc.Path);
|
|
|
|
|
|
Assert.AreEqual(createDateVal.Value, doc.CreateDate);
|
|
|
|
|
|
Assert.AreEqual(updateDateVal.Value, doc.UpdateDate);
|
|
|
|
|
|
Assert.AreEqual(levelVal, doc.Level);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|