diff options
author | Oliver Bolte <obo@openoffice.org> | 2008-07-25 06:48:14 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2008-07-25 06:48:14 +0000 |
commit | 1c739d67e7971eca360d02998ffec5c3e11da5b8 (patch) | |
tree | 3af86aa7c6b341ba7541e0f0eb0b27edc8b1a590 /dbaccess/qa | |
parent | 559f59c2180f9ae237e34bd9a101395b20addedc (diff) |
INTEGRATION: CWS dba30g (1.1.4); FILE ADDED
2008/07/22 06:52:05 fs 1.1.4.2: copying following changes from CWS dba30h to CWS dba30g:
2008/07/21 10:07:45 fs 1.1.2.1: #i91857#
2008/07/21 10:07:45 fs 1.1.4.1: file Parser.java was added on branch cws_dev300_dba30g on 2008-07-22 06:52:05 +0000
Diffstat (limited to 'dbaccess/qa')
-rw-r--r-- | dbaccess/qa/complex/dbaccess/Parser.java | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/dbaccess/qa/complex/dbaccess/Parser.java b/dbaccess/qa/complex/dbaccess/Parser.java new file mode 100644 index 000000000..d08c57fa8 --- /dev/null +++ b/dbaccess/qa/complex/dbaccess/Parser.java @@ -0,0 +1,96 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: Parser.java,v $ + * $Revision: 1.2 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.dbaccess; + +import com.sun.star.sdb.XSingleSelectQueryComposer; +import com.sun.star.sdbc.SQLException; +import com.sun.star.uno.Exception; + +public class Parser extends CRMBasedTestCase +{ + // -------------------------------------------------------------------------------------------------------- + public String[] getTestMethodNames() + { + return new String[] { + "checkJoinSyntax" + }; + } + + // -------------------------------------------------------------------------------------------------------- + public String getTestObjectName() + { + return "Parser"; + } + + // -------------------------------------------------------------------------------------------------------- + protected void createTestCase() + { + try + { + super.createTestCase(); + m_database.getDatabase().getDataSource().createQuery( "query products", "SELECT * FROM \"products\"" ); + } + catch ( Exception e ) + { + e.printStackTrace( System.err ); + assure( "caught an exception (" + e.getMessage() + ") while creating the test case", false ); + } + } + + // -------------------------------------------------------------------------------------------------------- + /** verifies that aliases for inner queries work as expected + */ + public void checkJoinSyntax() throws Exception + { + XSingleSelectQueryComposer composer = createQueryComposer(); + + // feed the composer with some statements. If any of those cannot be parsed, the composer + // will throw an exception - which is a regression then + composer.setQuery( + "SELECT \"categories\".\"Name\", " + + "\"products\".\"Name\" " + + "FROM \"products\" RIGHT OUTER JOIN \"categories\" AS \"categories\" ON \"products\".\"CategoryID\" = \"categories\".\"ID\"" ); + + // just to be sure the composer *really* parses upon setting the query: feed it with + // an unparseable statement + boolean caughtExpected = false; + try + { + composer.setQuery( "NONSENSE" ); + } + catch( SQLException e ) + { + caughtExpected = true; + } + assure( "pre-condition not met: parser should except on unparseable statements, else the complete" + + "test is bogus!", caughtExpected ); + } + +} |