Package net.sourceforge.sqlunit.handlers

Handler implementations for SQLUnit.

See:
          Description

Class Summary
ArgHandler The ArgHandler takes the JDOM Element representing the arg tag and converts it to a Arg object.
BatchCallHandler The BatchCallHandler class processes the contents of a batchcall tag in the input XML file.
BatchResultHandler The BatchResultHandler class processes the contents of a batchresult tag in the input XML file.
BatchSqlHandler The BatchSqlHandler class processes the contents of a batchsql tag in the input XML file.
BatchTestHandler The BatchTestHandler allows the grouping of a number of Stored Procedure calls and/or SQL statements and a number of expected results from these.
CallHandler The CallHandler class processes the contents of a call tag in the input XML file.
CategoryHandler The CategoryHandler processes the contents of a Category tag in the input SQLUnit XML file.
ClassifiersHandler The ClassifiersHandler processes a JDOM Element representing the classifiers element.
ColHandler The ColHandler processes a JDOM Col element and returns a Col bean.
ConnectionHandler The ConnectionHandler class creates a JDBC connection object given its parameters in the form of a JDOM Element.
ConstructorArgsHandler The ConstructorArgsHandler parses the JDOM Element constructorArgs and processes it to return an array of Arg objects.
DiffHandler The DiffHandler compares result sets from two different SQL statements or stored procedure calls.
DynamicSqlHandler The DynamicSqlHandler class processes the contents of an dynamicSql tag in the input XML file.
EchoHandler Writes an INFO trace to the log file.
ExceptionHandler The Exception Handler parses a JDOM Element representing an exception tag and returns an ExceptionBean object.
FieldHandler Handles a field element, child of a struct element.
ForeachHandler This class implements the handling of the foreach element.
FuncDefHandler The FuncDefHandler processes a Function Definition JDOM Element.
FuncHandler The FuncHandler looks up the named definition from the symbol table and runs it after resolving the query, then returns a result.
IncludeHandler The IncludeHandler reads and executes SQL statements specified in a included file.
JndiHandler The JndiHandler parses the JDOM Element methodArgs and processes it to return an array of Arg objects.
MatchHandler The ResultHandler class parses the XML representing the result object.
MethodArgsHandler The MethodArgsHandler parses the JDOM Element methodArgs and processes it to return an array of Arg objects.
MethodInvokerHandler The MethodInvokerHandler class processes the contents of an methodInvoker tag in the input XML file.
OutParamHandler The OutParamHandler takes the JDOM Element representing the outparam tag and converts it to a OutParam object.
ParamHandler The ParamHandler takes the JDOM Element representing the param tag and converts it to a Param object.
ParamSetHandler The ParamSetHandler takes the JDOM Element representing the paramset tag and converts it to an array of Param objects.
PrepareHandler The PrepareHandler class takes care of setting up data within a test block.
ResultHandler The ResultHandler class parses the XML representing the result object.
ResultSetHandler The ResultSetHandler processes a JDOM ResultSet element and returns a ResultSet bean.
RowHandler The RowHandler processes a JDOM Row element and returns a Row bean.
SetHandler The SetHandler allows setting variables into the Symbol table.
SetupHandler The SetupHandler class handles the setup tag of the XML input file.
SeverityHandler The SeverityHandler processes the contents of the Severity tag in the input XML file.
SkipHandler The SkipHandler class processes the contents of a Skip tag in the input SQLUnit XML file.
SqlHandler The SqlHandler class processes the contents of an sql tag in the input XML file.
StructHandler Handles a struct element.
SubDefHandler The SubDefHandler processes a JDOM Element representing a subroutine definition.
SubHandler The SubHandler is called from within the sub tag.
SubParamHandler The SubParamHandler takes the JDOM Element representing a subparam tag and converts it to a SubParam object.
TeardownHandler The TeardownHandler class handles the instructions in the teardown tag of the XML input file.
TestHandler The TestHandler class is responsible for executing a single test specified by the contents of the test tag in the input XML file.
TypeDefHandler Handles a typedef element, child of a typemap element.
TypeMapHandler Handles a typemap element, child of a typemap element.
 

Package net.sourceforge.sqlunit.handlers Description

Handler implementations for SQLUnit. The SQLUnit package is designed as a set of individual XML handlers for the various elements of the SQLUnit test suite authoring XML. There is a one to one correspondence between the SQLUnit element and the SQLUnit handler class as illustrated in the table below:

XML Element SQLUnit Handler Class
sqlunit
  • connection
  • setup
    • sql
    • include
  • test
    • prepare
    • sql or call
    • result
  • teardown
    • sql
    • include
 
  • net.sourceforge.sqlunit.ConnectionHandler
  • net.sourceforge.sqlunit.SetupHandler
    • net.sourceforge.sqlunit.SqlHandler
    • net.sourceforge.sqlunit.IncludeHandler
  • net.sourceforge.sqlunit.TestHandler
    • net.sourceforge.sqlunit.PrepareHandler
    • net.sourceforge.sqlunit.SqlHandler|CallHandler
    • net.sourceforge.sqlunit.ResultHandler
  • net.sourceforge.sqlunit.TeardownHandler
    • net.sourceforge.sqlunit.SqlHandler
    • net.sourceforge.sqlunit.IncludeHandler

Each handler class reads the JDOM element and extracts the information to pass back to the SQLUnit class. The SQLUnit class is designed as a JUnit test class. The JUnit class contains a single test method called testWrapper() which is responsible for reading the XML file and carrying out the operations specified in the setup element, followed by each test in sequence, followed by the operations in the teardown element. The ConnectionHandler class is called before all the other operations to get a JDBC connection to the database.

All handler classes implement the IHandler interface, which specifies a single process method which takes a JDOM Element org.jdom.Element and a java.sql.Connection object and returns a java.lang.Object. A given handler implementation may not need to return an Object, in which case it must return null. The HandlerFactory uses the handlers.properties Java properties file to instantiate the appropriate instance of a handler given the JDOM Element name.

Apart from the handlers, there are some auxilliary classes that provide utilities to the handlers. The SymbolTable class is a container of variables that are declared within an SQLUnit test script. The DatabaseResult object is a HashMap of fields and values returned from processing a SQL statement or stored procedure, or parsed out of a SQLUnit result element. The key for this HashMap is a DatabaseResultKey which is really a tuple of (resultsetId, rowId, colId) for each column returned by a SQL statement or stored procedure specified by the SQLUnit sql or call elements and parsed out of the SQLUnit result element. The SqlTypeUtils class is responsible for converting between database type to String and back, depending on the method called.

The SQLUnitException class is a common class that is shared by the SQLUnit package. The content of the SQLUnitException error messages is handled by specifying constant Strings in the IErrorCodes interface class.