El siguiente ejemplo es una prueba contra la aplicación Classics Java:
#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
En la primera pantalla de esta aplicación encontrará un componente Java Swing JTree, con un listado de cinco compositores. El siguiente nivel inferior presenta un listado con los CD disponibles del compositor seleccionado. El código de este ejemplo extrae los valores de todas las ramas del árbol y los muestra en la ventana de la consola.
El primer paso para extraer los datos consiste en utilizar el método GetTestData para extraer los datos desde el control. Esto se efectúa con la sintaxis siguiente:
Dim CdTree As ITestDataTree
CdTree = Tree2().GetTestData("tree")
El paso siguiente consiste en crear una matriz que contenga todos los nodos del árbol. Esto se efectúa de la siguiente manera:
Dim CdTreeNodes As ITestDataTreeNodes
Dim CdTreeNode As ITestDataTreeNode()
CdTreeNodes = CdTree.GetTreeNodes()
CdTreeNode = CdTreeNodes.GetRootNodes()
Tenga en cuenta de que se trata de un proceso de dos pasos. Primero, debe utilizar el método GetTreeNodes para devolver un objeto TreeNodes. A continuación, puede llamar al método GetRootNodes para extraer una matriz de los nodos raíz para el árbol.
Con los tres nodos en cuestión, puede utilizar la recurrencia para recorrer cada nodo para determinar su valor y el número de hijos directos que contiene. Esto se realiza con el método recurrente ShowTree. Un método recurrente es un método que se llama a sí mismo y que constituye una forma eficiente de recorrer una estructura de árbol. Para extraer el valor del nodo se utiliza el método GetNode. Para extraer el número de hijos que contiene un nodo, se utiliza el método GetChildCount. En el ejemplo se efectúa con el siguiente código:
System.Console.WriteLine(Tabs.Substring(0, TabCount) + Node.GetNode() + " (" + Node.GetChildCount() + " Children)")
Tenga en cuenta, que la codificación adicional que se suministra con el método ShowTree personalizado está
previsto para habilitar una impresión formateada mediante tabuladores para indicar el sangrado del árbol.