IBM Rational Functional Tester
Version 8.0
IBM Rational Functional Tester Proxy SDK Reference

Project Version 2.3

Package com.rational.test.ft.domain

Provides the proxy classes that directly access objects in the Software Under Test.

See:
          Description

Interface Summary
IChannel Provides a means of executing code that requires thread affinity.
IChannelObject Provide a means of executing code that requires thread affinity.
IDataDriven  
IDomainSite Implements IDomainSite when the proxy represents a site for objects from a separate domain.
IInternalObjectStatus IInternalObjectStatus This interface indicates that a registered object is capable if returning the status (alive or dead) of the object in the system under test.
IMouseActionInfo IMouseActionInfo is passed into the proxy's processMouseEvent method during recording.
IMouseEventInfo This interface is used during Action Recording.
INestedDomain Interface which is used to identify a ProxyTestObject as containing an object which belongs to another domain.
IProxyBase These methods are implemented by all proxies, and may be called from any Channel.
IProxyMonitor Supports this interface, which is handled by the infestation code.
IRadioButtonProxy Radiobutton proxies that desire default data driving from the mappable parent proxy need to implement this interface.
ISetTextCallback  
 

Class Summary
BaseChannel Provides a base channel implementation.
BaseChannelScreen Provides access to the screen for proxies.
ChannelObjectMethodInvoker  
ChannelRunnable An abstract implementation of a runnable interface that can be scheduled for execution on a specific channel.
DescribedObject A DescribedObject is a list of properties created in another domain, or or perhaps even TestContext, which describes an object in the current domain.
DescribedObjectReference DescribedObjectReference represents the reference to a DescribedObject, an known object which exists in another domain.
DescribedObjectValue The value class used to persist a DescribedObjectReference/DescribedObject.
DomainManager  
DomainProxy The base class for all domain proxies.
NestedDomainHelpers  
ProcessDomainImplementation The domain implementation for ProcessTestObjects.
ProcessDomainProxy The class for the Java domain proxy.
ProxyTestObject The true base class for all Java Proxy classes.
ProxyUtilities  
RegisteredDescribedObjectReference A RegisteredDescribedObjectReference is an implementation of RegisteredObjectReference used to deal with DescribedObjectReferences.
RegisteredDescribedObjectReferenceValue This class converts between a RegisteredDescribedObjectReference and a SpyValueClass that contains the same information.
TestDomain Represents the object model - for example, HTML, Java, and Process.
TestDomainImplementation The base class for all domain implementations.
TestObjectRole A brief type name that decorates each test object in the map.
ThreadChannel Implements a channel that provides thread affinity to a GUI thread.
 

Exception Summary
ChannelSwitchException A ChannelSwitchException is thrown when code needs to be executed on the thread of the original channel request rather than the channel associated with the current thread.
ThreadChannel.ChannelRequestQueueFullException  
ThreadChannel.ChannelSendFailureException  
 

Package com.rational.test.ft.domain Description

Provides the proxy classes that directly access objects in the Software Under Test. The base class for all proxies is ProxyTestObject.

These classes are loaded in the Software Under Test, and are not directly called from a script.

TestDomain Overview

A TestDomain is a collection of objects. For example, all Java objects that RFT can test are considered to be in the Java Domain. Similarly, all HTML objects that RFT can test inside of Browsers are considered to be in the HTML Domain.

TestDomainImplementation Overview

While a TestDomain represents a logical collection of objects, the TestDomainImplementation represents a specific instance of a TestDomain. For example, there may be different implementations of an HTML domain to support different browsers.

RFT shields the script from the details of the TestDomainImplementation. For each instance of a TestDomainImplementation, RFT creates a DomainProxy. The test script can find all the current TestDomainImplementations by calling RationalTestScript.getDomains(). This returns an array of TestObjects that give the user access to the DomainProxies. These TestObjects do not need to be unregistered, as the TestDomainImplementations and their proxies manage ther own lifetimes.

ProxyTestObject Overview

A Proxy is a class that understands how to interact with an object in a particular test domain. The base class for all proxies is ProxyTestObject. For instance a proxy may understand how to interact with an object as simple as a file or as complex as a Java graphical control. Rational Functional Test does not understand all objects a tester will want to interact with and utilizes ProxyTestObject instances as the intermediaries between Rational Functional Test and objects being tested.

RFT can be extended by creating new proxies and registering them.

Threading issues

Some proxies access objects that have affinity to a particular thread. For example, the HTML proxies and the SWT proxies have affinity to the UI thread of the application. RFT models the threading using a Channel object. The Proxies access Channel objects using IChannel. RFT asks each proxy what channel it should be called by calling getChannel(). RFT always provides a BaseChannel which executes in a thread other than the UI thread. Proxies that do not have thread affinity should return the BaseChannel from getChannel. UI event-generating methods should not be called on the UI thread, as the events cannot get through to the SUT until the proxy gets off of the UI thread. In general, the proxy needs to return to the BaseChannel to generate the UI events. The BaseChannelScreen class provides a mechanism for returning to the BaseChannel and generating a simple UI action.

Proxy methods that do not have thread affinity

These proxy methods must be callable from any thread.

Audience

This package is for proxy writers - those who wish to customize and extend the RFT testing system.

@since RFT1.0