Skip to content

Commit

Permalink
MultiNodeTreePickerBuilder v8
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Edney committed Mar 26, 2019
1 parent 7b8d2b8 commit 84a2965
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 92 deletions.
199 changes: 111 additions & 88 deletions src/DeployCmsData.UmbracoCms.UnitTest/Tests/MultiNodeTreePicker.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
using DeployCmsData.UmbracoCms.Builders;
using DeployCmsData.UmbracoCms.UnitTest.Builders;
using Moq;
using DeployCmsData.UmbracoCms.UnitTest.Builders;
using NUnit.Framework;
using System;
using Umbraco.Core.Models;
using Umbraco.Core.Services;

namespace DeployCmsData.UmbracoCms.UnitTest.Tests
{
Expand All @@ -19,11 +15,10 @@ public static void CreateSimplePicker()

builder
.Name("My New Tree Picker")
.ShowOpenButton()
.Build();

Assert.IsNull(builder.Configuration.TreeSource);
Assert.IsTrue(builder.Configuration.ShowOpen);
Assert.IsFalse(builder.Configuration.ShowOpen);
Assert.AreEqual(0, builder.Configuration.MinNumber);
Assert.AreEqual(0, builder.Configuration.MaxNumber);
Assert.IsNull(builder.Configuration.Filter);
Expand Down Expand Up @@ -69,124 +64,152 @@ public static void MinAndMaxItems()
Assert.IsNull(builder.Configuration.Filter);
}


public static void CreateSimplePickerOld()
[Test]
public static void SetStartNodeContentWithGuidId()
{
const int contentId = 1234;
const int maxNumber = 5;
const int minNumber = 1;

var contentGuid = new Guid("{50CC58EB-19A7-4165-B74F-BD9FA0A4F6BD}");
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

var content = new Mock<IContent>();
content.Setup(x => x.Key).Returns(contentGuid);
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

var mediaService = new Mock<IMediaService>();
var dataTypeService = new Mock<IDataTypeService>();
var dataType = builder
.Name("My New Tree Picker")
.StartNodeContent(key)
.Build();

Assert.AreEqual("Content", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual($"umb://document/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("document", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}

var contentService = new Mock<IContentService>();
contentService.Setup(x => x.GetById(contentId)).Returns(content.Object);
[Test]
public static void SetStartNodeContentWithIntId()
{
const int contentId = 1234;
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

var builder = new MultiNodeTreePickerBuilder(
dataTypeService.Object,
contentService.Object,
mediaService.Object,
Guid.NewGuid());
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

builder
var dataType = builder
.Name("My New Tree Picker")
.StartNodeContent(contentId)
.AllowItemsOfType("type1", "type2")
.MinimumNumberOfItems(minNumber)
.MaximumNumberOfItems(maxNumber)
.ShowOpenButton()
.Build();

//var preValueJson = builder.PreValue(MultiNodeTreePickerBuilder.PreValueStartNode);
//var preValue = JsonConvert.DeserializeObject<MultiNodeTreePickerStartNodePreValue>(preValueJson);
Assert.AreEqual("Content", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual($"umb://document/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("document", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}

//Assert.AreEqual(expectedJson, preValueJson);
//Assert.AreEqual(5, builder.PreValueCount);
//Assert.IsTrue(preValue.Query.EndsWith(contentGuid.ToString(), StringComparison.Ordinal));
//Assert.AreEqual(Enums.StartNodeType.Content, preValue.StartNodeType);
//Assert.AreEqual(minNumber.ToString(CultureInfo.InvariantCulture), builder.PreValue(MultiNodeTreePickerBuilder.PreValueMinNumber));
//Assert.AreEqual(maxNumber.ToString(CultureInfo.InvariantCulture), builder.PreValue(MultiNodeTreePickerBuilder.PreValueMaxNumber));
//Assert.AreEqual("1", builder.PreValue(MultiNodeTreePickerBuilder.PreValueShowOpenButton));
[Test]
public static void SetStartNodeContentWithStringId()
{
const int contentId = 1234;
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

var dataType = builder
.Name("My New Tree Picker")
.StartNodeContent(contentId.ToString())
.Build();

//Assert.IsTrue(builder.Configuration.TreeSource.StartNodeQuery.EndsWith(contentGuid.ToString(), StringComparison.Ordinal));
Assert.AreEqual(minNumber, builder.Configuration.MinNumber);
Assert.AreEqual(maxNumber, builder.Configuration.MaxNumber);
Assert.IsTrue(builder.Configuration.ShowOpen);
Assert.AreEqual("type1,type2", builder.Configuration.Filter);
Assert.AreEqual("Content", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual("umb://document/50cc58eb-19a7-4165-b74f-bd9fa0a4f6bd", builder.Configuration.TreeSource.StartNodeQuery);
Assert.AreEqual($"umb://document/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("document", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}


public static void Xpath()
[Test]
public static void SetStartNodeContentWithFilter()
{
const int contentId = 1234;
const int maxNumber = 5;
const int minNumber = 1;
const string xPath = "$parent/newsArticle";
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");
var filter = "$parent/newsArticle";

var contentGuid = new Guid("{50CC58EB-19A7-4165-B74F-BD9FA0A4F6BD}");
var expectedJson = $"{{\"type\":\"content\",\"query\":\"{xPath}\"}}";
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

var content = new Mock<IContent>();
content.Setup(x => x.Key).Returns(contentGuid);
var dataType = builder
.Name("My New Tree Picker")
.StartNodeXpath(filter)
.Build();

var mediaService = new Mock<IMediaService>();
var dataTypeService = new Mock<IDataTypeService>();
var contentService = new Mock<IContentService>();
contentService.Setup(x => x.GetById(contentId)).Returns(content.Object);
Assert.AreEqual("Content", builder.Configuration.TreeSource.ObjectType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeId);
Assert.AreEqual(filter, builder.Configuration.TreeSource.StartNodeQuery);
}

var builder = new MultiNodeTreePickerBuilder(
dataTypeService.Object,
contentService.Object,
mediaService.Object,
Guid.NewGuid());
[Test]
public static void SetStartNodeMediaWithGuidId()
{
const int contentId = 1234;
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

builder
.Name("My New Tree Picker")
.StartNodeXpath(xPath)
.AllowItemsOfType("type1", "type2")
.MinimumNumberOfItems(minNumber)
.MaximumNumberOfItems(maxNumber)
.ShowOpenButton()
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

//var preValueJson = builder.PreValue(MultiNodeTreePickerBuilder.PreValueStartNode);
//var preValue = JsonConvert.DeserializeObject<MultiNodeTreePickerStartNodeConfiguration>(preValueJson);
var dataType = builder
.Name("My New Tree Picker")
.StartNodeMedia(key)
.Build();

//Assert.AreEqual(expectedJson, preValueJson);
//Assert.IsTrue(preValue.Query.EndsWith(xPath, StringComparison.Ordinal));
Assert.AreEqual("Media", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual($"umb://media/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("media", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}


public static void PickerWithNoValues()
[Test]
public static void SetStartNodeMediaWithIntId()
{
const int contentId = 1234;
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

var contentGuid = new Guid("{50CC58EB-19A7-4165-B74F-BD9FA0A4F6BD}");
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

var dataType = builder
.Name("My New Tree Picker")
.StartNodeMedia(contentId)
.Build();

var content = new Mock<IContent>();
content.Setup(x => x.Key).Returns(contentGuid);
Assert.AreEqual("Media", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual($"umb://media/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("media", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}

var mediaService = new Mock<IMediaService>();
var dataTypeService = new Mock<IDataTypeService>();
var contentService = new Mock<IContentService>();
contentService.Setup(x => x.GetById(contentId)).Returns(content.Object);
[Test]
public static void SetStartNodeMediaWithStringId()
{
const int contentId = 1234;
Guid key = new Guid("{FD16566D-C9A8-4053-88DF-14EBB3938171}");

var builder = new MultiNodeTreePickerBuilder(
dataTypeService.Object,
contentService.Object,
mediaService.Object,
Guid.NewGuid());
var builder = new MultiNodeTreePickerTestBuilder(Guid.NewGuid())
.ContentServiceReturnsContent(contentId, key)
.Build();

builder
var dataType = builder
.Name("My New Tree Picker")
.StartNodeMedia(contentId.ToString())
.Build();

Assert.AreEqual("Media", builder.Configuration.TreeSource.ObjectType);
Assert.AreEqual($"umb://media/{key.ToString().ToLower().Replace("-", "")}", builder.Configuration.TreeSource.StartNodeId.ToString());
Assert.AreEqual("media", builder.Configuration.TreeSource.StartNodeId.EntityType);
Assert.IsNull(builder.Configuration.TreeSource.StartNodeQuery);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ public MultiNodeTreePickerBuilder StartNodeContent(Guid contentId)
_startNodeConfiguration = new MultiNodeTreePickerStartNodeConfiguration()
{
StartNodeType = StartNodeType.Content,
Query = StringFormat.ToInvariant($"umb://document/{contentId}")
Id = StringFormat.ToInvariant($"umb://document/{contentId.ToString().ToLower().Replace("-", "")}"),
Query = null
};
return this;
}
Expand Down Expand Up @@ -139,7 +140,8 @@ public MultiNodeTreePickerBuilder StartNodeMedia(Guid mediaId)
_startNodeConfiguration = new MultiNodeTreePickerStartNodeConfiguration()
{
StartNodeType = Enums.StartNodeType.Media,
Query = StringFormat.ToInvariant($"umb://media/{mediaId}")
Id = StringFormat.ToInvariant($"umb://media/{mediaId.ToString().ToLower().Replace("-", "")}"),
Query = null
};
return this;
}
Expand All @@ -148,7 +150,7 @@ public MultiNodeTreePickerBuilder StartNodeMember()
{
_startNodeConfiguration = new MultiNodeTreePickerStartNodeConfiguration()
{
StartNodeType = Enums.StartNodeType.Member,
StartNodeType = StartNodeType.Member,
Id = "-1"
};
return this;
Expand Down
2 changes: 1 addition & 1 deletion src/DeployCmsData.UmbracoCms/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("8.0.0.5")]
[assembly: AssemblyVersion("8.0.0.6")]
//[assembly: AssemblyInformationalVersion("8.0.0.0")]

0 comments on commit 84a2965

Please sign in to comment.