Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2148 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
12 changed files with 430 additions and 16 deletions
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Windows.Forms; |
||||
using ICSharpCode.CodeCoverage; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
|
||||
namespace ICSharpCode.CodeCoverage.Tests |
||||
{ |
||||
/// <summary>
|
||||
/// Derived code coverage tree view that gives us access to the
|
||||
/// AfterSelect method.
|
||||
/// </summary>
|
||||
public class DerivedCodeCoverageTreeView : CodeCoverageTreeView |
||||
{ |
||||
public void CallOnAfterSelect(TreeNode node) |
||||
{ |
||||
base.OnAfterSelect(new TreeViewEventArgs(node)); |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Derived ExtTreeNode class so we can check the IsInitialized
|
||||
/// property.
|
||||
/// </summary>
|
||||
public class DerivedExtTreeNode : ExtTreeNode |
||||
{ |
||||
public bool IsInitialized { |
||||
get { |
||||
return base.isInitialized; |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Derived CodeCoverageTreeNode class so we can check the IsInitialized
|
||||
/// property.
|
||||
/// </summary>
|
||||
public class DerivedCodeCoverageTreeNode : CodeCoverageTreeNode |
||||
{ |
||||
public DerivedCodeCoverageTreeNode(string name, CodeCoverageImageListIndex index) |
||||
: base(name, index) |
||||
{ |
||||
} |
||||
|
||||
public bool IsInitialized { |
||||
get { |
||||
return base.isInitialized; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NUnit.Framework; |
||||
|
||||
namespace ICSharpCode.CodeCoverage.Tests |
||||
{ |
||||
/// <summary>
|
||||
/// Tests the CodeCoverageResultsTreeView AfterSelect method.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class TreeViewAfterSelectTestFixture |
||||
{ |
||||
/// <summary>
|
||||
/// Code coverage tree node should be initialised in OnAfterSelect method.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void NodeInitialised() |
||||
{ |
||||
DerivedCodeCoverageTreeView treeView = new DerivedCodeCoverageTreeView(); |
||||
DerivedCodeCoverageTreeNode node = new DerivedCodeCoverageTreeNode("Test", CodeCoverageImageListIndex.Class); |
||||
treeView.CallOnAfterSelect(node); |
||||
Assert.IsTrue(node.IsInitialized); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Non code coverage tree node should not initialised in OnAfterSelect method.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void NonCodeCoverageNodeNotInitialised() |
||||
{ |
||||
DerivedCodeCoverageTreeView treeView = new DerivedCodeCoverageTreeView(); |
||||
DerivedExtTreeNode node = new DerivedExtTreeNode(); |
||||
treeView.CallOnAfterSelect(node); |
||||
Assert.IsFalse(node.IsInitialized); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Check that the OnAfterSelect method handles a null node.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void NullNode() |
||||
{ |
||||
DerivedCodeCoverageTreeView treeView = new DerivedCodeCoverageTreeView(); |
||||
treeView.CallOnAfterSelect(null); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,253 @@
@@ -0,0 +1,253 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Windows.Forms; |
||||
using ICSharpCode.CodeCoverage; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NUnit.Framework; |
||||
|
||||
namespace ICSharpCode.CodeCoverage.Tests |
||||
{ |
||||
/// <summary>
|
||||
/// Tests that the code coverage tree view is sorted correctly for
|
||||
/// all node types.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class TreeViewSortingTestFixture |
||||
{ |
||||
IComparer<TreeNode> nodeSorter; |
||||
CodeCoverageTreeView treeView; |
||||
CodeCoverageModuleTreeNode codeCoverageModuleTreeNode; |
||||
CodeCoverageModuleTreeNode zModuleTreeNode; |
||||
CodeCoverageTreeNode betaNamespaceTreeNode; |
||||
CodeCoverageTreeNode testFixtureClassTreeNode; |
||||
CodeCoverageTreeNode aardvarkNamespaceTreeNode; |
||||
CodeCoverageTreeNode anotherTestFixtureTreeNode; |
||||
CodeCoverageTreeNode testFixtureTreeNode; |
||||
CodeCoverageTreeNode addNodeTestTreeNode; |
||||
CodeCoverageTreeNode removeMarkersTestTreeNode; |
||||
|
||||
[TestFixtureSetUp] |
||||
public void SetUpFixture() |
||||
{ |
||||
treeView = new CodeCoverageTreeView(); |
||||
nodeSorter = treeView.NodeSorter; |
||||
|
||||
List<CodeCoverageModule> modules = new List<CodeCoverageModule>(); |
||||
|
||||
// Create a module called Z.
|
||||
CodeCoverageModule zModule = new CodeCoverageModule("Z"); |
||||
modules.Add(zModule); |
||||
|
||||
// Create a module called CodeCoverage.
|
||||
CodeCoverageModule codeCoverageModule = new CodeCoverageModule("CodeCoverage"); |
||||
modules.Add(codeCoverageModule); |
||||
|
||||
// Add a method that lives in a class without any namespace.
|
||||
CodeCoverageMethod testMethod = new CodeCoverageMethod("Test", "TestFixture"); |
||||
codeCoverageModule.Methods.Add(testMethod); |
||||
|
||||
// Add a method which produces a namespace that alphabetically
|
||||
// occurs after the class already added.
|
||||
CodeCoverageMethod removeCodeMarkersMethod = new CodeCoverageMethod("RemoveCodeMarkersMethod", "Beta.TestFixture"); |
||||
codeCoverageModule.Methods.Add(removeCodeMarkersMethod); |
||||
|
||||
// Add a method that lives in a namespace that
|
||||
// occurs before the removeCodeMarkersMethod. We want to
|
||||
// make sure that this namespace node gets added before the Beta one.
|
||||
CodeCoverageMethod zebraMethod = new CodeCoverageMethod("Zebra", "Aardvark.TestFixture"); |
||||
codeCoverageModule.Methods.Add(zebraMethod); |
||||
|
||||
// Add a second class in the beta namespace so we check the
|
||||
// sorting of classes.
|
||||
CodeCoverageMethod addCodeMarkersMethod = new CodeCoverageMethod("AddCodeMarkersMethod", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(addCodeMarkersMethod); |
||||
|
||||
// Add a method which produces occurs before the remove code markers method.
|
||||
CodeCoverageMethod addNodeMethod = new CodeCoverageMethod("AddNode", "Beta.TestFixture"); |
||||
codeCoverageModule.Methods.Add(addNodeMethod); |
||||
|
||||
// Add two get and set properties.
|
||||
CodeCoverageMethod method = new CodeCoverageMethod("get_Zebra", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(method); |
||||
method = new CodeCoverageMethod("set_Zebra", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(method); |
||||
|
||||
method = new CodeCoverageMethod("set_Aardvark", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(method); |
||||
method = new CodeCoverageMethod("get_Aardvark", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(method); |
||||
|
||||
// Add a method which should appear between the two properties.
|
||||
method = new CodeCoverageMethod("Chimp", "Beta.AnotherTestFixture"); |
||||
codeCoverageModule.Methods.Add(method); |
||||
|
||||
|
||||
// Add the modules to the tree.
|
||||
treeView.AddModules(modules); |
||||
|
||||
codeCoverageModuleTreeNode = (CodeCoverageModuleTreeNode)treeView.Nodes[0]; |
||||
zModuleTreeNode = (CodeCoverageModuleTreeNode)treeView.Nodes[1]; |
||||
|
||||
// Initialise the code coverage module tree node.
|
||||
codeCoverageModuleTreeNode.PerformInitialization(); |
||||
aardvarkNamespaceTreeNode = (CodeCoverageTreeNode)codeCoverageModuleTreeNode.Nodes[0]; |
||||
betaNamespaceTreeNode = (CodeCoverageTreeNode)codeCoverageModuleTreeNode.Nodes[1]; |
||||
testFixtureClassTreeNode = (CodeCoverageTreeNode)codeCoverageModuleTreeNode.Nodes[2]; |
||||
|
||||
// Initialise the beta namespace tree node.
|
||||
betaNamespaceTreeNode.PerformInitialization(); |
||||
anotherTestFixtureTreeNode = (CodeCoverageTreeNode)betaNamespaceTreeNode.Nodes[0]; |
||||
testFixtureTreeNode = (CodeCoverageTreeNode)betaNamespaceTreeNode.Nodes[1]; |
||||
|
||||
// Initialise the test fixture class tree node
|
||||
testFixtureTreeNode.PerformInitialization(); |
||||
addNodeTestTreeNode = (CodeCoverageTreeNode)testFixtureTreeNode.Nodes[0]; |
||||
removeMarkersTestTreeNode = (CodeCoverageTreeNode)testFixtureTreeNode.Nodes[1]; |
||||
|
||||
// Initialise the anotherTestFixtureTreeNode
|
||||
anotherTestFixtureTreeNode.PerformInitialization(); |
||||
} |
||||
|
||||
[TestFixtureTearDown] |
||||
public void TearDownFixture() |
||||
{ |
||||
treeView.Dispose(); |
||||
} |
||||
|
||||
[Test] |
||||
public void FirstModuleTreeNode() |
||||
{ |
||||
Assert.AreEqual("CodeCoverage", codeCoverageModuleTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void SecondModuleTreeNode() |
||||
{ |
||||
Assert.AreEqual("Z", zModuleTreeNode.Name); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Makes sure this is the second child node of the code coverage module
|
||||
/// parent tree node.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void BetaNamespaceTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("Beta", betaNamespaceTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void AardvarkNamespaceTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("Aardvark", aardvarkNamespaceTreeNode.Name); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Test the code coverage tree view's node sorted correctly
|
||||
/// orders the namespace tree nodes.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void SameNamespaceTreeNodeCompared() |
||||
{ |
||||
Assert.AreEqual(0, nodeSorter.Compare(aardvarkNamespaceTreeNode, aardvarkNamespaceTreeNode)); |
||||
} |
||||
|
||||
[Test] |
||||
public void FirstNamespaceTreeNodeLessThan() |
||||
{ |
||||
int expectedResult = aardvarkNamespaceTreeNode.CompareString.CompareTo(betaNamespaceTreeNode.CompareString); |
||||
Assert.AreEqual(aardvarkNamespaceTreeNode.Name, aardvarkNamespaceTreeNode.CompareString); |
||||
Assert.AreEqual(betaNamespaceTreeNode.Name, betaNamespaceTreeNode.CompareString); |
||||
Assert.AreEqual(expectedResult, nodeSorter.Compare(aardvarkNamespaceTreeNode, betaNamespaceTreeNode)); |
||||
} |
||||
|
||||
[Test] |
||||
public void FirstNamespaceTreeNodeMoreThan() |
||||
{ |
||||
int expectedResult = betaNamespaceTreeNode.CompareString.CompareTo(aardvarkNamespaceTreeNode.CompareString); |
||||
Assert.AreEqual(expectedResult, nodeSorter.Compare(betaNamespaceTreeNode, aardvarkNamespaceTreeNode)); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// The namespace node should always be ordered before any class node.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void ClassAndNamespaceTreeNodeCompared() |
||||
{ |
||||
List<CodeCoverageMethod> methods = new List<CodeCoverageMethod>(); |
||||
CodeCoverageNamespaceTreeNode namespaceTreeNode = new CodeCoverageNamespaceTreeNode("Z", methods); |
||||
CodeCoverageClassTreeNode classTreeNode = new CodeCoverageClassTreeNode("A", methods); |
||||
Assert.AreEqual(-1, nodeSorter.Compare(namespaceTreeNode, classTreeNode)); |
||||
Assert.Greater(classTreeNode.SortOrder, namespaceTreeNode.SortOrder); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// The compare string should be the name of the node not including
|
||||
/// any percentages.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void CodeCoverageTreeNodeCompareString() |
||||
{ |
||||
CodeCoverageTreeNode node = new CodeCoverageTreeNode("A", CodeCoverageImageListIndex.Class, 1, 2); |
||||
Assert.AreEqual("A", node.CompareString); |
||||
} |
||||
|
||||
[Test] |
||||
public void TestFixtureTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("TestFixture", testFixtureTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void AnotherTestFixtureTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("AnotherTestFixture", anotherTestFixtureTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void RemoveMarkersTestTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("RemoveCodeMarkersMethod", removeMarkersTestTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void AddNodeTestTreeNodeName() |
||||
{ |
||||
Assert.AreEqual("AddNode", addNodeTestTreeNode.Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void PropertyMethodsSorted() |
||||
{ |
||||
Assert.AreEqual("get_Aardvark", anotherTestFixtureTreeNode.Nodes[0].Name); |
||||
Assert.AreEqual("set_Aardvark", anotherTestFixtureTreeNode.Nodes[1].Name); |
||||
Assert.AreEqual("AddCodeMarkersMethod", anotherTestFixtureTreeNode.Nodes[2].Name); |
||||
Assert.AreEqual("Chimp", anotherTestFixtureTreeNode.Nodes[3].Name); |
||||
Assert.AreEqual("get_Zebra", anotherTestFixtureTreeNode.Nodes[4].Name); |
||||
Assert.AreEqual("set_Zebra", anotherTestFixtureTreeNode.Nodes[5].Name); |
||||
} |
||||
|
||||
[Test] |
||||
public void GetterPropertyCompareString() |
||||
{ |
||||
CodeCoverageMethod getterMethod = new CodeCoverageMethod("get_Aardvark", "Animal"); |
||||
CodeCoverageMethodTreeNode getterNode = new CodeCoverageMethodTreeNode(getterMethod); |
||||
Assert.AreEqual("Aardvark get", getterNode.CompareString); |
||||
} |
||||
|
||||
[Test] |
||||
public void SetterPropertyCompareString() |
||||
{ |
||||
CodeCoverageMethod setterMethod = new CodeCoverageMethod("set_Aardvark", "Animal"); |
||||
CodeCoverageMethodTreeNode setterNode = new CodeCoverageMethodTreeNode(setterMethod); |
||||
Assert.AreEqual("Aardvark set", setterNode.CompareString); |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue