blob: 79e49d1a1b8bc16f14a0c7f4ca44c0b4005a5761 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<!--NewPage-->
<HTML>
<head>
<!-- Generated by javadoc on Tue Mar 16 12:02:32 CET 2004 -->
<TITLE>
OOoRunner: Class MultiMethodTest
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
</head>
<body BGCOLOR="white">
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MultiMethodTest.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
OOoRunner test harness</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../lib/DynamicClassLoader.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../lib/MultiPropertyTest.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MultiMethodTest.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
lib</FONT>
<BR>
Class MultiMethodTest</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">java.lang.Object</A>
|
+--<B>lib.MultiMethodTest</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../lib/MultiPropertyTest.html">MultiPropertyTest</A></DD>
</DL>
<HR>
<DL>
<DT>public class <B>MultiMethodTest</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></DL>
<P>
The class supports method based interface tests development.
<p>There are some points that should be fulfilled in a subclass to work
correctly in the multi-method framework:
1. each subclass schould define a public field named oObj of type tested
by the subclass, e.g. 'public XText oObj;'. That field will be initialized
by the MultiMethodTest code with the instance of the interface to test.
In a case of service testing the field type should be XPropertySet.
2. for the test of each method of the tested interface(or a property in the
case of service testing) should be method with the following signature
provided: 'public void _<method name>()', e.g. 'public void _getText()'.
The methods will be called by MultiMethodText code using reflection API
for each method in the interface description.
3. to set status for a call 'tRes.tested(String method,
boolean result)' should be used. For example 'tRes.tested("getText()",
true)'. Also 'tRes.assert(String assertion, boolean result)' call can
be used. Note, that one can call the methods not neccesarily from the
test for the tested method, but from other method tests too (in the
MultiMethodTest subclass). See also TestResult and MultiMethodTest.tRes
documentation.
4. the before() and after() methods can be overriden to perform some
actions, accordingly, before and after calling the test methods.
5. besides tRes, there are some fields initialized in the MultiMethodTest,
that can be used for implementing tests:
- tEnv contains the environment tested
- tParam contains parameters of the test
- log a writer to log information about the test
<P>
<DL>
<DT><B>See Also: </B><DD><A HREF="../lib/TestResult.html"><CODE>TestResult</CODE></A></DL>
<HR>
<P>
<!-- ======== INNER CLASS SUMMARY ======== -->
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../share/DescEntry.html">DescEntry</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#entry">entry</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains the Description for the test
it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/PrintWriter.html">PrintWriter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#log">log</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains a writer to log an information about the interface testing, to
allows for tests to access it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../lib/TestEnvironment.html">TestEnvironment</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#tEnv">tEnv</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains the TestEnvironment being tested, to allow for tests to access
it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../lib/TestParameters.html">TestParameters</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#tParam">tParam</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains the TestParameters for the tests, to allow for tests to access
it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../lib/TestResult.html">TestResult</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#tRes">tRes</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains the TestResult instance for the interface test to collect
information about methods test.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#MultiMethodTest()">MultiMethodTest</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#after()">after</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is called after calling method tests.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#before()">before</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is called before calling method tests, but after initialization.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#callMethod(java.lang.String)">callMethod</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just calls the <code>method</code> test.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#disposeEnvironment()">disposeEnvironment</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disposes the current test environment, which was corrupted by the test.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#disposeEnvironment(lib.TestEnvironment)">disposeEnvironment</A></B>(<A HREF="../lib/TestEnvironment.html">TestEnvironment</A>&nbsp;tEnv)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disposes the test environment, which was corrupted by the test.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#executeMethod(java.lang.String)">executeMethod</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the <code>method</code> was called, and if not, call it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#getInterfaceName()">getInterfaceName</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/reflect/Method.html">Method</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#getMethodFor(java.lang.String)">getMethodFor</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds a testing method for the <code>method</code> of the interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../lib/Status.html">Status</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#getStatusFor(java.lang.String)">getStatusFor</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#getTestedClassName()">getTestedClassName</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#invokeTestMethod(java.lang.reflect.Method, java.lang.String)">invokeTestMethod</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/reflect/Method.html">Method</A>&nbsp;meth,
<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;methName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes a test method of the subclass using reflection API.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#isCalled(java.lang.String)">isCalled</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the <code>method</code> test has been already called.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#isOptional(java.lang.String)">isOptional</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the <code>method</code> is optional in the service.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#requiredMethod(java.lang.String)">requiredMethod</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calling of the method indicates that the <code>method</code> test should
be called.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../lib/TestResult.html">TestResult</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#run(share.DescEntry, lib.TestEnvironment, lib.TestParameters)">run</A></B>(<A HREF="../share/DescEntry.html">DescEntry</A>&nbsp;entry,
<A HREF="../lib/TestEnvironment.html">TestEnvironment</A>&nbsp;tEnv,
<A HREF="../lib/TestParameters.html">TestParameters</A>&nbsp;tParam)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runs the interface test: its method tests.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../lib/Status.html">Status</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#setField(java.lang.String, java.lang.Object)">setField</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;fieldName,
<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A>&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes <code>fieldName</code> of the subclass with
<code>value</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#setStatus(java.lang.String, lib.Status)">setStatus</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;methName,
<A HREF="../lib/Status.html">Status</A>&nbsp;methStatus)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a method status.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../lib/MultiMethodTest.html#setSubStates(java.lang.String)">setSubStates</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;msg)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sets the substates</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#clone()">clone</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#finalize()">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#getClass()">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notify()">notify</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#toString()">toString</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait()">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long)">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long, int)">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="tEnv"><!-- --></A><H3>
tEnv</H3>
<PRE>
protected <A HREF="../lib/TestEnvironment.html">TestEnvironment</A> <B>tEnv</B></PRE>
<DL>
<DD>Contains the TestEnvironment being tested, to allow for tests to access
it.</DL>
<HR>
<A NAME="tParam"><!-- --></A><H3>
tParam</H3>
<PRE>
protected <A HREF="../lib/TestParameters.html">TestParameters</A> <B>tParam</B></PRE>
<DL>
<DD>Contains the TestParameters for the tests, to allow for tests to access
it.</DL>
<HR>
<A NAME="entry"><!-- --></A><H3>
entry</H3>
<PRE>
protected <A HREF="../share/DescEntry.html">DescEntry</A> <B>entry</B></PRE>
<DL>
<DD>Contains the Description for the test
it.</DL>
<HR>
<A NAME="log"><!-- --></A><H3>
log</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/PrintWriter.html">PrintWriter</A> <B>log</B></PRE>
<DL>
<DD>Contains a writer to log an information about the interface testing, to
allows for tests to access it.</DL>
<HR>
<A NAME="tRes"><!-- --></A><H3>
tRes</H3>
<PRE>
protected <A HREF="../lib/TestResult.html">TestResult</A> <B>tRes</B></PRE>
<DL>
<DD>Contains the TestResult instance for the interface test to collect
information about methods test.</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="MultiMethodTest()"><!-- --></A><H3>
MultiMethodTest</H3>
<PRE>
public <B>MultiMethodTest</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="disposeEnvironment(lib.TestEnvironment)"><!-- --></A><H3>
disposeEnvironment</H3>
<PRE>
public void <B>disposeEnvironment</B>(<A HREF="../lib/TestEnvironment.html">TestEnvironment</A>&nbsp;tEnv)</PRE>
<DL>
<DD>Disposes the test environment, which was corrupted by the test.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tEnv</CODE> - the environment to dispose</DL>
</DD>
</DL>
<HR>
<A NAME="disposeEnvironment()"><!-- --></A><H3>
disposeEnvironment</H3>
<PRE>
public void <B>disposeEnvironment</B>()</PRE>
<DL>
<DD>Disposes the current test environment, which was corrupted by the test.<DD><DL>
<DT><B>See Also: </B><DD><A HREF="../lib/MultiMethodTest.html#disposeEnvironment(lib.TestEnvironment)"><CODE>disposeEnvironment(TestEnvironment)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="run(share.DescEntry, lib.TestEnvironment, lib.TestParameters)"><!-- --></A><H3>
run</H3>
<PRE>
public <A HREF="../lib/TestResult.html">TestResult</A> <B>run</B>(<A HREF="../share/DescEntry.html">DescEntry</A>&nbsp;entry,
<A HREF="../lib/TestEnvironment.html">TestEnvironment</A>&nbsp;tEnv,
<A HREF="../lib/TestParameters.html">TestParameters</A>&nbsp;tParam)</PRE>
<DL>
<DD>Runs the interface test: its method tests. First, it initializes some
of MultiMethodTest fields, like tRes, log, tEnv, etc. Then, it queries
the tested interface and initializes 'oObj' field (defined in a
subclass). Before calling method tests, before() method calles to allow
initialization of s stuff before testing. Then, the method tests are
called. After them, after() method is called, to allow cleaning up the
stuff initialized in before() and test methods.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tEnv</CODE> - the environment to test<DD><CODE>ifcState</CODE> - the interface test state<DD><CODE>tParam</CODE> - the parameters of the test<DT><B>See Also: </B><DD><A HREF="../lib/MultiMethodTest.html#before()"><CODE>before()</CODE></A>,
<A HREF="../lib/MultiMethodTest.html#after()"><CODE>after()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="before()"><!-- --></A><H3>
before</H3>
<PRE>
protected void <B>before</B>()</PRE>
<DL>
<DD>Is called before calling method tests, but after initialization.
Subclasses may override to perform actions before method tests.</DL>
<HR>
<A NAME="after()"><!-- --></A><H3>
after</H3>
<PRE>
protected void <B>after</B>()</PRE>
<DL>
<DD>Is called after calling method tests. Subclasses may override
to perform actions after method tests.</DL>
<HR>
<A NAME="getTestedClassName()"><!-- --></A><H3>
getTestedClassName</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getTestedClassName</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Returns:</B><DD>the name of the interface or the service tested.</DL>
</DD>
</DL>
<HR>
<A NAME="setStatus(java.lang.String, lib.Status)"><!-- --></A><H3>
setStatus</H3>
<PRE>
protected void <B>setStatus</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;methName,
<A HREF="../lib/Status.html">Status</A>&nbsp;methStatus)</PRE>
<DL>
<DD>Sets a method status.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>methName</CODE> - the method name to set status<DD><CODE>methStatus</CODE> - the status to set to the method</DL>
</DD>
</DL>
<HR>
<A NAME="setSubStates(java.lang.String)"><!-- --></A><H3>
setSubStates</H3>
<PRE>
protected void <B>setSubStates</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;msg)</PRE>
<DL>
<DD>sets the substates</DL>
<HR>
<A NAME="isOptional(java.lang.String)"><!-- --></A><H3>
isOptional</H3>
<PRE>
protected boolean <B>isOptional</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Checks if the <code>method</code> is optional in the service.</DL>
<HR>
<A NAME="isCalled(java.lang.String)"><!-- --></A><H3>
isCalled</H3>
<PRE>
protected boolean <B>isCalled</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Checks if the <code>method</code> test has been already called.</DL>
<HR>
<A NAME="getStatusFor(java.lang.String)"><!-- --></A><H3>
getStatusFor</H3>
<PRE>
protected <A HREF="../lib/Status.html">Status</A> <B>getStatusFor</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD><DL>
<DT><B>Returns:</B><DD>the status set to the <code>method</code> test, if it has been
set, <tt>null</tt> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="requiredMethod(java.lang.String)"><!-- --></A><H3>
requiredMethod</H3>
<PRE>
protected void <B>requiredMethod</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Calling of the method indicates that the <code>method</code> test should
be called. The method checks this and if it is not called, calls it.
If the method is failed or skipped, it throws StatusException.</DL>
<HR>
<A NAME="executeMethod(java.lang.String)"><!-- --></A><H3>
executeMethod</H3>
<PRE>
protected void <B>executeMethod</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Checks if the <code>method</code> was called, and if not, call it.
On contrary to requiredMethod(), he method doesn't check its status.</DL>
<HR>
<A NAME="callMethod(java.lang.String)"><!-- --></A><H3>
callMethod</H3>
<PRE>
protected void <B>callMethod</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Just calls the <code>method</code> test.</DL>
<HR>
<A NAME="invokeTestMethod(java.lang.reflect.Method, java.lang.String)"><!-- --></A><H3>
invokeTestMethod</H3>
<PRE>
protected void <B>invokeTestMethod</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/reflect/Method.html">Method</A>&nbsp;meth,
<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;methName)</PRE>
<DL>
<DD>Invokes a test method of the subclass using reflection API. Handles
the method results and sets its status.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>meth</CODE> - the subclass' method to invoke<DD><CODE>methName</CODE> - the name of the method</DL>
</DD>
</DL>
<HR>
<A NAME="getMethodFor(java.lang.String)"><!-- --></A><H3>
getMethodFor</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/reflect/Method.html">Method</A> <B>getMethodFor</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;method)</PRE>
<DL>
<DD>Finds a testing method for the <code>method</code> of the interface.<DD><DL>
<DT><B>Returns:</B><DD>the testing method, if found, <tt>null</tt> otherwise</DL>
</DD>
</DL>
<HR>
<A NAME="getInterfaceName()"><!-- --></A><H3>
getInterfaceName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getInterfaceName</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Returns:</B><DD>the name of the interface tested</DL>
</DD>
</DL>
<HR>
<A NAME="setField(java.lang.String, java.lang.Object)"><!-- --></A><H3>
setField</H3>
<PRE>
protected <A HREF="../lib/Status.html">Status</A> <B>setField</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;fieldName,
<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A>&nbsp;value)</PRE>
<DL>
<DD>Initializes <code>fieldName</code> of the subclass with
<code>value</code>.<DD><DL>
<DT><B>Returns:</B><DD>Status describing the result of the operation.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MultiMethodTest.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
OOoRunner test harness</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../lib/DynamicClassLoader.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../lib/MultiPropertyTest.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MultiMethodTest.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->
<HR>
</body>
</HTML>