Im folgenden Beispiel werden Tests an der Java-Anwendung Classics durchgeführt:
#Region " Script Header "
' Functional Test Script
' author Administrator
Imports Microsoft.VisualBasic
Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Object.Interfaces.SAP
Imports Rational.Test.Ft.Object.Interfaces.Siebel
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp
#End Region
Public Class GetTreeDataExample Inherits GetTreeDataExampleHelper
' Script Name : GetTreeDataExample
'Generated : Jul 17, 2006 3:25:22 PM
'Description : Functional Test Script
'Original Host : Windows XP x86 5.1 build 2600 Service Pack 2
'since 2006/07/17
'author Administrator
Public Function TestMain(ByVal args() As Object)
' Turn off Log Viewer for this example
SetOption(IOptionName.BRING_UP_LOGVIEWER, False)
'Start Classics Java Application
StartApp("ClassicsJavaA")
' Wait for tree to appear
Tree2().WaitForExistence()
' Display available test data types available from tree
System.Console.WriteLine(String.Format("Available Tree Data Types: {0}", Tree2().GetTestDataTypes()))
' Declare variables for tree
Dim CdTree As ITestDataTree
Dim CdTreeNodes As ITestDataTreeNodes
Dim CdTreeNode() As ITestDataTreeNode
' Variables to hold tree data
CdTree = Tree2().GetTestData("tree")
CdTreeNodes = CdTree.GetTreeNodes()
CdTreeNode = CdTreeNodes.GetRootNodes()
' Print out total number of nodes
System.Console.WriteLine("Tree Total Node Count: " + CdTreeNodes.GetNodeCount())
System.Console.WriteLine("Tree Root Node Count : " + CdTreeNodes.GetRootNodeCount())
' Iterate through tree branches; this is a recursive method.
Dim I As Integer
For I = 0 To CdTreeNode.Length - 1
ShowTree(CdTreeNode(I), 0)
Next I
' Shut down Classics Java Application
ClassicsJava(ANY, MAY_EXIT).Close()
End Function
Public Sub ShowTree(ByVal Node As ITestDataTreeNode, ByVal _
Indent As Integer)
' Recursive method to print out tree nodes with proper
' indenting.
' Determine number of tabs to use - to properly indent tree
Dim TabCount As Integer
IIf(Indent < Tabs.Length(), TabCount = Indent, TabCount = Tabs.Length())
' Print out node name + number of children
System.Console.WriteLine(Tabs.Substring(0, TabCount) + Node.GetNode() + " (" + Node.GetChildCount() + " Children)")
' Determine if node has children; recursively call this same
' method to print out child nodes.
Dim Children() As ITestDataTreeNode = Node.GetChildren()
Dim ChildCount As Integer
IIf(ChildCount <> 0, ChildCount = Children.Length, ChildCount = 0)
Dim I As Integer
For I = 0 To ChildCount - 1
ShowTree(Children(I), Indent+1)
Next I
End Sub
' String of tabs used to indent tree view
Const Tabs As String = _
"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
End Class
In der ersten Anzeige dieser Anwendung finden Sie eine Java Swing JTree-Komponente mit fünf Komponisten. Auf der nächsten Ebene darunter werden die verfügbaren CDs des ausgewählten Komponisten aufgelistet. Mit dem Code in diesem Beispiel werden die Werte aus allen Verzweigungen der Baumstruktur extrahiert und im Konsolfenster angezeigt.
Im ersten Schritt verwenden Sie die Methode GetTestData, um die Daten aus der Steuerung zu extrahieren. Dazu wird folgende Syntax verwendet:
Dim CdTree As ITestDataTree
CdTree = Tree2().GetTestData("tree")
Im nächsten Schritt wird eine Feldgruppe mit allen Knoten in der Baumstruktur erstellt. Gehen Sie dazu wie folgt vor:
Dim CdTreeNodes As ITestDataTreeNodes
Dim CdTreeNode As ITestDataTreeNode()
CdTreeNodes = CdTree.GetTreeNodes()
CdTreeNode = CdTreeNodes.GetRootNodes()
Beachten Sie, dass dieser Prozess aus zwei Schritten besteht. Zunächst müssen Sie die Methode GetTreeNodes anwenden, um ein TreeNodes-Objekt zu erstellen. Anschließend rufen Sie die Methode GetRootNodes auf, um eine Feldgruppe mit den Stammknoten für die Baumstruktur zu extrahieren.
Anhand der Knoten in der Baumstruktur können Sie mit einer Rekursion jeden einzelnen Knoten durchlaufen und seinen Wert sowie die Anzahl direkt untergeordneter Elemente bestimmen. Dazu müssen Sie die Rekursionsmethode ShowTree anwenden. Bei einer Rekursionsmethode handelt es sich um eine Methode, die sich selbst aufruft. Mit dieser Methode können Sie sich problemlos durch eine Baumstruktur bewegen. Um den Wert des Knotens zu extrahieren, müssen Sie die Methode GetNode anwenden. Extrahieren Sie die im Knoten enthaltenen untergeordneten Elemente mit der Methode GetChildCount. In diesem Beispiel wird dazu folgender Code verwendet:
System.Console.WriteLine(Tabs.Substring(0, TabCount) + Node.GetNode() + " (" + Node.GetChildCount() + " Children)")
Beachten Sie die zusätzliche Codierung in der angepassten Methode ShowTree, die einen formatierten Ausdruck ermöglicht, bei dem Tabulatoren zur Darstellung der Einrückungen in der Baumstruktur verwendet werden.