diff options
author | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:22:24 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:22:24 +0000 |
commit | e1433f8ded1413ffccf78bdaa5e5fcd2294033fe (patch) | |
tree | f5f386a228635ca837309b3f1d5d108402ce3b48 /connectivity | |
parent | ca32f41f5d91fb32fafb21b27e4475bb7182ec8c (diff) |
INTEGRATION: CWS oj4 (1.1.2); FILE ADDED
2003/07/10 07:56:45 oj 1.1.2.3: #i14648# correct octet_length
2003/07/02 13:00:37 oj 1.1.2.2: #i14648# check functions arguments
2003/07/01 12:29:39 oj 1.1.2.1: #i14648# implement numeric and datetime functions as well
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/qa/drivers/dbase/DBaseDateFunctions.java | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/connectivity/qa/drivers/dbase/DBaseDateFunctions.java b/connectivity/qa/drivers/dbase/DBaseDateFunctions.java new file mode 100644 index 000000000000..13c616690483 --- /dev/null +++ b/connectivity/qa/drivers/dbase/DBaseDateFunctions.java @@ -0,0 +1,276 @@ +/************************************************************************* + * + * $RCSfile: DBaseDateFunctions.java,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: obo $ $Date: 2003-09-04 08:22:24 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +package complex.connectivity; + +import complex.connectivity.DBaseDriverTest; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.util.XCloseable; +import com.sun.star.sdbc.*; +import com.sun.star.sdb.*; +import com.sun.star.beans.PropertyValue; +import com.sun.star.beans.XPropertySet; + +import com.sun.star.lang.XMultiServiceFactory; + +import complexlib.ComplexTestCase; + +import java.io.PrintWriter; + +import util.utils; +import java.util.*; +import java.io.*; + + +public class DBaseDateFunctions { + + private String where = "FROM \"biblio\" \"biblio\" where \"Identifier\" = 'BOR02b'"; + private XMultiServiceFactory m_xORB; + private DBaseDriverTest testcase; + public DBaseDateFunctions(XMultiServiceFactory _xORB,DBaseDriverTest _testcase){ + m_xORB = _xORB; + testcase = _testcase; + } + + private void assure(String s,boolean b){ + testcase.assure2(s,b); + } + + public void testFunctions() throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRowSet xRowRes = (XRowSet)UnoRuntime.queryInterface(XRowSet.class, + m_xORB.createInstance("com.sun.star.sdb.RowSet")); + + System.out.println("starting DateTime function test!"); + // set the properties needed to connect to a database + XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class,xRowRes); + xProp.setPropertyValue("DataSourceName","Bibliography"); + + xProp.setPropertyValue("CommandType",new Integer(com.sun.star.sdb.CommandType.COMMAND)); + + try { + curdate(xRowRes); + } catch( SQLException ex){ + assure("upper " + ex.getMessage(),false); + throw ex; + } + try{ + curtime(xRowRes); + } catch( SQLException ex){ + assure("lower " + ex.getMessage(),false); + throw ex; + } + try{ + dayname(xRowRes); + } catch( SQLException ex){ + assure("ascii " + ex.getMessage(),false); + throw ex; + } + try{ + dayofmonth(xRowRes); + } catch( SQLException ex){ + assure("char_len " + ex.getMessage(),false); + throw ex; + } + try{ + dayofweek(xRowRes); + } catch( SQLException ex){ + assure("concat " + ex.getMessage(),false); + throw ex; + } + try{ + dayofyear(xRowRes); + } catch( SQLException ex){ + assure("locate " + ex.getMessage(),false); + throw ex; + } + try{ + hour(xRowRes); + } catch( SQLException ex){ + assure("substr " + ex.getMessage(),false); + throw ex; + } + try{ + minute(xRowRes); + } catch( SQLException ex){ + assure("ltrim " + ex.getMessage(),false); + throw ex; + } + try{ + month(xRowRes); + } catch( SQLException ex){ + assure("rtrim " + ex.getMessage(),false); + throw ex; + } + try{ + monthname(xRowRes); + } catch( SQLException ex){ + assure("space " + ex.getMessage(),false); + throw ex; + } + try{ + now(xRowRes); + } catch( SQLException ex){ + assure("replace " + ex.getMessage(),false); + throw ex; + } + try{ + quarter(xRowRes); + } catch( SQLException ex){ + assure("repeat " + ex.getMessage(),false); + throw ex; + } + try{ + second(xRowRes); + } catch( SQLException ex){ + assure("insert " + ex.getMessage(),false); + throw ex; + } + try{ + week(xRowRes); + } catch( SQLException ex){ + assure("left " + ex.getMessage(),false); + throw ex; + } + try{ + year(xRowRes); + } catch( SQLException ex){ + assure("right " + ex.getMessage(),false); + throw ex; + } + } + + private XRow execute(XRowSet xRowRes,String sql) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class,xRowRes); + xProp.setPropertyValue("Command","SELECT " + sql + where); + xRowRes.execute(); + XResultSet xRes = (XResultSet)UnoRuntime.queryInterface(XResultSet.class,xRowRes); + assure("No valid row! ",xRes.next()); + + return (XRow)UnoRuntime.queryInterface(XRow.class, xRes); + } + + private void dayofweek(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"DAYOFWEEK('1998-02-03') "); + assure("DAYOFWEEK('1998-02-03') failed!",row.getInt(1) == 3); + } + private void dayofmonth(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"DAYOFMONTH('1998-02-03') "); + assure("DAYOFMONTH('1998-02-03') failed!",row.getInt(1) == 3); + } + private void dayofyear(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"DAYOFYEAR('1998-02-03') "); + assure("DAYOFYEAR('1998-02-03') failed!",row.getInt(1) == 34); + } + private void month(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"month('1998-02-03') "); + assure("month('1998-02-03') failed!",row.getInt(1) == 2); + } + private void dayname(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"DAYNAME('1998-02-05') "); + assure("DAYNAME('1998-02-05') failed!",row.getString(1).equals("Thursday")); + } + private void monthname(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"MONTHNAME('1998-02-05') "); + assure("MONTHNAME('1998-02-05') failed!",row.getString(1).equals("February")); + } + private void quarter(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"QUARTER('98-01-01'),QUARTER('98-04-01'),QUARTER('98-07-01'),QUARTER('98-10-01') "); + assure("QUARTER('98-01-01') failed!",row.getInt(1) == 1); + assure("QUARTER('98-04-01') failed!",row.getInt(2) == 2); + assure("QUARTER('98-07-01') failed!",row.getInt(3) == 3); + assure("QUARTER('98-10-01') failed!",row.getInt(4) == 4); + } + private void week(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"WEEK('1998-02-20') "); + assure("WEEK('1998-02-20') failed!",row.getInt(1) == 7); + } + private void year(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"YEAR('98-02-03') "); + assure("YEAR('98-02-03') failed!",row.getInt(1) == 98); + } + private void hour(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"HOUR('10:05:03') "); + assure("HOUR('10:05:03') failed!",row.getInt(1) == 10); + } + private void minute(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"MINUTE('98-02-03 10:05:03') "); + assure("MINUTE('98-02-03 10:05:03') failed!",row.getInt(1) == 5); + } + private void second(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"SECOND('10:05:03') "); + assure("SECOND('10:05:03') failed!",row.getInt(1) == 3); + } + private void curdate(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"CURDATE() "); + com.sun.star.util.Date aDate = row.getDate(1); + System.out.println("CURDATE() is '" + aDate.Year + "-" + aDate.Month + "-" + aDate.Day +"'"); + } + private void curtime(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"CURTIME() "); + com.sun.star.util.Time aTime = row.getTime(1); + System.out.println("CURTIME() is '" + aTime.Hours + ":" + aTime.Minutes + ":" + aTime.Seconds + "'"); + } + private void now(XRowSet xRowRes) throws com.sun.star.uno.Exception,com.sun.star.beans.UnknownPropertyException { + XRow row = execute(xRowRes,"NOW() "); + com.sun.star.util.DateTime aTime = row.getTimestamp(1); + System.out.println("NOW() is '" + aTime.Year + "-" + aTime.Month + "-" + aTime.Day + "'"); + System.out.println("'" + aTime.Hours + ":" + aTime.Minutes + ":" + aTime.Seconds + "'"); + } +} |