#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

117 lines
3.6 KiB

// <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 ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.CodeCoverage;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Windows.Forms;
namespace ICSharpCode.CodeCoverage.Tests.Gui
{
/// <summary>
/// Tests that getter and setter methods are shown in the tree view as child nodes of a parent
/// property node.
/// </summary>
[TestFixture]
public class PropertiesInCodeCoverageTreeView
{
ExtTreeNode fooModuleNode;
CodeCoverageClassTreeNode fooTestTreeNode;
CodeCoverageMethodTreeNode fooGetterTreeNode;
CodeCoverageMethodTreeNode fooSetterTreeNode;
CodeCoverageNamespaceTreeNode fooTestsNamespaceTreeNode;
CodeCoveragePropertyTreeNode countPropertyTreeNode;
CodeCoverageMethod fooGetterMethod;
CodeCoverageMethod fooSetterMethod;
[TestFixtureSetUp]
public void SetUpFixture()
{
List<CodeCoverageModule> modules = new List<CodeCoverageModule>();
CodeCoverageModule fooModule = new CodeCoverageModule("Tests");
fooSetterMethod = new CodeCoverageMethod("set_Count", "Tests.FooTest", MethodAttributes.SpecialName);
fooSetterMethod.SequencePoints.Add(new CodeCoverageSequencePoint("c:\\Projects\\Foo\\FooTest.cs", 1, 2, 2, 3, 4));
fooSetterMethod.SequencePoints.Add(new CodeCoverageSequencePoint("c:\\Projects\\Foo\\FooTest.cs", 0, 3, 4, 4, 4));
fooGetterMethod = new CodeCoverageMethod("get_Count", "Tests.FooTest", MethodAttributes.SpecialName);
fooGetterMethod.SequencePoints.Add(new CodeCoverageSequencePoint("c:\\Projects\\Foo\\FooTest.cs", 1, 1, 0, 2, 1));
fooModule.Methods.Add(fooGetterMethod);
fooModule.Methods.Add(fooSetterMethod);
modules.Add(fooModule);
using (CodeCoverageTreeView treeView = new CodeCoverageTreeView()) {
treeView.AddModules(modules);
fooModuleNode = (CodeCoverageModuleTreeNode)treeView.Nodes[0];
}
fooModuleNode.Expanding();
fooTestsNamespaceTreeNode = (CodeCoverageNamespaceTreeNode)fooModuleNode.Nodes[0];
fooTestsNamespaceTreeNode.Expanding();
fooTestTreeNode = (CodeCoverageClassTreeNode)fooTestsNamespaceTreeNode.Nodes[0];
fooTestTreeNode.Expanding();
if (fooTestTreeNode.Nodes.Count > 0) {
countPropertyTreeNode = fooTestTreeNode.Nodes[0] as CodeCoveragePropertyTreeNode;
}
countPropertyTreeNode.Expanding();
if (countPropertyTreeNode != null && countPropertyTreeNode.Nodes.Count > 1) {
fooGetterTreeNode = (CodeCoverageMethodTreeNode)countPropertyTreeNode.Nodes[0];
fooSetterTreeNode = (CodeCoverageMethodTreeNode)countPropertyTreeNode.Nodes[1];
}
}
[Test]
public void FooClassOnlyHasOneChildNode()
{
Assert.AreEqual(1, fooTestTreeNode.Nodes.Count);
}
[Test]
public void PropertyTreeNodeExists()
{
Assert.IsNotNull(countPropertyTreeNode);
}
[Test]
public void PropertyTreeNodeImageIndexIsProperty()
{
Assert.AreEqual(CodeCoverageImageListIndex.Property, (CodeCoverageImageListIndex)countPropertyTreeNode.ImageIndex);
}
[Test]
public void PropertyTreeNodeHasTwoChildNodes()
{
Assert.AreEqual(2, countPropertyTreeNode.Nodes.Count);
}
[Test]
public void PropertyTreeNodeVisitedCount()
{
Assert.AreEqual(2, countPropertyTreeNode.VisitedCount);
}
[Test]
public void GetterTreeNodeMethod()
{
Assert.AreEqual(fooGetterMethod, fooGetterTreeNode.Method);
}
[Test]
public void SetterTreeNodeMethod()
{
Assert.AreEqual(fooSetterMethod, fooSetterTreeNode.Method);
}
}
}