blob: ab4e7391634b9375974513e670c6ace56fd09a95 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 Actuate Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Actuate Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.datatools.enablement.oda.xml;
import java.util.Properties;
import org.eclipse.datatools.connectivity.oda.IParameterMetaData;
import org.eclipse.datatools.connectivity.oda.IQuery;
import org.eclipse.datatools.connectivity.oda.IResultSet;
import org.eclipse.datatools.connectivity.oda.IResultSetMetaData;
import org.eclipse.datatools.connectivity.oda.OdaException;
import org.eclipse.datatools.enablement.oda.xml.impl.Connection;
import org.eclipse.datatools.enablement.oda.xml.test.util.TestConstants;
/**
*
*/
public class QueryTest extends BaseTest
{
IQuery query;
Connection conn;
String queryText = "book#-TNAME-#book#:#[//book]#:#{book.category;String;/@category}";
protected void setUp( ) throws Exception
{
super.setUp( );
conn = new Connection();
Properties prop = new Properties();
prop.put(Constants.CONST_PROP_FILELIST, TestConstants.SMALL_XML_FILE);
conn.open(prop);
query = conn.newQuery( null );
}
protected void tearDown( ) throws Exception
{
super.tearDown( );
conn.close();
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.prepare(String)'
*/
public void testPrepare( ) throws OdaException
{
try{
query.executeQuery();
fail("should not arrive here");
}catch (OdaException e)
{
}
query.prepare( queryText );
assertNotNull( query.executeQuery() );
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.setProperty(String, String)'
*/
public void testSetProperty( ) throws OdaException
{
try
{
query.setProperty("","");
}catch (UnsupportedOperationException e)
{
fail("Should not arrive here.");
}
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.close()'
*/
public void testClose( ) throws OdaException
{
query.prepare( queryText );
query.setMaxRows( 2 );
query.executeQuery( );
query.close( );
try
{
query.setMaxRows( 3 );
fail( "Should not arrive here" );
}
catch ( OdaException e )
{
}
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.setMaxRows(int)'
*/
public void testSetMaxRows( ) throws OdaException
{
query.prepare( queryText );
query.setMaxRows( 2 );
IResultSet rs = query.executeQuery();
for(int i = 0; i < 2; i ++)
{
rs.next();
}
assertFalse( rs.next());
query.setMaxRows( -20 );
query.prepare( queryText );
rs=query.executeQuery();
int count = 0;
while( rs.next() )
{
count++;
}
assertEquals( count, 4);
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.getMaxRows()'
*/
public void testGetMaxRows( ) throws OdaException
{
query.setMaxRows( 10 );
assertEquals( 10, query.getMaxRows() );
query.setMaxRows( -10 );
assertEquals( 0, query.getMaxRows());
query.setMaxRows( 0 );
assertEquals( 0, 0 );
}
/*
* Test method for 'org.eclipse.datatools.enablement.oda.xml.Query.getMetaData()'
*/
public void testGetMetaData( ) throws OdaException
{
query.prepare( queryText );
IResultSetMetaData rsMetaData = query.getMetaData();
assertNotNull( rsMetaData );
assertEquals( rsMetaData.getColumnCount(), 1);
assertEquals( rsMetaData.getColumnName(1), "book.category");
}
public void testParameter( ) throws OdaException
{
query.prepare( "t1#-TNAME-#t1#:#[//{?p1?}]#:#{c1;String;/@{?p2?}},{{?p0?};String;{?p2?}{?p1?}}" );
IResultSetMetaData rsMetaData = query.getMetaData();
assertNotNull( rsMetaData );
assertEquals( rsMetaData.getColumnCount(), 2);
assertEquals( rsMetaData.getColumnName(1), "c1");
assertEquals( rsMetaData.getColumnName(2), "{?p0?}");
IParameterMetaData pmd = query.getParameterMetaData( );
assertNotNull( pmd );
assertEquals( 2, pmd.getParameterCount( ) );
assertEquals( "p1", pmd.getParameterName( 1 ) );
assertEquals( "p2", pmd.getParameterName( 2 ) );
}
}