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.