Iterando por meio de Itens em um Controle de Árvore Utilizando o Método getTestData

Este tópico fornece um exemplo de como utilizar o método getTestData do Functional Tester para acessar através de programação os valores nas ramificações de um controle de árvore.

O exemplo a seguir testa em relação ao aplicativo Classics Java:

import resources.GetTreeDataExampleHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.script.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;

/**
 * Description   : Functional Test Script
 * @author Administrator
 */
public class GetTreeDataExample extends GetTreeDataExampleHelper
{
	/**
	* Script Name   : GetTreeDataExample
	 * Generated     : Jul 14, 2006 4:46:31 PM
	 * Description   : Functional Test Script
	 * Original Host : WinNT Version 5.1  Build 2600 (S)
	 * 
	 * @since  2006/07/14
	 * @author Administrator
	 */
public void testMain (Object[] args)
 	{
	//Iniciar o Aplicativo Classics Java
	  startApp("ClassicsJavaA");
		
// Quadro: ClassicsCD		tree2().waitForExistence();
		
	//Exibir tipos de dados de teste disponíveis na árvore
		System.out.println ("Available Tree Data Types: " + tree2().getTestDataTypes());
		
	//Declarar variáveis para árvore
	ITestDataTree cdTree;
	ITestDataTreeNodes cdTreeNodes;
	ITestDataTreeNode[] cdTreeNode;

	//Variáveis que receberão dados da árvore
		cdTree = (ITestDataTree)tree2().getTestData("tree");
	cdTreeNodes = cdTree.getTreeNodes();
	cdTreeNode = cdTreeNodes.getRootNodes();

	//Imprimir número total de nós
		System.out.println ("Tree Total Node Count: " + cdTreeNodes.getNodeCount());
		System.out.println ("Tree Root Node Count : " + cdTreeNodes.getRootNodeCount());

	//Repetir por meio de ramificações da árvore; esse é um método recursivo.
	for (int i = 0;i<cdTreeNode.length;++i)
	showTree(cdTreeNode[i], 0);

	//Encerrar o Aplicativo Classics Java
		classicsJava(ANY,MAY_EXIT).close();
		}

	void showTree(ITestDataTreeNode node, int indent)
		{
	//Método recursivo para imprimir nós da árvore com recuo apropriado.

	//Determinar o número de guias a serem utilizadas - para recuar adequadamente a árvore
int tabCount = ( indent < tabs.length() ? indent :
	tabs.length() );

	//Imprimir nome do nó + número de filhos
		System.out.println(tabs.substring(0, tabCount) + node.getNode() + " (" + node.getChildCount() + "children)" );

	//Determinar se o nó tem filhos; chamar recursivamente esse mesmo
	//método para imprimir nós-filhos.
	ITestDataTreeNode[] children = node.getChildren();
int childCount = ( children != null ? children.length : 0 );	for ( int i = 0; i < childCount; ++i )
	showTree(children[i], indent+1);
		}

	//Cadeia de tabulações utilizadas para recuar a visualização em árvore
	final String tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";

}

A primeira tela desse aplicativo é um componente Java Swing JTree que lista cinco criadores. O nível seguinte abaixo lista os CDs disponíveis do compositor selecionado. O código nessa amostra extrai os valores de todas as ramificações da árvore e os exibe na janela de console.

A primeira etapa para extrair os dados é utilizar o método getTestData para extrair os dados do controle. Isso é feito com a seguinte sintaxe:

ITestDataTree cdTree;  
cdTree = (ITestDataTree)tree2().getTestData("tree");

A próxima etapa é criar uma matriz que contenha todos os nós da árvore. Isso é feito da seguinte forma:

ITestDataTreeNodes cdTreeNodes;
ITestDataTreeNode[] cdTreeNode;

cdTreeNodes = cdTree.getTreeNodes();//Encapsula os nós
raízes.
cdTreeNode = cdTreeNodes.getRootNodes();;//Extrai os nós
raízes reais.

Observe que este é um processo de duas etapas. Primeiro, você deve utilizar o método getTreeNodes para retornar um objeto TreeNodes. Em seguida, você pode chamar o método getRootNodes para extrair uma matriz dos nós raízes da árvore.

Com os nós da árvore em mãos, você pode utilizar um método recursivo para passar por cada nó para determinar seu valor e o número de filhos diretos contidos. Isso é feito no método recursivo showTree. Um método recursivo é aquele que chama a si próprio e é uma maneira eficiente de passar por uma estrutura em árvore. Para extrair o valor do nó, utiliza-se o método getNode. Para extrair o número de filhos contidos pelo nó, utiliza-se o método getChildCount. No exemplo, isso é feito com o seguinte código:

System.out.println(tabs.substring(0, tabCount) + node.getNode()+" (" + node.getChildCount() + " children)"); 

Observe que a codificação adicional fornecida no método showTree customizado é para ativar uma impressão formatada utilizando tabulações para indicar o recuo da árvore.


Feedback