net.sf.farrago.test
Class FarragoSqlOperatorsSuite.FarragoSqlTester

java.lang.Object
  extended by org.eigenbase.sql.test.AbstractSqlTester
      extended by net.sf.farrago.test.FarragoSqlOperatorsSuite.FarragoSqlTester
All Implemented Interfaces:
SqlTester
Enclosing class:
FarragoSqlOperatorsSuite

protected static class FarragoSqlOperatorsSuite.FarragoSqlTester
extends AbstractSqlTester

Implementation of AbstractSqlTester, leveraging connection setup and result set comparison from the class FarragoTestCase.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eigenbase.sql.test.AbstractSqlTester
AbstractSqlTester.StringTypeChecker
 
Nested classes/interfaces inherited from interface org.eigenbase.sql.test.SqlTester
SqlTester.TypeChecker, SqlTester.VmName
 
Field Summary
private  FarragoTestCase farragoTest
          Helper.
private  FarragoCalcSystemTest.VirtualMachine vm
          The virtual machine this test is targeted at.
private  boolean vmCanImplement
          Whether this virtual machine can implement this operator.
 
Fields inherited from class org.eigenbase.sql.test.AbstractSqlTester
AnyTypeChecker, BooleanTypeChecker, IntegerTypeChecker
 
Constructor Summary
private FarragoSqlOperatorsSuite.FarragoSqlTester(FarragoCalcSystemTest.VirtualMachine vm)
           
protected FarragoSqlOperatorsSuite.FarragoSqlTester(FarragoCalcSystemTest.VirtualMachine vm, FarragoTestCase farragoTest)
           
 
Method Summary
(package private)  void check(FarragoCalcSystemTest.VirtualMachine vm, SqlOperator operator, String query, SqlTester.TypeChecker typeChecker, Object result, double delta)
           
 void check(String query, SqlTester.TypeChecker typeChecker, Object result, double delta)
          Tests that a SQL query returns a single column with the given type.
(package private)  void checkColumnType(FarragoCalcSystemTest.VirtualMachine vm, SqlOperator operator, String query, String type)
           
 void checkColumnType(String query, String type)
          Checks that a query returns one column of an expected type.
(package private)  void checkFails(FarragoCalcSystemTest.VirtualMachine vm, String expression, String expectedError, boolean runtime)
          Checks that a scalar expression fails at validate time or runtime on a given virtual machine.
 void checkFails(String expression, String expectedError, boolean runtime)
          Tests that a scalar SQL expression fails at run time.
private static boolean contains(SqlTester.VmName[] vmNames, String vm)
           
private  BasicSqlType getColumnType(ResultSetMetaData md, int column)
           
 void setFor(SqlOperator operator, SqlTester.VmName... unimplementedVmNames)
          Declares that this test is for a given operator.
private static RuntimeException wrap(Exception e)
           
 
Methods inherited from class org.eigenbase.sql.test.AbstractSqlTester
buildQuery, checkAgg, checkBoolean, checkNull, checkScalar, checkScalarApprox, checkScalarExact, checkScalarExact, checkString, checkType, checkWinAgg, generateAggQuery, generateWinAggQuery, getFor, getTypeString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

farragoTest

private final FarragoTestCase farragoTest
Helper.


vm

private final FarragoCalcSystemTest.VirtualMachine vm
The virtual machine this test is targeted at.


vmCanImplement

private boolean vmCanImplement
Whether this virtual machine can implement this operator.

Constructor Detail

FarragoSqlOperatorsSuite.FarragoSqlTester

private FarragoSqlOperatorsSuite.FarragoSqlTester(FarragoCalcSystemTest.VirtualMachine vm)
                                           throws Exception
Throws:
Exception

FarragoSqlOperatorsSuite.FarragoSqlTester

protected FarragoSqlOperatorsSuite.FarragoSqlTester(FarragoCalcSystemTest.VirtualMachine vm,
                                                    FarragoTestCase farragoTest)
                                             throws Exception
Throws:
Exception
Method Detail

setFor

public void setFor(SqlOperator operator,
                   SqlTester.VmName... unimplementedVmNames)
Description copied from interface: SqlTester
Declares that this test is for a given operator. So we can check that all operators are tested.

Specified by:
setFor in interface SqlTester
Overrides:
setFor in class AbstractSqlTester
Parameters:
operator - Operator
unimplementedVmNames - Names of virtual machines for which this

contains

private static boolean contains(SqlTester.VmName[] vmNames,
                                String vm)

checkFails

public void checkFails(String expression,
                       String expectedError,
                       boolean runtime)
Description copied from interface: SqlTester
Tests that a scalar SQL expression fails at run time.

Parameters:
expression - SQL scalar expression
expectedError - Pattern for expected error. If !runtime, must include an error location.
runtime - If true, must fail at runtime; if false, must fail at validate time

checkColumnType

public void checkColumnType(String query,
                            String type)
Description copied from interface: SqlTester
Checks that a query returns one column of an expected type. For example, checkType("VALUES (1 + 2)", "INTEGER NOT NULL").

Parameters:
query - Query expression
type - Type string

check

public void check(String query,
                  SqlTester.TypeChecker typeChecker,
                  Object result,
                  double delta)
Description copied from interface: SqlTester
Tests that a SQL query returns a single column with the given type. For example,
check("VALUES (1 + 2)", "3", SqlTypeName.Integer);

If result is null, the expression must yield the SQL NULL value. If result is a Pattern, the result must match that pattern.

Parameters:
query - SQL query
typeChecker - Checks whether the result is the expected type; must not be null
result - Expected result
delta - The acceptable tolerance between the expected and actual

checkFails

void checkFails(FarragoCalcSystemTest.VirtualMachine vm,
                String expression,
                String expectedError,
                boolean runtime)
          throws SQLException
Checks that a scalar expression fails at validate time or runtime on a given virtual machine.

Throws:
SQLException

check

void check(FarragoCalcSystemTest.VirtualMachine vm,
           SqlOperator operator,
           String query,
           SqlTester.TypeChecker typeChecker,
           Object result,
           double delta)
     throws Exception
Throws:
Exception

getColumnType

private BasicSqlType getColumnType(ResultSetMetaData md,
                                   int column)
                            throws SQLException
Throws:
SQLException

checkColumnType

void checkColumnType(FarragoCalcSystemTest.VirtualMachine vm,
                     SqlOperator operator,
                     String query,
                     String type)
               throws SQLException
Throws:
SQLException

wrap

private static RuntimeException wrap(Exception e)