/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . */ package ifc.sdbc; import java.util.List; import lib.MultiMethodTest; import lib.Status; import com.sun.star.io.XDataInputStream; import com.sun.star.io.XInputStream; import com.sun.star.io.XTextInputStream; import com.sun.star.sdbc.DataType; import com.sun.star.sdbc.SQLException; import com.sun.star.sdbc.XParameters; import com.sun.star.uno.UnoRuntime; import com.sun.star.util.Date; import com.sun.star.util.DateTime; import com.sun.star.util.Time; /** /** * Testing com.sun.star.sdbc.XParameters * interface methods : *

* Object relations required : *

* @see com.sun.star.sdbc.XParameters */ public class _XParameters extends MultiMethodTest { // oObj filled by MultiMethodTest public XParameters oObj = null ; private List data = null ; /** * Gets object relation */ @SuppressWarnings("unchecked") @Override public void before() { data = (List) tEnv.getObjRelation("XParameters.ParamValues") ; if (data == null) { log.println("!!! Relation not found !!!") ; } } /** * Sets String parameter (if exists) to SQL NULL value.

* Has OK status if no exceptions occurred. */ public void _setNull() { boolean result = true ; int idx = findParamOfType(String.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setNull(idx, DataType.VARCHAR) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setNull()", result) ; } public void _setObjectNull() { /* !!! TO DO !!! */ tRes.tested("setObjectNull()", Status.skipped(true)) ; } /** * Sets String parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setString() { boolean result = true ; int idx = findParamOfType(String.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setString(idx, "XParameters") ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setString()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setBoolean() { boolean result = true ; int idx = findParamOfType(Boolean.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setBoolean(idx, true) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setBoolean()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setByte() { boolean result = true ; int idx = findParamOfType(Byte.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setByte(idx, (byte)122) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setByte()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setShort() { boolean result = true ; int idx = findParamOfType(Short.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setShort(idx, (short)133) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setShort()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setInt() { boolean result = true ; int idx = findParamOfType(Integer.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setInt(idx, 13300) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setInt()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setLong() { boolean result = true ; int idx = findParamOfType(Long.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setLong(idx, 13362453) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setLong()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setFloat() { boolean result = true ; int idx = findParamOfType(Float.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setFloat(idx, (float)133.55) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setFloat()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setDouble() { boolean result = true ; int idx = findParamOfType(Double.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setDouble(idx, 133) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setDouble()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setBytes() { boolean result = true ; int idx = findParamOfType(byte[].class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setBytes(idx, new byte[] {5}) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setBytes()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setDate() { boolean result = true ; int idx = findParamOfType(Date.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setDate( idx, new Date ((short)19, (short)1, (short)1979)) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setDate()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setTime() { boolean result = true ; int idx = findParamOfType(Time.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setTime( idx, new Time((short)1,(short)2,(short)3,(short)44, false)); } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setTime()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setTimestamp() { boolean result = true ; int idx = findParamOfType(DateTime.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { oObj.setTimestamp(idx, new DateTime((short)1,(short)2,(short)3, (short)4, (short)19, (short)1, (short)1979, false)) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } } tRes.tested("setTimestamp()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setBinaryStream() { boolean result = true ; int idx = findParamOfType(XDataInputStream.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { Object oStream = tParam.getMSF(). createInstance("com.sun.star.io.DataInputStream") ; XInputStream xStream = UnoRuntime.queryInterface (XInputStream.class, oStream); oObj.setBinaryStream(idx, xStream, 2) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } catch (com.sun.star.uno.Exception e) { log.println("Unexpected exception:") ; log.println(e) ; result = false ; } } tRes.tested("setBinaryStream()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setCharacterStream() { boolean result = true ; int idx = findParamOfType(XTextInputStream.class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { Object oStream = tParam.getMSF() .createInstance("com.sun.star.io.TextInputStream") ; XInputStream xStream = UnoRuntime.queryInterface (XInputStream.class, oStream); oObj.setCharacterStream(idx, xStream, 2) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } catch (com.sun.star.uno.Exception e) { log.println("Unexpected exception:") ; log.println(e) ; result = false ; } } tRes.tested("setCharacterStream()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setObject() { boolean result = true ; int idx = findParamOfType(Object[].class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { Object obj = tParam.getMSF(). createInstance("com.sun.star.io.Pipe") ; oObj.setObject(idx, obj) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } catch (com.sun.star.uno.Exception e) { log.println("Unexpected exception:") ; log.println(e) ; result = false ; } } tRes.tested("setObject()", result) ; } /** * Sets parameter (if exists) to new value.

* Has OK status if no exceptions occurred. */ public void _setObjectWithInfo() { boolean result = true ; int idx = findParamOfType(Object[].class) ; if (idx < 0) log.println("Type not found in relation: not tested"); else { try { Object obj = tParam.getMSF(). createInstance("com.sun.star.io.Pipe") ; oObj.setObjectWithInfo(idx, obj, DataType.OBJECT, 0) ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } catch (com.sun.star.uno.Exception e) { log.println("Unexpected exception:") ; log.println(e) ; result = false ; } } tRes.tested("setObjectWithInfo()", result) ; } public void _setRef() { /* !!! TO DO !!! */ tRes.tested("setRef()", Status.skipped(true)) ; } public void _setBlob() { /* !!! TO DO !!! */ tRes.tested("setBlob()", Status.skipped(true)) ; } public void _setClob() { /* !!! TO DO !!! */ tRes.tested("setClob()", Status.skipped(true)) ; } public void _setArray() { /* !!! TO DO !!! */ tRes.tested("setArray()", Status.skipped(true)) ; } /** * Calls method.

* Has OK status if no exceptions occurred. */ public void _clearParameters() { boolean result = true ; try { oObj.clearParameters() ; } catch (SQLException e) { log.println("Unexpected SQL exception:") ; log.println(e) ; result = false ; } tRes.tested("clearParameters()", result) ; } /** * Finds in relation vector index of parameter of the appropriate * type. */ private int findParamOfType(Class clz) { for (int i = 0; i < data.size(); i++) if (clz.isInstance(data.get(i))) return i + 1 ; return -1 ; } } // finish class _XParameters