summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java/ifc/sdb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /qadevOOo/tests/java/ifc/sdb
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'qadevOOo/tests/java/ifc/sdb')
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java116
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataSource.java165
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java36
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java46
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_RowSet.java144
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java41
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java51
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java75
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java77
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java52
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java207
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java29
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java290
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java521
19 files changed, 2140 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java b/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java
new file mode 100644
index 000000000..fda6ad192
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java
@@ -0,0 +1,116 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiPropertyTest;
+
+public class _DataAccessDescriptor extends MultiPropertyTest {
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ResultSet() {
+ String propName = "ResultSet";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XResultSet newValue = UnoRuntime.queryInterface(XResultSet.class,tEnv.getObjRelation("DataAccessDescriptor.XResultSet"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XResultSet getValue = UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ActiveConnection() {
+ String propName = "ActiveConnection";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XConnection newValue = UnoRuntime.queryInterface(XConnection.class,tEnv.getObjRelation("DataAccessDescriptor.XConnection"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XConnection getValue = UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_DataSource.java b/qadevOOo/tests/java/ifc/sdb/_DataSource.java
new file mode 100644
index 000000000..e693d781a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DataSource.java
@@ -0,0 +1,165 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.beans.PropertyValue;
+
+/**
+ * Testing <code>com.sun.star.sdb.DataSource</code>
+ * service properties :
+ * <ul>
+ * <li><code> Name</code></li>
+ * <li><code> URL</code></li>
+ * <li><code> Info</code></li>
+ * <li><code> User</code></li>
+ * <li><code> Password</code></li>
+ * <li><code> IsPasswordRequired</code></li>
+ * <li><code> SuppressVersionColumns</code></li>
+ * <li><code> IsReadOnly</code></li>
+ * <li><code> NumberFormatsSupplier</code></li>
+ * <li><code> TableFilter</code></li>
+ * <li><code> TableTypeFilter</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code> <p>.
+* After this interface test <b>it's better to recreate</b> object tested.
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XPropertySetInfo
+* @see com.sun.star.beans.Property
+* @see com.sun.star.lang.XServiceInfo
+*/
+public class _DataSource extends MultiPropertyTest {
+
+ /**
+ * This property is an array of additional parameters for database
+ * connecting. Parameter is <code>PropertyValue</code> structure.
+ * The test just changes existing array onto array with a single
+ * element <code>("user", "API_QA_Tester")</code> <p>
+ *
+ * After testing old value is set for this property. <p>
+ *
+ * Result is OK: if property successfully changed with no exceptions.
+ * @see com.sun.star.beans.PropertyValue
+ */
+ public void _Info() {
+ try {
+ Object oldInfo = oObj.getPropertyValue("Info") ;
+
+ testProperty("Info", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+
+ PropertyValue propUsr = new PropertyValue(),
+ propPass = new PropertyValue() ;
+
+ propUsr.Name = "user" ;
+ propUsr.Value = "API_QA_Tester" ;
+ propPass.Name = "password" ;
+ propPass.Value = "guest" ;
+
+ return new PropertyValue[] { propUsr, propPass } ;
+ }
+ }) ;
+
+ oObj.setPropertyValue("Info", oldInfo) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _URL() {
+ try {
+ Object oldURL = oObj.getPropertyValue("URL") ;
+
+ testProperty("URL") ;
+
+ oObj.setPropertyValue("URL", oldURL) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _User() {
+ try {
+ Object oldUser = oObj.getPropertyValue("User") ;
+
+ testProperty("User") ;
+
+ oObj.setPropertyValue("User", oldUser) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _Password() {
+ try {
+ Object oldPass = oObj.getPropertyValue("Password") ;
+
+ testProperty("Password") ;
+
+ oObj.setPropertyValue("Password", oldPass) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * New value for the test is always <code>null</code>.
+ */
+ public void _NumberFormatsSupplier() {
+ testProperty("NumberFormatsSupplier", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ return null ;
+ }
+ }) ;
+ }
+
+ /**
+ * If object test allows to recreate environment it is better to do it.
+ */
+ @Override
+ public void after() {
+ try {
+ oObj.setPropertyValue("IsPasswordRequired",Boolean.FALSE);
+ } catch (Exception e) {
+ log.println("Couldn't set 'IsPasswordRequired' to false");
+ }
+ }
+
+} // finish class _DataSource
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java b/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java
new file mode 100644
index 000000000..747ffe5d0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java
@@ -0,0 +1,36 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.DatasourceAdministrationDialog</code>
+ * service properties :
+ * <ul>
+ * <li><code> Title</code></li>
+ * <li><code> ParentWindow</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.DatasourceAdministrationDialog
+ */
+public class _DatasourceAdministrationDialog extends MultiPropertyTest {
+
+} // EOF DatasourceAdministrationDialog
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java b/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java
new file mode 100644
index 000000000..fcdc4f3f9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java
@@ -0,0 +1,60 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.ErrorMessageDialog</code>
+ * service properties :
+ * <ul>
+ * <li><code> Title</code></li>
+ * <li><code> ParentWindow</code></li>
+ * <li><code> SQLException</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'ERR1', 'ERR2'</code>
+ * (of type <code>com.sun.star.sdbc.SQLException</code>):
+ * two objects which are used for changing 'SQLException'
+ * property. </li>
+ * <ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.ErrorMessageDialog
+ */
+public class _ErrorMessageDialog extends MultiPropertyTest {
+
+ /**
+ * <code>SQLException</code> instances must be used as property
+ * value.
+ */
+ public void _SQLException() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("SQLException", tEnv.getObjRelation("ERR1"),
+ tEnv.getObjRelation("ERR2")) ;
+ }
+
+ public void _ParentWindow(){
+ log.println("Testing with custom Property tester");
+ testProperty("ParentWindow", tEnv.getObjRelation("ERR_XWindow"), null);
+ }
+
+} // finish class _ErrorMessageDialog
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java b/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java
new file mode 100644
index 000000000..efd49829b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java
@@ -0,0 +1,46 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.QueryDefinition</code>
+ * service properties :
+ * <ul>
+ * <li><code> Name</code></li>
+ * <li><code> Command</code></li>
+ * <li><code> EscapeProcessing</code></li>
+ * <li><code> UpdateTableName</code></li>
+ * <li><code> UpdateCatalogName</code></li>
+ * <li><code> UpdateSchemaName</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.QueryDefinition
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertySetInfo
+ * @see com.sun.star.beans.Property
+ * @see com.sun.star.lang.XServiceInfo
+ */
+public class _QueryDefinition extends MultiPropertyTest {
+
+
+} // finish class _QueryDefinition
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_RowSet.java b/qadevOOo/tests/java/ifc/sdb/_RowSet.java
new file mode 100644
index 000000000..9064a1411
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_RowSet.java
@@ -0,0 +1,144 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+ * Testing <code>com.sun.star.sdb.RowSet</code>
+ * service properties :
+ * <ul>
+ * <li><code> ActiveConnection</code></li>
+ * <li><code> DataSourceName</code></li>
+ * <li><code> Command</code></li>
+ * <li><code> CommandType</code></li>
+ * <li><code> ActiveCommand</code></li>
+ * <li><code> IgnoreResult</code></li>
+ * <li><code> Filter</code></li>
+ * <li><code> ApplyFilter</code></li>
+ * <li><code> Order</code></li>
+ * <li><code> Privileges</code></li>
+ * <li><code> IsModified</code></li>
+ * <li><code> IsNew</code></li>
+ * <li><code> RowCount</code></li>
+ * <li><code> IsRowCountFinal</code></li>
+ * <li><code> UpdateTableName</code></li>
+ * <li><code> UpdateCatalogName</code></li>
+ * <li><code> UpdateSchemaName</code></li>
+ * </ul> <p>
+ *
+ * Properties are tested in a safe way, this means that old
+ * properties' values are restored to their previous values
+ * after testing. These values are meaningful for further
+ * testing. <p>
+ *
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.RowSet
+ */
+public class _RowSet extends MultiPropertyTest {
+
+ /**
+ * The tester implementation which restores properties
+ * values after testing.
+ */
+ protected class SafeTester extends PropertyTester {
+ Object oldValue = null ;
+
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ log.println("Testing with SafeTester ...") ;
+ oldValue = old ;
+ return super.getNewValue(prop, old) ;
+ }
+
+ @Override
+ protected void checkResult(String propName, Object oldValue,
+ Object newValue, Object resValue, Exception exception)
+ throws Exception {
+
+ super.checkResult(propName, oldValue, newValue, resValue, exception);
+
+ try {
+ oObj.setPropertyValue(propName, this.oldValue);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ }
+
+ }
+ }
+
+ /**
+ * Overridden method which tests all the properties
+ * with <code>SafeTester</code>.
+ *
+ * @see SafeTester
+ */
+ @Override
+ protected void testProperty(String propName) {
+ testProperty(propName, new SafeTester()) ;
+ }
+
+ public void _ActiveConnection() {
+ boolean result = false;
+ try {
+ XConnection the_connection = null;
+
+ try {
+ the_connection = (XConnection) AnyConverter.toObject(
+ new Type(XConnection.class),
+ oObj.getPropertyValue("ActiveConnection"));
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ throw new StatusException("couldn't convert Any",iae);
+ }
+
+ result = (the_connection != null);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("the property is unknown");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ }
+
+ tRes.tested("ActiveConnection", result) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // EOF DatasourceAdministrationDialog
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java b/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java
new file mode 100644
index 000000000..082bb7415
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java
@@ -0,0 +1,41 @@
+/*
+ * 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.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.SingleSelectQueryComposer</code>
+ * service properties :
+ * <ul>
+ * <li><code> Original</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.SingleSelectQueryComposer
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertySetInfo
+ * @see com.sun.star.beans.Property
+ * @see com.sun.star.lang.XServiceInfo
+ */
+public class _SingleSelectQueryComposer extends MultiPropertyTest {
+
+
+} // finish class _SingleSelectQueryComposer
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java
new file mode 100644
index 000000000..a0ddfdd57
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java
@@ -0,0 +1,51 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XBookmarksSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.sdb.XBookmarksSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getBookmarks()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.sdb.XBookmarksSupplier
+ */
+public class _XBookmarksSupplier extends MultiMethodTest {
+
+ public XBookmarksSupplier oObj = null ;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getBookmarks() {
+ XNameAccess bookmarks = oObj.getBookmarks();
+ tRes.tested("getBookmarks()",bookmarks != null);
+ }
+
+} // finish class _XBookmarksSupplier
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java b/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java
new file mode 100644
index 000000000..12542edaa
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java
@@ -0,0 +1,75 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.sdb.XCompletedConnection;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.task.XInteractionHandler;
+
+/**
+ * Testing <code>com.sun.star.sdb.XCompletedConnection</code>
+ * interface methods :
+ * <ul>
+ * <li><code> connectWithCompletion()</code></li>
+ * </ul> <p>
+* The following object relations required :
+* <ul>
+* <li> <code>'XCompletedConnection.Handler'</code> : passed as parameter
+* to <code>connectWithCompletion</code> method. </li>
+* </ul>
+* @see com.sun.star.sdb.XCompletedConnection
+* @see com.sun.star.task.XInteractionHandler
+* @see com.sun.star.sdbc.XConnection
+*/
+public class _XCompletedConnection extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCompletedConnection oObj = null ;
+
+ /**
+ * Test call the method with handler passed as object relation.
+ * Then value returned is checked.<p>
+ * Has OK status if not null value returned. <&nbsp>
+ * FAILED if exception occurred, null value returned or object
+ * relation was not found.
+ */
+ public void _connectWithCompletion() throws StatusException {
+ XInteractionHandler handler = (XInteractionHandler)
+ tEnv.getObjRelation("XCompletedConnection.Handler") ;
+
+ if (handler == null) {
+ log.println("Required object relation not found !") ;
+ tRes.tested("connectWithCompletion()", false) ;
+ return ;
+ }
+
+ XConnection con = null ;
+ try {
+ con = oObj.connectWithCompletion(handler) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ throw new StatusException("Exception while method calling", e) ;
+ }
+
+ tRes.tested("connectWithCompletion()", con != null) ;
+ }
+} // finish class _XCompletedConnection
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java b/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java
new file mode 100644
index 000000000..548b86c96
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java
@@ -0,0 +1,77 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.sdb.XCompletedExecution;
+import com.sun.star.task.XInteractionHandler;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+ *
+ */
+public class _XCompletedExecution extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCompletedExecution oObj = null ;
+
+ private CheckInteractionHandler checkHandler = null;
+ /**
+ * Interface to implement so the call of the listener can be checked.
+ */
+ public interface CheckInteractionHandler extends XInteractionHandler {
+ /**
+ * Set a log of the listener, so messages of the listener get printed
+ * into the file of the interface
+ */
+ void setLog(PrintWriter log);
+ /**
+ * Return True, when the listener was called correctly.
+ */
+ boolean checkInteractionHandler();
+ }
+
+ @Override
+ protected void before() {
+ checkHandler = (CheckInteractionHandler)
+ tEnv.getObjRelation("InteractionHandlerChecker");
+ if (checkHandler == null)
+ throw new StatusException("Missing object relation 'InteractionHandlerChecker'", new Exception());
+ checkHandler.setLog(log);
+ }
+
+
+ public void _executeWithCompletion() {
+ try {
+ oObj.executeWithCompletion(checkHandler);
+ }
+ catch(com.sun.star.sdbc.SQLException e) {
+ e.printStackTrace(log);
+ tRes.tested("executeWithCompletion()", false);
+ return;
+ }
+
+ tRes.tested("executeWithCompletion()", checkHandler.checkInteractionHandler());
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java
new file mode 100644
index 000000000..3ca625281
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XFormDocumentsSupplier;
+
+/**
+* <code>com.sun.star.sdb.XFormDocumentsSupplier</code> interface
+* testing.
+* @see com.sun.star.sdb.XFormDocumentsSupplier
+*/
+public class _XFormDocumentsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XFormDocumentsSupplier oObj = null ;
+
+ /**
+ * Has OK status if not null returned. <p>
+ */
+ public void _getFormDocuments() {
+
+ XNameAccess docs = oObj.getFormDocuments() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " documents :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getFormDocuments()", docNames != null) ;
+ }
+
+} // finish class _XFormDocumentsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java
new file mode 100644
index 000000000..0c40f8547
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java
@@ -0,0 +1,52 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.sdb.XParametersSupplier;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.sdb.XParametersSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getParameters()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.sdb.XParametersSupplier
+*/
+public class _XParametersSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XParametersSupplier oObj = null ;
+
+ /**
+ * checks of the return of <code>getParameters()</code>
+ * is not null
+ */
+ public void _getParameters() {
+
+ XIndexAccess the_Set = oObj.getParameters();
+ if (the_Set == null) log.println("'getParameters()' returns NULL");
+ tRes.tested("getParameters()",the_Set != null);
+
+ }
+} // finish class _XParametersSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java
new file mode 100644
index 000000000..a8d88983a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java
@@ -0,0 +1,60 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XQueryDefinitionsSupplier;
+
+/**
+ * Testing <code>com.sun.star.sdb.XQueryDefinitionsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getQueryDefinitions()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.sdb.XQueryDefinitionsSupplier
+ */
+public class _XQueryDefinitionsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XQueryDefinitionsSupplier oObj = null ;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getQueryDefinitions() {
+
+ XNameAccess docs = oObj.getQueryDefinitions() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " queries :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getQueryDefinitions()", docNames != null) ;
+ }
+
+} // finish class _XQueryDefinitionsSupplier
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java
new file mode 100644
index 000000000..fe1b5f0b1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XReportDocumentsSupplier;
+
+/**
+* <code>com.sun.star.sdb.XReportDocumentsSupplier</code> interface
+* testing.
+* @see com.sun.star.sdb.XReportDocumentsSupplier
+*/
+public class _XReportDocumentsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XReportDocumentsSupplier oObj = null ;
+
+ /**
+ * Has OK status if not null returned. <p>
+ */
+ public void _getReportDocuments() {
+
+ XNameAccess docs = oObj.getReportDocuments() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " documents :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getReportDocuments()", docNames != null) ;
+ }
+
+} // finish class _XReportDocumentsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java b/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java
new file mode 100644
index 000000000..f689c6cbf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java
@@ -0,0 +1,60 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdb.XResultSetAccess;
+import com.sun.star.sdbc.XResultSet;
+
+/**
+* Testing <code>com.sun.star.sdb.XResultSetAccess</code>
+* interface methods :
+* <ul>
+* <li><code> createResultSet()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.sdb.XResultSetAccess
+*/
+public class _XResultSetAccess extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XResultSetAccess oObj = null ;
+
+ /**
+ * tries to create a ResultSet for the Object</br>
+ * an XResultSet is returned.</br>
+ * The test is OK if a not null ResultSet is returned
+ */
+ public void _createResultSet() {
+
+ try {
+ XResultSet the_Set = oObj.createResultSet();
+ if (the_Set == null) log.println("'createResulSet()' returns NULL");
+ tRes.tested("createResultSet()",the_Set != null);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception while checking 'createResultSet()'");
+ e.printStackTrace(log);
+ tRes.tested("createResultSet()",false);
+ }
+
+ }
+} // finish class _XResultSetAccess
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java b/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java
new file mode 100644
index 000000000..62911c851
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java
@@ -0,0 +1,207 @@
+/*
+ * 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.sdb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.sdb.RowChangeEvent;
+import com.sun.star.sdb.XRowSetApproveBroadcaster;
+import com.sun.star.sdb.XRowSetApproveListener;
+
+/**
+* <code>com.sun.star.sdb.XRowSetApproveBroadcaster</code> interface test. <p>
+* Required object relations :
+* <ul>
+* <li> <code>'XRowSetApproveBroadcaster.ApproveChecker'</code>:
+* implementation of inner interface <code>RowSetApproveChecker</code>
+* which can move cursor within a rowset, change row, and change the
+* whole rowset. </li>
+* </ul> <p>
+* It is better to recreate the object after test, because of unknown
+* actions made by <code>RowSetApproveChecker</code> interface implementation.
+*
+* @see com.sun.star.sdb.XRowSetApproveBroadcaster
+* @see _XRowSetApproveBroadcaster.RowSetApproveChecker
+*/
+public class _XRowSetApproveBroadcaster extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRowSetApproveBroadcaster oObj = null ;
+
+ /**
+ * The purpose of this interface is to pass to this test
+ * relation which can make some operations with row set
+ * on which <code>XRowSetApproveListener</code>s can react.
+ * @see com.sun.star.sdb.XRowSetApproveListener
+ */
+ public interface RowSetApproveChecker {
+ /**
+ * Moves cursor within row set. Method <code>approveCursorMove</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ */
+ void moveCursor() ;
+ /**
+ * Change rows in row set. Method <code>approveRowChange</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ * @return <code>RowChangeEvent</code> structure which contains
+ * what type of change was made and how many rows it affected.
+ * @see com.sun.star.sdb.RowChangeEvent
+ */
+ RowChangeEvent changeRow() ;
+ /**
+ * Change the whole row set. Method <code>approveRowSetChange</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ */
+ void changeRowSet() ;
+ }
+
+ /**
+ * Implementation of <code>XRowSetApproveListener</code> interface
+ * which just detects and stores approve requirements. They are checked
+ * later.
+ */
+ private static class TestListener implements XRowSetApproveListener {
+ public boolean approveRequests = true ;
+ public boolean approveCursorMoveCalled = false ;
+ public boolean approveRowChangeCalled = false ;
+ public RowChangeEvent approveRowChangeEvent = null ;
+ public boolean approveRowSetChangeCalled = false ;
+
+ public TestListener(boolean approve) {
+ approveRequests = approve ;
+ }
+
+ public void reset() {
+ approveCursorMoveCalled = false ;
+ approveRowChangeCalled = false ;
+ approveRowSetChangeCalled = false ;
+ }
+ public boolean approveCursorMove(EventObject ev) {
+ approveCursorMoveCalled = true ;
+ return approveRequests ;
+ }
+ public boolean approveRowChange(RowChangeEvent ev) {
+ approveRowChangeCalled = true ;
+ approveRowChangeEvent = ev ;
+ return approveRequests ;
+ }
+ public boolean approveRowSetChange(EventObject ev) {
+ approveRowSetChangeCalled = true ;
+ return approveRequests ;
+ }
+ public void disposing(EventObject ev) {}
+ }
+ private TestListener listener1 = null ;
+
+ private RowSetApproveChecker checker = null ;
+
+ /**
+ * Tries to retrieve object relation.
+ */
+ @Override
+ public void before() {
+ checker = (RowSetApproveChecker) tEnv.getObjRelation
+ ("XRowSetApproveBroadcaster.ApproveChecker") ;
+
+ if (checker == null) {
+ log.println("!!! Relation for test not found !!!") ;
+ throw new StatusException(Status.failed
+ ("!!! Relation for test not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates and adds listener, then call <code>RowSetApproveChecker</code>
+ * methods for listener methods to be called. Then checks if
+ * listener methods were called on appropriate actions. <p>
+ * Has OK status : If and only if appropriate listener methods called,
+ * and listener <code>approveRowChange</code> method has write parameter,
+ * i.e. type and rows number expected.
+ */
+ public void _addRowSetApproveListener() {
+ listener1 = new TestListener(true) ;
+ oObj.addRowSetApproveListener(listener1) ;
+ log.println("Listener added.") ;
+
+ boolean result = true ;
+
+ checker.moveCursor() ;
+ log.println("Cursor moved.") ;
+ result &= listener1.approveCursorMoveCalled ;
+
+ listener1.reset() ;
+ RowChangeEvent actualEvent = checker.changeRow() ;
+ log.println("Row changed.") ;
+
+ RowChangeEvent event = listener1.approveRowChangeEvent ;
+ result &= listener1.approveRowChangeCalled ;
+
+ boolean eventOK = event.Action == actualEvent.Action &&
+ event.Rows == actualEvent.Rows ;
+
+ result &= eventOK ;
+
+ listener1.reset() ;
+ checker.changeRowSet();
+ log.println("Row set changed.") ;
+ result &= listener1.approveRowSetChangeCalled ;
+
+ tRes.tested("addRowSetApproveListener()", result) ;
+ }
+
+ /**
+ * Removes listener inserted before, then perform all actions
+ * on which listener must react. <p>
+ * Has OK status if no listener methods were called. <p>
+ * Methods required to pass before :
+ * <ul>
+ * <li> <code>_addRowSetApproveListener</code> </li>
+ * </ul>
+ */
+ public void _removeRowSetApproveListener() {
+ requiredMethod("addRowSetApproveListener()") ;
+
+ listener1.reset() ;
+
+ oObj.removeRowSetApproveListener(listener1) ;
+
+ checker.moveCursor() ;
+ checker.changeRow() ;
+ checker.changeRowSet() ;
+
+ tRes.tested("removeRowSetApproveListener()",
+ !listener1.approveCursorMoveCalled &&
+ !listener1.approveRowChangeCalled &&
+ !listener1.approveRowSetChangeCalled) ;
+ }
+
+ /**
+ * Disposes object environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XRowSetApproveBroadcaster
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java b/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java
new file mode 100644
index 000000000..ca2efa664
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java
@@ -0,0 +1,29 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.sdb.XSQLErrorBroadcaster;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XSQLErrorBroadcaster extends MultiMethodTest {
+
+ public XSQLErrorBroadcaster oObj = null;
+}
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java
new file mode 100644
index 000000000..39aabf688
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java
@@ -0,0 +1,290 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.sdb.XSingleSelectQueryAnalyzer;
+import lib.MultiMethodTest;
+import com.sun.star.sdb.XSingleSelectQueryComposer;
+import com.sun.star.uno.UnoRuntime;
+import lib.StatusException;
+import lib.Status;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+
+/**
+* Testing <code>com.sun.star.sdb.XSingleSelectQueryAnalyzer</code>
+* interface methods :
+* <ul>
+* <li><code>getQuery()</code></li>
+* <li><code>setQuery()</code></li>
+* <li><code>getFilter()</code></li>
+* <li><code>getStructuredFilter()</code></li>
+* <li><code>getGroup()</code></li>
+* <li><code>getGroupColumns()</code></li>
+* <li><code>getHavingClause()</code></li>
+* <li><code>getStructuredHavingClause()</code></li>
+* <li><code>getOrder()</code></li>
+* <li><code>getOrderColumns()</code></li>
+
+* </ul> <p>
+* @see com.sun.star.sdb.XSingleSelectQueryAnalyzer
+*/
+public class _XSingleSelectQueryAnalyzer extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XSingleSelectQueryAnalyzer oObj = null ;
+
+ private static final String queryString = "SELECT * FROM \"biblio\"";
+
+ private XSingleSelectQueryComposer xComposer = null;
+
+ /**
+ * Receives the object relations:
+ * <ul>
+ * <li><code>XSingleSelectQueryComposer xCompoer</code></li>
+ * </ul> <p>
+ * @see com.sun.star.sdb.XSingleSelectQueryComposer
+ */
+ @Override
+ protected void before() {
+
+ xComposer = UnoRuntime.queryInterface(XSingleSelectQueryComposer.class,
+ tEnv.getObjRelation("xComposer"));
+
+ if (xComposer == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xComposer'. Test must be modified"));
+
+ }
+
+ }
+ /**
+ * call <code>setQuery()</code> once with valid query, once with invalid
+ * query. Has ok if only on second call <code>SQLException</code> was thrown
+ */
+ public void _setQuery() {
+
+ try{
+ oObj.setQuery("This is an invalid SQL query");
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("expected Exception. ");
+ }
+
+ try{
+ oObj.setQuery(queryString);
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setQuery()", false);
+ }
+ tRes.tested("setQuery()", true);
+ }
+
+ /**
+ * checks of the returned value of <code>getQuery()</code>
+ * equals the string which was set by <code>setQuery()</code>
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ *</ul>
+ */
+ public void _getQuery() {
+ this.requiredMethod("setQuery()");
+
+ boolean res = false;
+
+ res = oObj.getQuery().equals(queryString);
+
+ tRes.tested("getQuery()", res);
+ }
+
+
+ /**
+ * Object relation <code>xComposer</code> set a filter. This filter
+ * must returned while calling <code>getFilter</code>
+ */
+ public void _getFilter() {
+ try{
+ String filter = "\"Identifier\" = 'BOR02b'";
+ xComposer.setFilter(filter);
+ tRes.tested("getFilter()", oObj.getFilter().equals(filter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a complex filter with method
+ . <code>setFilter</code>. Then <code>getStructuredFilter</code> returns a
+ * sequence of <code>PropertyValue</code> which was set with method
+ * <code>setStructuredFilter</code> from <xComposer>.
+ * Then test has ok status if <getFilter> returns the complex filter.
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ * <li><code>getFilter</code></li>
+ *</ul>
+ */
+ public void _getStructuredFilter() {
+ requiredMethod("setQuery()");
+ requiredMethod("getFilter()");
+ try{
+ oObj.setQuery("SELECT \"Identifier\", \"Type\", \"Address\" FROM \"biblio\" \"biblio\"");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ xComposer.setFilter(complexFilter);
+ PropertyValue[][] aStructuredFilter = oObj.getStructuredFilter();
+
+ xComposer.setFilter("");
+ xComposer.setStructuredFilter(aStructuredFilter);
+ tRes.tested("getStructuredFilter()", oObj.getFilter().equals(complexFilter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredFilter()", false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a goup. This group
+ * must returned while calling <code>getGroup</code>
+ */
+ public void _getGroup() {
+ try{
+ String group = "\"Identifier\"";
+ xComposer.setGroup(group);
+ tRes.tested("getGroup()", oObj.getGroup().equals(group));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroup()", false);
+ }
+ }
+
+ /**
+ * Method <code>getGroupColumns</code> returns a <code>XIndexAccess</code>
+ * Test has ok status if returned value is a usable <code>XIndexAccess</code>
+ */
+ public void _getGroupColumns() {
+ try{
+ XIndexAccess xGroupColumns = oObj.getGroupColumns();
+
+ tRes.tested("getGroupColumns()", (xGroupColumns != null &&
+ xGroupColumns.getCount() == 1 &&
+ xGroupColumns.getByIndex(0) != null));
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroupColumns()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroupColumns()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a clause. This clause
+ * must returned while calling <code>getHavingClause</code>
+ */
+ public void _getHavingClause() {
+ try{
+ String clause = "\"Identifier\" = 'BOR02b'";
+ xComposer.setHavingClause(clause);
+ tRes.tested("getHavingClause()", oObj.getHavingClause().equals(clause));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getHavingClause()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a clause. This clause
+ * must returned while calling <code>getHavingClause</code>
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ * <li><code>getFilter</code></li>
+ * <li><code>getStructuredFilter</code></li>
+ *</ul>
+ */
+ public void _getStructuredHavingClause() {
+ requiredMethod("setQuery()");
+ requiredMethod("getFilter()");
+ executeMethod("getStructuredFilter()");
+
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ try{
+ xComposer.setHavingClause(complexFilter);
+ PropertyValue[][] aStructuredHaving = oObj.getStructuredHavingClause();
+ xComposer.setHavingClause("");
+ xComposer.setStructuredHavingClause(aStructuredHaving);
+ tRes.tested("getStructuredHavingClause()",
+ oObj.getHavingClause().equals(complexFilter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredHavingClause()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set an order. This order
+ * must returned while calling <code>getOrder</code>
+ */
+ public void _getOrder() {
+ try{
+ String order = "\"Identifier\"";
+ xComposer.setOrder(order);
+ tRes.tested("getOrder()", oObj.getOrder().equals(order));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrder()", false);
+ }
+ }
+
+ /**
+ * Method <code>getGroupColumns</code> returns a <code>XIndexAccess</code>
+ * Test has ok status if returned value is a usable <code>XIndexAccess</code>
+ */
+ public void _getOrderColumns() {
+ try{
+ XIndexAccess xOrderColumns = oObj.getOrderColumns();
+ tRes.tested("getOrderColumns()", (xOrderColumns != null &&
+ xOrderColumns.getCount() == 1 &&
+ xOrderColumns.getByIndex(0) != null));
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrderColumns()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrderColumns()", false);
+ }
+ }
+
+
+} // finish class _XSingleSelectQueryAnalyzer
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
new file mode 100644
index 000000000..53b31f693
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
@@ -0,0 +1,521 @@
+/*
+ * 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.sdb;
+
+import com.sun.star.sdb.XSingleSelectQueryComposer;
+import lib.MultiMethodTest;
+import com.sun.star.sdb.XSingleSelectQueryAnalyzer;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import lib.StatusException;
+import lib.Status;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.sdb.SQLFilterOperator;
+import com.sun.star.sdbc.SQLException;
+
+/**
+* Testing <code>com.sun.star.sdb.XSingleSelectQueryComposer</code>
+* interface methods :
+* <ul>
+* <li><code>setFilter()</code></li>
+* <li><code>setStructuredFilter()</code></li>
+* <li><code>appendFilterByColumn()</code></li>
+* <li><code>appendGroupByColumn()</code></li>
+* <li><code>setGroup()</code></li>
+* <li><code>setHavingClause()</code></li>
+* <li><code>setStructuredHavingClause()</code></li>
+* <li><code>appendHavingClauseByColumn()</code></li>
+* <li><code>appendOrderByColumn()</code></li>
+* <li><code>setOrder()</code></li>
+
+* </ul> <p>
+* @see com.sun.star.sdb.XSingleSelectQueryComposer
+*/
+public class _XSingleSelectQueryComposer extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XSingleSelectQueryComposer oObj = null ;
+
+ private XSingleSelectQueryAnalyzer xQueryAna = null;
+
+ private XPropertySet xProp = null;
+
+ private String colName = null;
+
+ private XResultSet xReSet = null;
+
+ /**
+ * Retrieves the object relations:
+ * <ul>
+ * <li><code>XSingleSelectQueryAnalyzer xQueryAna</code></li>
+ * <li><code>XPropertySet xProp</code></li>
+ * <li><code>String colName</code></li>
+ * </ul> <p>
+ * @see com.sun.star.sdb.XSingleSelectQueryAnalyzer
+ * @see com.sun.star.beans.XPropertySet
+ */
+ @Override
+ protected void before() /* throws Exception*/ {
+
+ xQueryAna = UnoRuntime.queryInterface(XSingleSelectQueryAnalyzer.class,
+ tEnv.getObjRelation("xQueryAna"));
+
+ if (xQueryAna == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xQueryAna'. Test must be modified"));
+
+ }
+
+ xProp = UnoRuntime.queryInterface(XPropertySet.class,
+ tEnv.getObjRelation("xProp"));
+
+ if (xProp == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xProp'. Test must be modified"));
+
+ }
+
+ xReSet = UnoRuntime.queryInterface(XResultSet.class,
+ tEnv.getObjRelation("xResultSet"));
+
+ if (xReSet == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xResultSet'. Test must be modified"));
+
+ }
+
+ try
+ {
+ colName = AnyConverter.toString(tEnv.getObjRelation("colName"));
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ colName = null;
+ }
+
+ if (colName == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'colName'. Test must be modified"));
+
+ }
+
+ }
+
+
+ /**
+ * Object relation <code>xQueryAna</code> set a filter. This filter
+ * must returned while calling <code>getFilter</code>
+ */
+ public void _setFilter() {
+ try{
+ String filter = "\"Identifier\" = 'BOR02b'";
+ oObj.setFilter(filter);
+ tRes.tested("setFilter()", xQueryAna.getFilter().equals(filter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xQueryAna</code> set a complex filter with method
+ . <code>setFilter</code>. Then <code>getStructuredFilter</code> returns a
+ * sequence of <code>PropertyValue</code> which was set with method
+ * <code>setStructuredFilter</code> from <code>xQueryAna</code>.
+ * Then test has ok status if <code>getFilter</code> returns the complex filter.
+ */
+ public void _setStructuredFilter() {
+ requiredMethod("setFilter()");
+ try{
+ xQueryAna.setQuery("SELECT \"Identifier\", \"Type\", \"Address\" FROM \"biblio\" \"biblio\"");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ oObj.setFilter(complexFilter);
+ PropertyValue[][] aStructuredFilter = xQueryAna.getStructuredFilter();
+ oObj.setFilter("");
+ oObj.setStructuredFilter(aStructuredFilter);
+ tRes.tested("setStructuredFilter()", xQueryAna.getFilter().equals(complexFilter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredFilter()", false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredFilter()", false);
+ }
+ }
+
+ /**
+ * At first the object relation <code>xProp</code> was set as parameter.
+ * Relation <code>xQueryAna</code> was used to check if relation
+ * <code>colName</code> was found.
+ * Second an empty <code>XPropertySet</code> was used as parameter. A
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendFilterByColumn() {
+ boolean ok = true;
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ try
+ {
+ oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendFilterByColumn()", false);
+ ok = false;
+ }
+ catch (com.sun.star.uno.RuntimeException e)
+ {
+ log.println("expected Exception: " + e.toString());
+ ok = ok && true;
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.first();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ try{
+
+ oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("appendFilterByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try{
+
+ oObj.appendFilterByColumn(xProp, false,SQLFilterOperator.EQUAL);
+ log.println("appendFilterByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try{
+ XPropertySet dummy = null;
+ oObj.appendFilterByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendFilterByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ tRes.tested("appendFilterByColumn()", ok);
+ }
+
+ /**
+ * At first the object relation <code>xProp</code> was used as parameter.
+ * Relation <code>xQueryAna</code> was used to check if relation
+ * <code>colName</code> was found.
+ * Second an empty <code>XPropertySet</code> was used as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendGroupByColumn() {
+ boolean ok = true;
+ try{
+
+ oObj.appendGroupByColumn(xProp);
+ log.println("appendGroupByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendGroupByColumn()", false);
+ }
+ try{
+ XPropertySet dummy = null;
+ oObj.appendGroupByColumn(dummy);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendGroupByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ }
+ tRes.tested("appendGroupByColumn()", ok);
+ }
+
+ /**
+ * The group which was set by <code>setGroup</code> must be returned
+ * while calling from object relation <code>XQueryAna</code>
+ * method <code>getGroup</code>
+ */
+ public void _setGroup() {
+ try{
+ String group = "\"Identifier\"";
+ oObj.setGroup(group);
+ tRes.tested("setGroup()", xQueryAna.getGroup().equals(group));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setGroup()", false);
+ }
+ }
+
+
+ /**
+ * The clause which was set by <code>setHavingClause</code> must be returned
+ * while calling from object relation <code>XQueryAna</code>
+ * method <code>getHavingClause</code>
+ */
+ public void _setHavingClause() {
+ try{
+ String clause = "\"Identifier\" = 'BOR02b'";
+ oObj.setHavingClause(clause);
+ tRes.tested("setHavingClause()",
+ xQueryAna.getHavingClause().equals(clause));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setHavingClause()", false);
+ }
+ }
+
+ /**
+ * At first <code>setHavingClause</code> sets a complex clause.
+ * Then method <code>getStructuredHavingClause</code> from object relation
+ * <code>xQueryAna</code> returns a valid <code>PropertyValue[][]</code>
+ * Method <code>setHavingClause</code> was called with an empty string to
+ * reset filter. Now <code>setStructuredHavingClause</code> with the valid
+ * <code>PropertyValue[][]</code> as parameter was called.
+ * Test is ok if <code>getHavingClause</code> from <code>xQueryAna</code>
+ * returns the complex clause from beginning.
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setHavingClause</code></li>
+ * <li><code>setStructuredFilter</code></li>
+ *</ul>
+ */
+ public void _setStructuredHavingClause() {
+ requiredMethod("setHavingClause()");
+ executeMethod("setStructuredFilter()");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ try{
+ oObj.setHavingClause(complexFilter);
+ PropertyValue[][] aStructuredHaving =
+ xQueryAna.getStructuredHavingClause();
+ oObj.setHavingClause("");
+ oObj.setStructuredHavingClause(aStructuredHaving);
+ tRes.tested("setStructuredHavingClause()",
+ xQueryAna.getHavingClause().equals(complexFilter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredHavingClause()", false);
+ }
+ }
+
+ /**
+ * First object relation <code>xProp</code> was used as parameter. Relation
+ * <code>xQueryAna</code> was used to check if relation <code>colName</code>
+ * was found.
+ * Second an empty <code>XPropertySet</code> was given as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendHavingClauseByColumn() {
+ boolean ok = true;
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ try{
+
+ oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendHavingClauseByColumn()", false);
+ ok = false;
+
+ }
+ catch (com.sun.star.uno.RuntimeException e)
+ {
+ log.println("expected Exception: " + e.toString());
+ ok = ok && true;
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.first();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ try{
+
+ oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("appendHavingClauseByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ try{
+ XPropertySet dummy = null;
+ oObj.appendHavingClauseByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendHavingClauseByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ // cleanup
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ tRes.tested("appendHavingClauseByColumn()", ok);
+ }
+
+ /**
+ * First object relation <code>xProp</code> was set as parameter. Relation
+ * <code>xQueryAna</code> was used to check if relation <code>colName</code>
+ * was found.
+ * Second an empty <code>XPropertySet</code> was given as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendOrderByColumn() {
+ boolean ok = true;
+ try{
+
+ oObj.appendOrderByColumn(xProp, true);
+ log.println("appendOrderByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendOrderByColumn()", false);
+ }
+ try{
+ XPropertySet dummy = null;
+ oObj.appendOrderByColumn(dummy, true);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendOrderByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ }
+ tRes.tested("appendOrderByColumn()", ok);
+ }
+
+
+ /**
+ * Method <code>getOrder</code> from object relation <code>xQueryAna</code>
+ * checks the order which was set while calling <code>setOrder</code>
+ */
+ public void _setOrder() {
+ try{
+ String order = "\"Identifier\"";
+ oObj.setOrder(order);
+ tRes.tested("setOrder()", xQueryAna.getOrder().equals(order));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setOrder()", false);
+ }
+ }
+
+
+
+} // finish class _XSingleSelectQueryComposer