Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmytro Ovcharov <mr.celestian@gmail.com>2017-10-30 12:39:41 +0300
committerGitHub <noreply@github.com>2017-10-30 12:39:41 +0300
commitd36cbb0b72a3a66be93a120e1e621bd8c694e0a5 (patch)
treeab1b2b65befff73027091003898ea6b2e841894e /main/src/addins/MonoDevelop.UnitTesting
parenta89e2d209ee0ccaf482f33f043c68dbf8c8523fc (diff)
parent01e40d42c2a65e5ea3efb454c2541ca44b630376 (diff)
Merge pull request #3261 from mono/fix6664
Removed redundant nesting in unit test tree.
Diffstat (limited to 'main/src/addins/MonoDevelop.UnitTesting')
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs41
1 files changed, 40 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs
index 027f8b4265..6f03ec0c70 100644
--- a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs
@@ -29,6 +29,7 @@
using System;
using System.Globalization;
using System.Text;
+using System.Linq;
using MonoDevelop.Core;
using MonoDevelop.Components.Commands;
@@ -69,8 +70,13 @@ namespace MonoDevelop.UnitTesting
UnitTest test = dataObject as UnitTest;
nodeInfo.Icon = test.StatusIcon;
+ var singleTestSuffix = String.Empty;
+ if (test is UnitTestGroup unitTestGroup)
+ singleTestSuffix = GetSuffix (unitTestGroup);
+
var title = RemoveGenericArgument (test.Title);
- title = test.Title;
+ title = test.Title + singleTestSuffix ;
+
if (test.Status == TestStatus.Running) {
nodeInfo.Label = Ambience.EscapeText (title);
return;
@@ -94,15 +100,48 @@ namespace MonoDevelop.UnitTesting
}
}
+ static string GetSuffix (UnitTestGroup unitTestGroup)
+ {
+ var stringBuilder = new StringBuilder ();
+ while (unitTestGroup != null)
+ if (ContainsSingleUnitTestGroup (unitTestGroup) && !(unitTestGroup is SolutionFolderTestGroup)) {
+ var testCollection = unitTestGroup.Tests;
+ var singleChildTestGroup = testCollection [0] as UnitTestGroup;
+ stringBuilder.Append (".")
+ .Append (singleChildTestGroup.Title);
+ unitTestGroup = singleChildTestGroup;
+ } else
+ unitTestGroup = null;
+ return stringBuilder.ToString ();
+ }
+
public override void BuildChildNodes (ITreeBuilder builder, object dataObject)
{
UnitTestGroup test = dataObject as UnitTestGroup;
if (test == null)
return;
+ if (ContainsSingleUnitTestGroup (test)) {
+ BuildChildNodes (test, builder);
+ return;
+ }
+ builder.AddChildren (test.Tests);
+ }
+
+ void BuildChildNodes (UnitTestGroup test, ITreeBuilder builder)
+ {
+ bool isSolution = test is SolutionFolderTestGroup;
+ if (!isSolution && ContainsSingleUnitTestGroup(test)) {
+ var unitTestGroup = test.Tests[0] as UnitTestGroup;
+ BuildChildNodes (unitTestGroup, builder);
+ return;
+ }
builder.AddChildren (test.Tests);
}
+ static bool ContainsSingleUnitTestGroup(UnitTestGroup test) =>
+ test.Tests.Count == 1 && test.Tests[0] is UnitTestGroup;
+
public override bool HasChildNodes (ITreeBuilder builder, object dataObject)
{
UnitTestGroup test = dataObject as UnitTestGroup;