Ability to remove trees in the backoffice

This commit is contained in:
Patrick de Mooij
2021-10-02 16:46:12 +02:00
committed by Sebastiaan Janssen
parent d22297270b
commit 04f53b7e88
2 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using System.Linq;
using NUnit.Framework;
using Umbraco.Cms.Core.Trees;
using Umbraco.Cms.Web.BackOffice.Trees;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.CollectionBuilders
{
public class TreeCollectionBuilderTests
{
[Test]
public void Adding_Tree_To_Collection_Builder()
{
var collectionBuilder = new TreeCollectionBuilder();
var treeDefinition = new Tree(0, "test", "test", "test", "test", TreeUse.Main, typeof(LanguageTreeController), false);
collectionBuilder.AddTree(treeDefinition);
var collection = collectionBuilder.CreateCollection(null);
Assert.AreEqual(1, collection.Count);
Assert.AreEqual(treeDefinition, collection.FirstOrDefault());
}
[Test]
public void Remove_Tree_From_Collection_Builder()
{
var collectionBuilder = new TreeCollectionBuilder();
var treeDefinition = new Tree(0, "test", "test", "test", "test", TreeUse.Main, typeof(LanguageTreeController), false);
collectionBuilder.AddTree(treeDefinition);
collectionBuilder.RemoveTreeController<LanguageTreeController>();
var collection = collectionBuilder.CreateCollection(null);
Assert.AreEqual(0, collection.Count);
}
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using Umbraco.Cms.Core.Composing;
using Umbraco.Cms.Core.Trees;
@@ -56,5 +57,16 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
foreach (var controllerType in controllerTypes)
AddTreeController(controllerType);
}
public void RemoveTreeController<T>() => RemoveTreeController(typeof(T));
public void RemoveTreeController(Type type)
{
var tree = _trees.FirstOrDefault(it => it.TreeControllerType == type);
if (tree != null)
{
_trees.Remove(tree);
}
}
}
}