<?xml version="1.0" encoding="UTF-8"?><fo:root xmlns:html="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" writing-mode="lr-tb" hyphenate="false" text-align="start" role="html:html"><fo:layout-master-set><fo:simple-page-master page-width="auto" page-height="auto" master-name="all-pages"><fo:region-body margin-top="1in" margin-right="1in" margin-bottom="1in" margin-left="1in" column-count="1" column-gap="12pt"/><fo:region-before region-name="page-header" extent="1in" display-align="before"/><fo:region-after region-name="page-footer" extent="1in" display-align="after"/><fo:region-start extent="1in"/><fo:region-end extent="1in"/></fo:simple-page-master></fo:layout-master-set>
    
    <fo:page-sequence master-reference="all-pages"><fo:title>
			JTiger 2.1 User Documentation
        </fo:title><fo:static-content flow-name="page-header"><fo:block font-size="small" text-align="center" space-before.conditionality="retain" space-before="0.5in">
			JTiger 2.1 User Documentation
        </fo:block></fo:static-content><fo:static-content flow-name="page-footer"><fo:block font-size="small" text-align="center" space-after.conditionality="retain" space-after="0.5in">- <fo:page-number/> -</fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block role="html:body">
        <fo:block font-size="2em" font-weight="bold" space-before="0.67em" space-after="0.67em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h1" text-align="center">
            
                JTiger 2.1 User Documentation
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p" text-align="center">
            
                Build Number: 0376
                <fo:block role="html:br"/>
                Build Time: 2006-07-28 01:50.16.218 CET (GMT +1)
                <fo:block role="html:br"/>
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://jtiger.org/')">http://jtiger.org/</fo:basic-link> 
            
        </fo:block>
        <fo:inline role="html:a" id="contents"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                Contents
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1">1. Introduction</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.1">1.1 This Document</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.2">1.2 What is JTiger?</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.3">1.3 Why use JTiger?</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.4">1.4 System Requirements</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.5">1.5 Download Package Structure</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2">2. Writing Test Fixtures</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2.1">2.1 What is a Test Fixture?</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2.2">2.2 What is a Test Case?</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2.3">2.3 Best Practices</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3">3. Executing Test Fixtures</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.1">3.1 Executing Test Fixtures Using the API</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.2">3.2 Executing Test Fixtures From the Command Line</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.3">3.3 Executing Test Fixtures From the Apache Ant Task</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">3.4 The Set Up Tear Down implementations</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">3.5 The Test Definition implementations</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">3.6 The Fixture Results Handler implementations</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.7">3.7 Halting Test Execution When a Failure Occurs</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.8">3.8 Test Case Categories</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="4">4. Making Assertions in Test Cases</fo:basic-link>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="5">5. The Apache Ant Task</fo:basic-link>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="6">6. Executing JUnit Test Cases</fo:basic-link>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7">7. Annotation Reference</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.1">7.1 Overview</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.2">7.2 Category</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">7.3 ExpectException</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.4">7.4 Fixture</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.5">7.5 Ignore</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.6">7.6 Repeat</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.7">7.7 SetUp</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.8">7.8 TearDown</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.9">7.9 Test</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="8">8. The Self Test Fixtures</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="8.1">8.1 Overview</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="8.2">8.2 The Test Report</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="8.3">8.3 The Code Coverage Report</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9">9. Example Scenario</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9.1">9.1 Overview</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9.2">9.2 Some Simple Test Fixtures</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9.3">9.3 Executing the Test Fixtures From the Command Line</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9.4">9.4 Executing the Test Fixtures From the Apache Ant Task</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="9.5">9.5 Executing the Test Fixtures Using the API</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="10">10. JTiger User Community</fo:basic-link>
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                
                    <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="10.1">10.1 IRC (JTiger live chat)</fo:basic-link>
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="11">11. Future Direction for JTiger</fo:basic-link>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="AppA">Appendix A. Executing JTiger unit test cases using an Integrated Development Environment</fo:basic-link>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="AppB">Appendix B. Credits</fo:basic-link>
            
        </fo:block>
        <fo:inline role="html:a" id="1"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                1. Introduction
            
        </fo:block>
        <fo:inline role="html:a" id="1.1"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                1.1 This Document
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                This document is intended as an introduction to the JTiger unit test framework and tools. This document
                is complemented by the JTiger Javadoc API Documentation, which is included with the JTiger package
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="1.5">download</fo:basic-link>. It is intended that the Javadoc is used as a reference during unit
                test development with JTiger. This document will inevitably contain some redundancy with the Javadoc
                reference material.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                This document is available in several file formats:
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.1"/>
                
                    FO (XML Formatting Objects)
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.2"/>
                
                    HTML (HyperText Markup Language)
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.3"/>
                
                    MIF (Media Interchange Format)
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.4"/>
                
                    PDF (Portable Document Format)
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.5"/>
                
                    PS (PostScript)
                
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.1.6"/>
                
                    TXT (Plain Text)
                
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:inline role="html:a" id="1.2"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                1.2 What is JTiger?
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger is a unit test framework and tools for the Java 2 Platform. The framework provides a useful
                abstraction on which to write unit test fixtures and unit test cases. JTiger tools provide functionality
                that is often desired in software unit testing environments. JTiger development encourages <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://testdriven.com/')">Test Driven
                Development</fo:basic-link>, though it doesn't mandate it, and any unit
                testing software development technique is sufficient. JTiger makes heavy use of the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/index.html')">Java Programming
                Language 1.5 features</fo:basic-link>;
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html')">annotations</fo:basic-link>,
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html')">generics</fo:basic-link>,  <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html')">variable argument
                lists</fo:basic-link>, and more. JTiger encourages developers to
                document unit test fixtures and unit test cases in order to provide a robust, and easily maintained unit
                test and regression harness.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The JTiger framework provides a published and documented API should the need arise to extend its
                functionality. An example of extending the JTiger framework, is the ability to execute test cases that
                are written using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit unit test framework</fo:basic-link>. The
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="6">JUnit plugin implementation classes</fo:basic-link> are included as part of the JTiger framework.
            
        </fo:block>
        <fo:inline role="html:a" id="1.3"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                1.3 Why use JTiger?
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger makes every effort to ensure a robust unit test harness by providing a rich set of tools, and a
                reliable, usable framework on which to develop unit test cases. JTiger is an implementation that is
                based on improvements in software development methodologies, such as eXtreme Programming (XP), which
                have matured since their inception.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger has been implemented using the same techniques that it encourages, specifically, <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://testdriven.com/')">Test Driven
                Development</fo:basic-link>. JTiger includes its own unit test and
                regression harness with 100% method coverage. This aids in new or modified requirements for JTiger that
                arise in the unforeseen future. The JTiger source code base has been designed to ensure the absolute
                maximum possible amount of decoupling of components and encapsulation such that future enhancements will
                not have a negative impact on future versions on JTiger.
            
        </fo:block>
        <fo:inline role="html:a" id="1.4"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                1.4 System Requirements
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger requires that tests are executed using a <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/download.jsp')">Java Virtual Machine version
                1.5</fo:basic-link> or higher. This does not mean that the code
                under test must be written using Java 1.5 language features. The software under test may target any JVM
                version such as 1.2, 1.3 or 1.4. It is merely the test run that must execute under a JVM version 1.5.
                JTiger is capable of executing test cases that have been written using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit test
                framework</fo:basic-link>.
            
        </fo:block>
        <fo:inline role="html:a" id="1.5"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                1.5 Download Package Structure
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.1"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/jtiger.jar</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger Java archive binary file. This file contains the classes that are necessary for
                        using JTiger. Make this file available to your Java Runtime Environment to use JTiger. This
                        typically involves specifying jtiger.jar in the Java classpath.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.2"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/src/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger Java source code directory. This directory contains the source code to JTiger.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.3"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/test-src/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger Java test source directory. This directory contains the source code of the unit test
                        harness for JTiger. This source code is useful for determining how a particular feature of
                        JTiger is intended to be used or how it works and is considered a formal and complete
                        specification of the requirements of JTiger.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.4"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/doc/javadoc/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger Javadoc API documentation directory. This directory contains the Java API
                        documentation to every public JTiger API feature. The JTiger Java API documentaton is intended
                        to be used as a reference when using JTiger. Of particular interest for reference is the package
                        documentation for each JTiger package which gives an overview of the objective of that
                        particular package.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/doc/userdoc/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger user documentation directory. This directory contains this document in a number of
                        different file formats.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.5"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/doc/test-report/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger test result report directory. This directory contains a JTiger test report using the
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">HTML fixture results handler</fo:basic-link>. A 100% success rate in the report
                        indicates that JTiger functions correctly and as specified. You may generate your own test
                        report in the same format by using the JTiger package org.jtiger.report.html. See the package
                        documentation for more details.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.6"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/doc/test-coverage-report/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger test code coverage report directory. This directory contains a report indicating how
                        much of the JTiger source code was executed during unit test execution. The JTiger test source
                        code aims to achieve 100% class coverage and 100% method coverage during unit test execution
                        i.e. all JTiger methods or all JTiger classes are executed at least once during unit test
                        execution.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="1.5.7"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">/samples/</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The JTiger sample source code directory. This directory contains all sample source code that is
                        used in JTiger documentation.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:inline role="html:a" id="2"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                2. Writing Test Fixtures
            
        </fo:block>
        <fo:inline role="html:a" id="2.1"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                2.1 What is a Test Fixture?
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                A JTiger test fixture is a logical grouping of <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2.2">test cases</fo:basic-link>. A JTiger test
                fixture is a single Java class that contains zero or more <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="2.2">test cases</fo:basic-link>, which are
                methods in that class. A simple test fixture with one test case follows:
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">package org.jtiger.samples;

import org.jtiger.framework.Test;
import static org.jtiger.assertion.Basic.assertEqual;

public final class ExampleTestFixture
{
    @Test
    public void exampleTestCase()
    {
        // assert that two plus two equals four.
        assertEqual(4, 2 + 2);
    }
}
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                A JTiger test fixture class may optionally be annotated with
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.4">org.jtiger.framework.Fixture</fo:basic-link>. This annotation is used only for documentation
                purposes - it is not a requirement that test fixtures use it. A test fixture class may specify the
                categories that its test cases are in by using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.2">org.jtiger.framework.Category
                annotation</fo:basic-link>. A test case method may be in zero or more categories. A JTiger
                test fixture class must have a constructor that takes no arguments or a constructor that takes a single
                String argument.
            
        </fo:block>
        <fo:inline role="html:a" id="2.2"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                2.2 What is a Test Case?
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                A JTiger test case method is potentially any method that is present in a test fixture class. A JTiger
                test case method must take no arguments. If a method is specified as a test case method and it takes
                one or more arguments, execution of that test case will have a 'Ignored (Cannot Invoke)' test case
                result. You can specify a method as a test case method by using the default <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">TestDefinition
                implementation</fo:basic-link>, where the method is annotated with the
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.9">org.jtiger.framework.Test</fo:basic-link> annotation. A test case method that has been written
                using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit test framework</fo:basic-link> can be executed by using
                the JUnit <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">TestDefinition implementation</fo:basic-link>, which specifies a test case method as any method
                that has a name beginning with "test". A test case method may have a return value. If the test case
                method has a return value that is not null and the method doesn't throw an exception during test case
                execution, the return value is used as the test case result message. If an exception is thrown during
                test case execution, the exception message is used as the test case result message.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The execution of a JTiger test case method can result in one of six states:
            
        </fo:block>
        <fo:block role="html:div">
            
                <fo:list-block space-before="1em" space-after="1em" role="html:ol">
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>1.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:inline role="html:a" id="2.2.1"/>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Success</fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            
                                The test case method executed successfully without an exception, or, if an exception was
                                expected, the exception occurred. A test case method can specify that it is expecting an
                                exception to occur by using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">org.jtiger.framework.ExpectException</fo:basic-link>
                                annotation.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>2.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:inline role="html:a" id="2.2.2"/>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Ignored (Annotated)</fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            
                                The test case method was not executed because it is annotated with
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.5">org.jtiger.framework.Ignore</fo:basic-link>.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>3.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Ignored (Cannot Invoke)</fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            
                                The test case method was not executed because it does not meet the requirements for a test case
                                method. Specifically, it takes one or more arguments. It is a requirement that a JTiger test
                                case method takes zero arguments.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>4.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:inline role="html:a" id="2.2.3"/>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Failure (Set Up)</fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            
                                The test case method was not executed because it could not be set up correctly. A <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">set up
                                method</fo:basic-link> in the test fixture threw an exception when it was executed.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>5.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:inline role="html:a" id="2.2.4"/>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Failure</fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            
                                The test case method was executed and resulted in failure. A test case method results in failure
                                if an exception occurs during execution that it wasn't expecting. A test case method can specify
                                that it is expecting an exception to occur by using the
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">org.jtiger.framework.ExpectException</fo:basic-link> annotation. If the expected
                                exception occurs, the test case result is 'Success'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>6.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:inline role="html:a" id="2.2.5"/>
                        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">Failure (Tear Down)</fo:block>
                        
                            The test case method was executed, however, it could not be torn down correctly. A <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">tear down
                            method</fo:basic-link> in the test fixture threw an exception when it was executed.
                        
                    </fo:block></fo:list-item-body></fo:list-item>
                </fo:list-block>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                A JTiger test case result is resolved using these rules, in the following order:
            
        </fo:block>
        <fo:block role="html:div">
            
                <fo:list-block space-before="1em" space-after="1em" role="html:ol">
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>1.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.6"/>
                            
                                If the test case method is annotated with <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.5">org.jtiger.framework.Ignore</fo:basic-link>,
                                the test case result is 'Ignored (Annotated)'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>2.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.7"/>
                            
                                If the test case method takes one or more arguments, the test case result is
                                'Ignored (Cannot Invoke)'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>3.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.8"/>
                            
                                If an exception occurs during execution of any of the set up methods in the test fixture, the
                                test case result is 'Failure (Set Up)'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>4.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.9"/>
                            
                                If an exception occurs during execution of any of the tear down methods in the test fixture,
                                which occurs after test case method execution, the test case result is 'Failure (Tear Down)'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>5.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.10"/>
                            
                                If an exception occurs during execution of the test case method and that exception type was not
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">expected</fo:basic-link>, the test case result is 'Failure'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>6.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.11"/>
                            
                                If an exception occurs during execution of the test case method and that exception type was
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">expected</fo:basic-link>, the test case result is 'Success'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>7.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.12"/>
                            
                                If an exception does not occur during execution of the test case method and an exception was
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">expected</fo:basic-link>, the test case result is 'Failure'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                    <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline>8.</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                        <fo:block space-before="1em" space-after="1em" role="html:p">
                            <fo:inline role="html:a" id="2.2.13"/>
                            
                                If an exception does not occur during execution of the test case method and an exception was
                                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">not expected</fo:basic-link>, the test case result is 'Success'.
                            
                        </fo:block>
                    </fo:block></fo:list-item-body></fo:list-item>
                </fo:list-block>
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Following is a test fixture that contains five (5) test cases. After execution of these test cases, each
                has a result of 'Success'. Note that the assertion methods (those whose name begins with "assert") may
                throw a org.jtiger.assertion.AssertionException, however, they never do because all of the assertions
                that are made, hold true.
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">package org.jtiger.samples;

import org.jtiger.framework.Test;
import org.jtiger.framework.ExpectException;
import org.jtiger.assertion.ObjectFactory;
import static org.jtiger.assertion.Basic.assertEqual;
import static org.jtiger.assertion.Serialization.assertSerializes;
import static org.jtiger.assertion.Serialization.assertSerializesEqual;
import static org.jtiger.assertion.ObjectFactoryContract.assertObjectFactoryFillsContract;
import static org.jtiger.assertion.EqualsMethodContract.assertEqualsMethodFillsContract;
import static org.jtiger.assertion.HashCodeMethodContract.assertHashCodeMethodFillsContract;

public final class SomeTestCases
{
    public SomeTestCases()
    {

    }

    @Test
    public void simpleTestCase1()
    {
        // Assert that two plus two equals four.
        assertEqual(4, 2 + 2);
    }

    @Test
    public void simpleTestCase2()
    {
        // Assert that an instance of the Integer
        // class serializes and deserializes.
        assertSerializes(new Integer(7));
    }

    @Test
    public void simpleTestCase3()
    {
        // Assert that an instance of the Integer
        // class serializes and deserializes to be equal.
        assertSerializesEqual(new Integer(7));
    }

    @Test
    public void simpleTestCase4()
    {
        // Assert that the Integer class meets the Object equals
        // and hashCode method contracts.
        // This test is only as good as the test data returned by
        // the ObjectFactory methods.
        final ObjectFactory&lt;Integer&gt; factory = new ObjectFactory&lt;Integer&gt;()
        {
            public Integer newInstanceX()
            {
                return new Integer(7);
            }

            public Integer newInstanceY()
            {
                return new Integer(8);
            }
        };

        // Assert that the test data is valid and meets
        // the ObjectFactory contract.
        assertObjectFactoryFillsContract(factory);
        // Assert that the Object equals method contract is met.
        assertEqualsMethodFillsContract(factory);
        // Assert that the Object hashCode method contract is met.
        assertHashCodeMethodFillsContract(factory);
    }

    @Test
    @ExpectException(NullPointerException.class)
    public void simpleTestCase5()
    {
        // Expect a NullPointerException to occur.
        new String((StringBuffer)null);
    }
}
        </fo:block>
        <fo:inline role="html:a" id="2.3"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                2.3 Best Practices
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.1"/>
                    
                        Use the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.4">org.jtiger.framework.Fixture</fo:basic-link> annotation on test fixtures.
                        Although it is not required, this annotation provides documentation that is used in test
                        reports, and for readers of the test source code.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.2"/>
                    
                        Use the appropriate assertions. For example, when testing for equality, use
                        org.jtiger.assertion.Basic.assertEqual.
                    
                </fo:block>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">package org.jtiger.samples;

import org.jtiger.framework.Test;
import static org.jtiger.assertion.Basic.assertEqual;
import static org.jtiger.assertion.Basic.assertTrue;

public final class PreferredAssertionTestFixture
{
    @Test
    public void preferredTestCase()
    {
        // assert that two plus two equals four.
        // preferred.
        assertEqual(4, 2 + 2);
    }

    @Test
    public void notPreferredTestCase()
    {
        // assert that two plus two equals four.
        // not preferred.
        assertTrue(2 + 2 == 4);
    }
}
                </fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        The appropriate assertion for the task is a more formal specification of the software
                        requirements. It is also less prone to error.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.3"/>
                    
                        Categorize test cases using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.2">org.jtiger.framework.Category</fo:basic-link>
                        annotation. This annotation can be placed on test fixture classes or test case methods. If test
                        cases belong to a category, a subset of them can be executed by passing the appropriate regular
                        expression at test execution time.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.4"/>
                    
                        Use the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.5">org.jtiger.framework.Ignore</fo:basic-link> annotation during test case
                        development instead of commenting out test cases. This means that you will be provided with a
                        test result of 'Ignored (Annotated)' instead of silently ignoring what should have been a test
                        case, in the circumstance that you forget to uncomment it.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.5"/>
                    
                        Use a <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html')">static import</fo:basic-link> for the methods
                        in the assertions package. This results in test cases that are clear and easy to read.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    <fo:inline role="html:a" id="2.3.6"/>
                    
                        Some <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="4">assertions</fo:basic-link> require an instance of ObjectFactory
                        (org.jtiger.assertion.ObjectFactory) as a parameter. The ObjectFactory interface demands that
                        implementations meets certain aspects of a contract, which are specified in the ObjectFactory
                        Javadoc API documentation. Before using an instance of ObjectFactory for making an assertion,
                        assert that your ObjectFactory implementation meets the contract. This can be achieved with a
                        call to the org.jtiger.assertion.ObjectFactoryContract.assertObjectFactoryFillsContract method.
                        This means that any assertions that are made on the ObjectFactory instance can be considered
                        genuine, as opposed to being incorrect because of faulty test data that is returned by the
                        ObjectFactory implementation.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:inline role="html:a" id="3"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                3. Executing Test Fixtures
            
        </fo:block>
        <fo:inline role="html:a" id="3.1"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.1 Executing Test Fixtures Using the API
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Test fixtures can be executed using the JTiger API. The org.jtiger.framework.FixturesRunnerFactory class
                is considered the core of the framework returning instances of org.jtiger.framework.FixturesRunner.
                Using one of these instances, you can run a given configuration
                (org.jtiger.framework.FixturesRunnerConfig) and have a test result
                (org.jtiger.framework.FixtureResults) returned.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Following is a class that contains a main method and is also a test fixture that is executed by the
                fixtures runner. It is strongly recommended that the JTiger Javadoc be used as a reference when
                developing with the JTiger API.
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">package org.jtiger.samples;

import static org.jtiger.framework.FixturesRunnerConfigFactory.newFixturesRunnerConfig;
import static org.jtiger.framework.FixturesRunnerFactory.newFixturesRunner;
import static org.jtiger.framework.SequenceFactory.newSequence;
import static org.jtiger.assertion.Basic.assertTrue;
import static org.jtiger.assertion.Basic.assertFalse;
import org.jtiger.framework.FixturesRunnerConfig;
import org.jtiger.framework.Test;
import org.jtiger.framework.Category;
import org.jtiger.framework.FixtureResults;
import org.jtiger.framework.FixturesRunner;
import org.jtiger.framework.RunnerException;
import org.jtiger.framework.FixtureResult;
import org.jtiger.framework.TestResult;

public final class ExampleAPIUsage
{
    public ExampleAPIUsage()
    {

    }

    // The class that uses the JTiger API is the same
    // class that is used as a test fixture.
    // This is not ideal - typically, the test run would
    // include classes from some other source.
    @Test
    @Category("samples")
    public String testCase()
    {
        assertTrue(true);
        assertFalse(false);
        return "true is true and false is false";
    }

    public static void main(String... args) throws RunnerException
    {
        Class&lt;?&gt;[] fixtureClasses = new Class&lt;?&gt;[]{ExampleAPIUsage.class};

        FixturesRunnerConfig config = newFixturesRunnerConfig(newSequence(fixtureClasses),
            null, null, false, "samples");
        FixturesRunner runner = newFixturesRunner();
        FixtureResults results = runner.run(config);

        for(FixtureResult result : results)
        {
            for(TestResult tr : result)
            {
                System.out.println(tr.getTestResultType() + " : " + tr.getMessage());
            }
        }
    }
}
        </fo:block>
        <fo:inline role="html:a" id="3.2"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.2 Executing Test Fixtures From the Command Line
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Test fixtures can be executed from the command line by passing the configuration information using
                command line arguments. The JTiger Javadoc for the org.jtiger.framework.FixturesRunnerMain class
                provides valuable information for execution from the command line. The JTiger JAR file can be executed
                using the -jar switch, however, remember that any classpath setting (CLASSPATH environment variable or
                -classpath command line switch) is ignored by the JVM system class loader when this switch is used. Two
                example commands follow:
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">java -jar jtiger.jar -fixtureClasses org.jtiger.ant.TestCategory org.jtiger.samples.ExampleAPIUsage -categories samples
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">java -classpath jtiger.jar org.jtiger.framework.FixturesRunnerMain -fixtureClasses org.jtiger.ant.TestCategory
    org.jtiger.samples.ExampleAPIUsage -categories samples -result ~html -resultParams reports
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                If a command line argument is malformed or no command line arguments are given, usage information will
                be sent to the standard error stream. All command line arguments are optional. It is recommended that
                the -fixtureClasses command line argument always be used. The available command line arguments
                correspond to the attributes of an instance of org.jtiger.framework.FixturesRunnerConfig with the
                addition of an implementation of org.jtiger.framework.FixtureResultsHandler to handle the results of the
                test fixture execution. The available command line arguments and their meanings follow:
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.1"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-fixtureClasses</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by one or more test fixture class names whose test case
                        methods are executed during the test run.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.2"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-definitionClass</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by the class name to use that defines a test case method.
                        This class must implement the org.jtiger.framework.<fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">TestDefinition</fo:basic-link>
                        interface, otherwise, the default Test Definition implementation is used. By default, a test
                        case method is defined as one that is annotated with
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.9">org.jtiger.framework.Test</fo:basic-link>.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.3"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-sutdClass</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by the class name to use to perform test case set up and
                        tear down. This class must implement the
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">org.jtiger.framework.SetUpTearDown</fo:basic-link> interface, otherwise, the default
                        Set Up Tear Down implementation is used. By default, test case set up occurs by executing all
                        methods that are annotated with <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.7">org.jtiger.framework.SetUp</fo:basic-link> and test
                        case tear down occurs by executing all methods that are annotated with
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.8">org.jtiger.framework.TearDown</fo:basic-link>.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.4"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-haltOnFailure</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is used to specify whether test execution should halt if a test
                        failure is encountered. The default value is "false".
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.5"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-junit</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is used as a shortcut for specifying that the included test fixtures
                        have been written using the JUnit test
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">framework</fo:basic-link>. If this command line argument is
                        specified, the values of the -definitionClass and -sutdClass command line arguments are ignored,
                        since they are implicitly set to values representing the implementation classes that are used
                        for JUnit test case execution.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.6"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-categories</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by one or more regular expressions of categories of test
                        cases that are to be executed. A test case is put into one or more categories by annotating the
                        test case method or the containing test fixture with
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.2">org.jtiger.framework.Category</fo:basic-link>. By default, all test cases are executed
                        if no categories are specified, including those that do not explicitly specify a category.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.7"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-result</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by the class name that handles the test fixture results.
                        There are four special, case-insensitive values that may be used;
                        "~html", "~xml", "~text" or "~failure" for the name attribute to use the Fixture Results Handler
                        implementations that are included with JTiger. This class must implement the
                        org.jtiger.framework.FixtureResultsHandler interface or be one of the four special values,
                        otherwise, the default <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">Fixture Results Handler implementation</fo:basic-link> is used.
                        By default, fixture results are summarized and sent to the standard output stream.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="3.2.8"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">-resultParams</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This command line argument is followed by one or more parameters that are passed to the fixture
                        results handler implementation. If the -result command line argument is not used, this command
                        line argument is ignored, since the default <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">Fixture Results Handler</fo:basic-link>
                        implementation does not use any parameters that are passed. Some JTiger Fixture Results Handler
                        implementations output a HTML, XML, or  plain text report to a file or directory. The file or
                        directory name is passed as a parameter to the JTiger Fixture Results Handler implementation.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:inline role="html:a" id="3.3"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.3 Executing Test Fixtures From the Apache Ant Task
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Test fixtures can be executed from the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="5">JTiger Apache Ant task</fo:basic-link>, which is
                represented by the org.jtiger.ant.JTigerTask class. The Javadoc for this class provides valuable
                information regarding the attributes and elements of the task. The attributes and elements of this task
                correspond to the attributes of an instance of org.jtiger.framework.FixturesRunnerConfig with the
                addition of an implementation of <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">org.jtiger.framework.FixtureResultsHandler</fo:basic-link> to
                handle the results of the test fixture execution and an element for providing the environment of the
                Java Virtual Machine that is used.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The following example is an excerpt from the Apache Ant build file that is used to execute the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="8">JTiger
                Self Test Fixtures</fo:basic-link>:
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;taskdef name="jtiger" classname="org.jtiger.ant.JTigerTask" classpathref="project.class.path"/&gt;
&lt;jtiger haltonfailure="false"&gt;
    &lt;category regex="org\.jtiger\..*"/&gt;
    &lt;fixtures&gt;
        &lt;fileset dir="test-src"&gt;
            &lt;include name="**/**.java"/&gt;
        &lt;/fileset&gt;
    &lt;/fixtures&gt;
    &lt;result name="~html"&gt;
        &lt;param value="report/test-report"/&gt;
    &lt;/result&gt;
    &lt;java failonerror="true"&gt;
        &lt;classpath refid="project.class.path"/&gt;
    &lt;/java&gt;
&lt;/jtiger&gt;
        </fo:block>
        <fo:inline role="html:a" id="3.4"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.4 The Set Up Tear Down implementations
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Set Up Tear Down implementations are represented by the org.jtiger.framework.SetUpTearDown interface.
                JTiger includes two implementations of this interface; the default implementation and the implementation
                that is used for executing test cases that have been written using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit test
                framework</fo:basic-link>. It is possible to write a custom
                implementation to use for test execution that is invoked at the time of test case set up and test case
                tear down.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The Set Up Tear Down implementation class is returned from the getSutdClass method of the
                org.jtiger.framework.FixturesRunnerConfig class, or null is returned to use the default Set Up Tear Down
                implementation. A custom implementation class must have a constructor that takes no arguments or a
                constructor that takes a single String argument.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The default Set Up Tear Down implementation class is represented by the
                org.jtiger.framework.DefaultSetUpTearDown class. This class performs test case set up by invoking any
                methods that are annotated with <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.7">org.jtiger.framework.SetUp</fo:basic-link> and performs test
                case tear down by invoking any methods that are annotated with
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.8">org.jtiger.framework.TearDown</fo:basic-link>. If there are two or more methods that are
                annotated with @SetUp, or two or more methods that are annotated with @TearDown, it is not guaranteed
                which order the methods will be executed during test case set up or test case tear down.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit</fo:basic-link> <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">Set Up Tear Down
                implementation</fo:basic-link> class is represented by the
                org.jtiger.framework.junit.JUnitSetUpTearDown class. This class performs test case set up by invoking
                the first method in the superclass hierarchy that is called "setUp" and takes no arguments, and performs
                test case tear down by invoking the first method in the superclass hierarchy that is called "tearDown"
                and takes no arguments.
            
        </fo:block>
        <fo:inline role="html:a" id="3.5"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.5 The Test Definition implementations
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Test Definition implementations are represented by the org.jtiger.framework.TestDefinition interface.
                JTiger includes two implementations of this interface; the default implementation and the implementation
                that is used for executing test cases that have been written using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit test
                framework</fo:basic-link>. It is possible to write a custom
                implementation to use for test execution that is invoked to determine how a method is defined as a test
                case.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The Test Definition implementation class is returned from the getDefinitionClass method of the
                org.jtiger.framework.FixturesRunnerConfig class, or null is returned to use the default Test Definition
                implementation. A custom implementation class must have a constructor that takes no arguments or a
                constructor that takes a single String argument.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The default Test Definition implementation class is represented by the
                org.jtiger.framework.DefaultTestDefinition class. This class defines a test case as any method that is
                annotated with <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.9">org.jtiger.framework.Test</fo:basic-link>.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit</fo:basic-link> <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">Test Definition implementation
                class</fo:basic-link> is represented by the org.jtiger.framework.junit.JUnitTestDefinition
                class. This class defines a test case as any method that has a name beginning with "test".
            
        </fo:block>
        <fo:inline role="html:a" id="3.6"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.6 The Fixture Results Handler implementations
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Fixture Results Handler implementations are represented by the
                org.jtiger.framework.FixtureResultsHandler interface. JTiger includes four implementations of this
                interface; the default implementation, the HTML report implementation, the XML report implementation and
                the plain text report implementation.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The default Fixture Results Handler implementation class is represented by the
                org.jtiger.framework.DefaultFixtureResultsHandler class. This class handles test case results by sending
                a summary of the results to the standard output stream. For example,
                "Success: [672] Failure: [0] Ignored: [0]". A custom implementation class must have a constructor that
                takes no arguments or a constructor that takes a single String argument.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The HTML report Fixture Results Handler implementation class is represented by the
                org.jtiger.report.html.HtmlFixtureResultsHandler class. This class handles test case results by creating
                a HTML report in the directory that is passed as a parameter to the Fixture Results Handler. If no
                parameter is passed the current directory is used. The HTML files contain detailed test case result
                information in HTML format. The report index is a file called 'index.html'.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The XML report Fixture Results Handler implementation class is represented by the
                org.jtiger.report.xml.XmlFixtureResultsHandler class. This class handles test case results by producing
                an XML report file. The name of the file is passed as a parameter to the Fixture Results Handler. If no
                parameter is passed a file called 'result.xml' in the current directory is used. The XML file contains
                detailed test case result information in XML format.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The plain text report Fixture Results Handler implementation class is represented by the
                org.jtiger.report.text.TextFixtureResultsHandler class. This class handles test case results by writing
                a plain text file. The name of the file is passed as a parameter to the Fixture Results Handler. If no
                parameter is passed a file called 'result.txt' in the current directory is used. The text file contains
                detailed test case result information in plain text format.
            
        </fo:block>
        <fo:inline role="html:a" id="3.7"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.7 Halting Test Execution When a Failure Occurs
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                If a failure occurs during test execution, any pending test cases can be halted from execution and a
                result returned immediately. By default, test execution is not halted when a failure is encountered. A
                failure is defined as any one of the failure test case results; 'Failure', 'Failure (Set Up)', or
                'Failure (Tear Down)'.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                The halt on failure boolean value is returned from the isHaltOnFailure method of the
                org.jtiger.framework.FixturesRunnerConfig class.
            
        </fo:block>
        <fo:inline role="html:a" id="3.8"/>
        <fo:block font-size="0.83em" font-weight="bold" space-before="1.33em" space-after="1.33em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h5">
            
                3.8 Test Case Categories
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Test cases belong to a category by annotating the test case method with
                <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.2">org.junit.framework.Category</fo:basic-link> or the test fixture class that contains it. A test
                case method is said to be in all of the categories that form the union where the @Category annotation
                appears on the test case method, and its test fixture.
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">package org.jtiger.samples;

import org.jtiger.framework.Category;
import org.jtiger.framework.Test;

@Category({"a", "b"})
public final class ExampleCategory
{
    @Test
    @Category("c")
    public void m1()
    {

    }

    @Test
    public void m2()
    {

    }

    @Test
    @Category({"c", "d"})
    public void m3()
    {

    }
}
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                In the above example, the method 'm1' is in the categories 'a', 'b' and 'c'. The method 'm2' is in the
                categories 'a' and 'b'. The method 'm3' is in the categories 'a', 'b', 'c' and 'd'.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Categories are specified at test execution time as regular expressions. If no categories are specified,
                all test case methods that are in any category will be executed. Test case methods that are in no
                category can be executed only by not specifying any category regular expressions. It is important to
                remember that regular  expressions have characters that are not used as their literal meaning.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                In the above example, given the regular expression, "[cdef]" as a category for execution, the methods
                'm1' and 'm2' will be included because they are the only two methods that are in a category that matches
                the regular expression.
            
        </fo:block>
        <fo:inline role="html:a" id="4"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                4. Making Assertions in Test Cases
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger includes a rich API for making assertions in your test cases. Assertions range from the very
                basic, "assert true", to the complex, "assert the Object equals method contract". The JTiger assertions
                API is represented by the org.jtiger.assertion package. It is strongly recommended that you consult the
                JTiger Javadoc API documentation when using the JTiger assertions.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Assertions typically require some argument on which to make the assertion. For example, the
                "assert true" (org.jtiger.assertion.Basic.assertTrue) assertion takes a single boolean argument. If this
                argument is not true, the test case fails by throwing a org.jtiger.assertion.AssertionException. It is
                not recommended to use an AssertionException in an <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="7.3">@ExpectException</fo:basic-link> annotation
                or to use a java.lang.RuntimeException, java.lang.Exception or java.lang.Throwable with subclasses set
                to the value true if it possible that your test case may throw an AssertionException i.e. you use any of
                the JTiger assertions.
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                All JTiger assertions take a <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html')">variable argument</fo:basic-link>
                list of type java.lang.Object. Any arguments passed have their toString method called and appended in
                sequence to form a single test case message. This message is used in test reports and is available from
                the API when a test result is returned and in JTiger test reports.
            
        </fo:block>
        <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">assertTrue(true);
assertEqual(new Integer(7), new Integer(7), "the Integer 7 is not equal to the Integer 7");
assertNull(null, "null", " is not null");
assertSerializes(new Float(7.6F), new StringBuilder()
    .append("The Float with the value")
    .append(7.6F).append("did not serialize"));
        </fo:block>
        <fo:inline role="html:a" id="5"/>
        <fo:block font-size="1.17em" font-weight="bold" space-before="1em" space-after="1em" keep-with-next.within-column="always" keep-together.within-column="always" role="html:h3">
            
                5. The Apache Ant Task
            
        </fo:block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                JTiger includes an <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://ant.apache.org/')">Apache Ant</fo:basic-link> task for starting a test
                execution from an Apache Ant build file. The JTiger Apache Ant task is represented by the
                org.jtiger.ant.JTigerTask class. The task allows the following elements and attributes:
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.1"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;fixtures&gt; element</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This element may contain zero or more a fixture subelements or zero or more
                        <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://ant.apache.org//manual/CoreTypes/fileset.html')">fileset</fo:basic-link> subelements.
                        This element is used to specify the names of the test fixtures to execute. Files that are
                        matched by <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://ant.apache.org//manual/CoreTypes/fileset.html')">fileset</fo:basic-link>
                        subelements are converted to a class name by removing the .java or .class file extension and
                        changing the directory separators to dots. If a file name does not have the .java or .class
                        suffix, it is ignored. For example, the file name "org/jtiger/MyClass.class" would be converted
                        to the class name "org.jtiger.MyClass". The fixture subelement accepts a single attribute called
                        classname.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.2"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">definitionClass attribute</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This attribute is used to specify the class name to use as the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">Test Definition
                        implementation</fo:basic-link> during test execution. If this attribute is not present,
                        the default <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.5">Test Definition implementation</fo:basic-link> is used.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.3"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">sutdClass attribute</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This attribute is used to specify the class name to use as the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">Set Up Tear Down
                        implementation</fo:basic-link> during test execution. If this attribute is not present,
                        the default <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.4">Set Up Tear Down implementation</fo:basic-link> is used.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.4"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;category&gt; element</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This element may appear zero or more times to specify the test category regular expressions to
                        use during test execution. If no category elements are present, all test cases are executed.
                        This element accepts a single attribute called regex.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.5"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">haltOnFailure attribute</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This attribute is used to specify whether test execution should halt if a test failure is
                        encountered. The default value is "false". This attribute can be set to true by giving it a
                        value of "true", "yes" or "on".
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.6"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">JUnit attribute</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This attribute is used as a shortcut for specifying that the included test fixtures have been
                        written using the <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://www.junit.org/')">JUnit test framework</fo:basic-link>. If this
                        attribute has a value of "true", "yes" or "on", the values of the definitionClass and sutdClass
                        attributes are ignored, since they are implicitly set to values representing the implementation
                        classes that are used for JUnit test case execution.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.7"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;result&gt; element</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This element specifies the class name of the <fo:basic-link text-decoration="underline" color="blue" role="html:a" internal-destination="3.6">Fixture Results Handler</fo:basic-link> to
                        use for test execution. There are four special, case-insensitive values that may be used;
                        "~html", "~xml", "~text" or "~failure" for the name attribute to use the Fixture Results Handler
                        implementations that are included with JTiger. These values are case-insensitive, and each of
                        them requires at least one parameter, which is the name of the file or directory to write the
                        test results report to. A Fixture Results Handler parameter is passed using the param
                        subelement. The param subelement accept a single attribute called value.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.8"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;java&gt; element</fo:block>
                <fo:block space-before="1em" space-after="1em" role="html:p">
                    
                        This element specifies the Java Virtual Machine environment that is used for test execution.
                        The Java Virtual Machine is a forked process from the Java Virtual Machine that the Ant task is
                        running in to provide an independant execution environment. This element provides most, but not
                        all, of the same subelements and attributes as the core <fo:basic-link text-decoration="underline" color="blue" role="html:a" external-destination="url('http://ant.apache.org//manual/CoreTasks/java.html')">Ant &lt;java&gt;
                        task</fo:basic-link>.
                    
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
        </fo:list-block>
        <fo:block space-before="1em" space-after="1em" role="html:p">
            
                Following are some example excerpts from an Apache Ant build file.
            
        </fo:block>
        <fo:list-block space-before="1em" space-after="1em" role="html:ul">
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.9"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;taskdef name="jtiger" classname="org.jtiger.ant.JTigerTask" classpathref="project.class.path"/&gt;
&lt;jtiger junit="true"&gt;
    &lt;fixtures&gt;
        &lt;fileset dir="test-src"&gt;
            &lt;include name="**/**.java"/&gt;
        &lt;/fileset&gt;
    &lt;/fixtures&gt;
    &lt;java failonerror="true"&gt;
        &lt;classpath refid="project.class.path"/&gt;
    &lt;/java&gt;
&lt;/jtiger&gt;
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align="end" wrap-option="no-wrap"><fo:block><fo:inline font="1em serif">•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                <fo:inline role="html:a" id="5.10"/>
                <fo:block font-size="0.83em" font-family="monospace" white-space="pre" space-before="1em" space-after="1em" white-space-collapse="false" linefeed-treatment="preserve" white-space-treatment="preserve" role="html:pre">&lt;taskdef name="jtiger" classname="org.jtiger.ant.JTigerTask" classpathref="project.class.path"/&gt;
&lt;jtiger haltonfailure="true" sutdClass="com.foo.MySetUpTearDown" definitionClass="com.foo.MyTestDefinition"&gt;
    &lt;category regex="Database test cases"/&gt;
    &lt;fixtures&gt;
        &lt;fixture classname="com.foo.MyTestFixture"/&gt;
        &lt;fixture classname="com.foo.MyOtherTestFixture"/&gt;
        &lt;fileset dir="test-src"&gt;
            &lt;include name="**/**.java"/&gt;
        &lt;/fileset&gt;
    &lt;/fixtures&gt;
    &lt;result name="com.foo.MyFixtureResultsHandler"&gt;
        &lt;param value="a value"/&gt;
    &lt;/result&gt;
    &lt;java failonerror="true"&gt;
        &lt;classpath refid="project.class.path"/&gt;
    &lt;/java&gt;
&lt;/jtiger&gt;
                </fo:block>
            </fo:block></fo:list-item-body></fo:list-item>
            <fo:list-item relative-align="baseline" role="html:li"><fo:list-item-label end-indent="label-end()" text-align=