1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package ifc.sdb; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import com.sun.star.sdb.XSingleSelectQueryComposer; 27*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 28*b1cdbd2cSJim Jagielski import com.sun.star.sdb.XSingleSelectQueryAnalyzer; 29*b1cdbd2cSJim Jagielski import com.sun.star.uno.AnyConverter; 30*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 31*b1cdbd2cSJim Jagielski import lib.StatusException; 32*b1cdbd2cSJim Jagielski import lib.Status; 33*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 34*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet; 35*b1cdbd2cSJim Jagielski import com.sun.star.sdb.SQLFilterOperator; 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski /** 38*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.sdb.XSingleSelectQueryComposer</code> 39*b1cdbd2cSJim Jagielski * interface methods : 40*b1cdbd2cSJim Jagielski * <ul> 41*b1cdbd2cSJim Jagielski * <li><code>setFilter()</code></li> 42*b1cdbd2cSJim Jagielski * <li><code>setStructuredFilter()</code></li> 43*b1cdbd2cSJim Jagielski * <li><code>appendFilterByColumn()</code></li> 44*b1cdbd2cSJim Jagielski * <li><code>appendGroupByColumn()</code></li> 45*b1cdbd2cSJim Jagielski * <li><code>setGroup()</code></li> 46*b1cdbd2cSJim Jagielski * <li><code>setHavingClause()</code></li> 47*b1cdbd2cSJim Jagielski * <li><code>setStructuredHavingClause()</code></li> 48*b1cdbd2cSJim Jagielski * <li><code>appendHavingClauseByColumn()</code></li> 49*b1cdbd2cSJim Jagielski * <li><code>appendOrderByColumn()</code></li> 50*b1cdbd2cSJim Jagielski * <li><code>setOrder()</code></li> 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski * </ul> <p> 53*b1cdbd2cSJim Jagielski * @see com.sun.star.sdb.XSingleSelectQueryComposer 54*b1cdbd2cSJim Jagielski */ 55*b1cdbd2cSJim Jagielski public class _XSingleSelectQueryComposer extends MultiMethodTest { 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski // oObj filled by MultiMethodTest 58*b1cdbd2cSJim Jagielski public XSingleSelectQueryComposer oObj = null ; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski private String queryString = "SELECT * FROM \"biblio\""; 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski private XSingleSelectQueryAnalyzer xQueryAna = null; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski private XPropertySet xProp = null; 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski private String colName = null; 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski /** 69*b1cdbd2cSJim Jagielski * Retcieves the object relations: 70*b1cdbd2cSJim Jagielski * <ul> 71*b1cdbd2cSJim Jagielski * <li><code>XSingleSelectQueryAnalyzer xQueryAna</code></li> 72*b1cdbd2cSJim Jagielski * <li><code>XPropertySet xProp</code></li> 73*b1cdbd2cSJim Jagielski * <li><code>String colName</code></li> 74*b1cdbd2cSJim Jagielski * </ul> <p> 75*b1cdbd2cSJim Jagielski * @see com.sun.star.sdb.XSingleSelectQueryAnalyzer 76*b1cdbd2cSJim Jagielski * @see com.sun.star.beans.XPropertySet 77*b1cdbd2cSJim Jagielski */ before()78*b1cdbd2cSJim Jagielski protected void before() /* throws Exception*/ { 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski xQueryAna = (XSingleSelectQueryAnalyzer) 81*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XSingleSelectQueryAnalyzer.class, 82*b1cdbd2cSJim Jagielski tEnv.getObjRelation("xQueryAna")); 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski if (xQueryAna == null) { 85*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 86*b1cdbd2cSJim Jagielski "Couldn't get object relation 'xQueryAna'. Test must be modified")); 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski } 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski xProp = (XPropertySet) 91*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XPropertySet.class, 92*b1cdbd2cSJim Jagielski tEnv.getObjRelation("xProp")); 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski if (xProp == null) { 95*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 96*b1cdbd2cSJim Jagielski "Couldn't get object relation 'xProp'. Test must be modified")); 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski } 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski try 101*b1cdbd2cSJim Jagielski { 102*b1cdbd2cSJim Jagielski colName = AnyConverter.toString(tEnv.getObjRelation("colName")); 103*b1cdbd2cSJim Jagielski } 104*b1cdbd2cSJim Jagielski catch (com.sun.star.lang.IllegalArgumentException e) 105*b1cdbd2cSJim Jagielski { 106*b1cdbd2cSJim Jagielski colName = null; 107*b1cdbd2cSJim Jagielski } 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski if (colName == null) { 110*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 111*b1cdbd2cSJim Jagielski "Couldn't get object relation 'colName'. Test must be modified")); 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski } 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski } 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski /** 119*b1cdbd2cSJim Jagielski * Object relation <code>xQueryAna</code> set a filter. This filter 120*b1cdbd2cSJim Jagielski * must returned while calling <code>getFilter</code> 121*b1cdbd2cSJim Jagielski */ _setFilter()122*b1cdbd2cSJim Jagielski public void _setFilter() { 123*b1cdbd2cSJim Jagielski try{ 124*b1cdbd2cSJim Jagielski String filter = "\"Identifier\" = 'BOR02b'"; 125*b1cdbd2cSJim Jagielski oObj.setFilter(filter); 126*b1cdbd2cSJim Jagielski tRes.tested("setFilter()", (xQueryAna.getFilter().equals(filter))); 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 129*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 130*b1cdbd2cSJim Jagielski tRes.tested("setFilter()", false); 131*b1cdbd2cSJim Jagielski } 132*b1cdbd2cSJim Jagielski } 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski /** 135*b1cdbd2cSJim Jagielski * Object relation <code>xQueryAna</code> set a complex filter with method 136*b1cdbd2cSJim Jagielski . <code>setFilter</code>. Then <code>getStructuredFilter</code> returns a 137*b1cdbd2cSJim Jagielski * sequenze of <code>PropertyValue</code> which was set with method 138*b1cdbd2cSJim Jagielski * <code>setStructuredFilter</code> from <code>xQueryAna</code>. 139*b1cdbd2cSJim Jagielski * Then test has ok status if <code>getFilter</code> returns the complex filter. 140*b1cdbd2cSJim Jagielski */ _setStructuredFilter()141*b1cdbd2cSJim Jagielski public void _setStructuredFilter() { 142*b1cdbd2cSJim Jagielski requiredMethod("setFilter()"); 143*b1cdbd2cSJim Jagielski try{ 144*b1cdbd2cSJim Jagielski xQueryAna.setQuery("SELECT \"Identifier\", \"Type\", \"Address\" FROM \"biblio\" \"biblio\""); 145*b1cdbd2cSJim Jagielski 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' )"; 146*b1cdbd2cSJim Jagielski oObj.setFilter(complexFilter); 147*b1cdbd2cSJim Jagielski PropertyValue[][] aStructuredFilter = xQueryAna.getStructuredFilter(); 148*b1cdbd2cSJim Jagielski oObj.setFilter(""); 149*b1cdbd2cSJim Jagielski oObj.setStructuredFilter(aStructuredFilter); 150*b1cdbd2cSJim Jagielski tRes.tested("setStructuredFilter()", (xQueryAna.getFilter().equals(complexFilter))); 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 153*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 154*b1cdbd2cSJim Jagielski tRes.tested("setStructuredFilter()", false); 155*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e){ 156*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 157*b1cdbd2cSJim Jagielski tRes.tested("setStructuredFilter()", false); 158*b1cdbd2cSJim Jagielski } 159*b1cdbd2cSJim Jagielski } 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski /** 162*b1cdbd2cSJim Jagielski * At first the object relation <code>xProp</code> was set as parameter. 163*b1cdbd2cSJim Jagielski * Relation <code>xQueryAna</code> was used to chek if realtion 164*b1cdbd2cSJim Jagielski * <code>colName</code> was found. 165*b1cdbd2cSJim Jagielski * Second an empty <code>XPropertySet</code> was used as parameter. A 166*b1cdbd2cSJim Jagielski * <code>com.sun.star.sdbc.SQLException</code> must be thrown. 167*b1cdbd2cSJim Jagielski */ _appendFilterByColumn()168*b1cdbd2cSJim Jagielski public void _appendFilterByColumn() { 169*b1cdbd2cSJim Jagielski boolean ok = true; 170*b1cdbd2cSJim Jagielski try{ 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL); 173*b1cdbd2cSJim Jagielski log.println("appendFilterByColumn: " + xQueryAna.getFilter()); 174*b1cdbd2cSJim Jagielski ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0); 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 177*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 178*b1cdbd2cSJim Jagielski tRes.tested("appendFilterByColumn()", false); 179*b1cdbd2cSJim Jagielski } 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski try{ 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski oObj.appendFilterByColumn(xProp, false,SQLFilterOperator.EQUAL); 184*b1cdbd2cSJim Jagielski log.println("appendFilterByColumn: " + xQueryAna.getFilter()); 185*b1cdbd2cSJim Jagielski ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0); 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 188*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 189*b1cdbd2cSJim Jagielski tRes.tested("appendFilterByColumn()", false); 190*b1cdbd2cSJim Jagielski } 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski try{ 193*b1cdbd2cSJim Jagielski XPropertySet dummy = null; 194*b1cdbd2cSJim Jagielski oObj.appendFilterByColumn(dummy, true,SQLFilterOperator.EQUAL); 195*b1cdbd2cSJim Jagielski log.println("expected Exception was not thrown"); 196*b1cdbd2cSJim Jagielski tRes.tested("appendFilterByColumn()", false); 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 199*b1cdbd2cSJim Jagielski log.println("expected Exception"); 200*b1cdbd2cSJim Jagielski ok = ok && true; 201*b1cdbd2cSJim Jagielski } 202*b1cdbd2cSJim Jagielski tRes.tested("appendFilterByColumn()", ok); 203*b1cdbd2cSJim Jagielski } 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski /** 206*b1cdbd2cSJim Jagielski * At first the object relation <code>xProp</code> was used as parameter. 207*b1cdbd2cSJim Jagielski * Relation <code>xQueryAna</code> was used to chek if realtion 208*b1cdbd2cSJim Jagielski * <code>colName</code> was found. 209*b1cdbd2cSJim Jagielski * Second an empty <code>XPropertySet</code> was used as parameter. An 210*b1cdbd2cSJim Jagielski * <code>com.sun.star.sdbc.SQLException</code> must be thrown. 211*b1cdbd2cSJim Jagielski */ _appendGroupByColumn()212*b1cdbd2cSJim Jagielski public void _appendGroupByColumn() { 213*b1cdbd2cSJim Jagielski boolean ok = true; 214*b1cdbd2cSJim Jagielski try{ 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski oObj.appendGroupByColumn(xProp); 217*b1cdbd2cSJim Jagielski log.println("appendGroupByColumn: " + xQueryAna.getFilter()); 218*b1cdbd2cSJim Jagielski ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0); 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 221*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 222*b1cdbd2cSJim Jagielski tRes.tested("appendGroupByColumn()", false); 223*b1cdbd2cSJim Jagielski } 224*b1cdbd2cSJim Jagielski try{ 225*b1cdbd2cSJim Jagielski XPropertySet dummy = null; 226*b1cdbd2cSJim Jagielski oObj.appendGroupByColumn(dummy); 227*b1cdbd2cSJim Jagielski log.println("expected Exception was not thrown"); 228*b1cdbd2cSJim Jagielski tRes.tested("appendGroupByColumn()", false); 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 231*b1cdbd2cSJim Jagielski log.println("expected Exception"); 232*b1cdbd2cSJim Jagielski ok = ok && true; 233*b1cdbd2cSJim Jagielski } 234*b1cdbd2cSJim Jagielski tRes.tested("appendGroupByColumn()", ok); 235*b1cdbd2cSJim Jagielski } 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski /** 238*b1cdbd2cSJim Jagielski * The group which was setted by <code>setGroup</code> must be returned 239*b1cdbd2cSJim Jagielski * while calling from object relation <code>XQueryAna</code> 240*b1cdbd2cSJim Jagielski * method <code>getGroup</code> 241*b1cdbd2cSJim Jagielski */ _setGroup()242*b1cdbd2cSJim Jagielski public void _setGroup() { 243*b1cdbd2cSJim Jagielski try{ 244*b1cdbd2cSJim Jagielski String group = "\"Identifier\""; 245*b1cdbd2cSJim Jagielski oObj.setGroup(group); 246*b1cdbd2cSJim Jagielski tRes.tested("setGroup()", (xQueryAna.getGroup().equals(group))); 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 249*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 250*b1cdbd2cSJim Jagielski tRes.tested("setGroup()", false); 251*b1cdbd2cSJim Jagielski } 252*b1cdbd2cSJim Jagielski } 253*b1cdbd2cSJim Jagielski 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski /** 256*b1cdbd2cSJim Jagielski * The cluase which was setted by <code>setHavingClause</code> must be returned 257*b1cdbd2cSJim Jagielski * while calling from object relation <code>XQueryAna</code> 258*b1cdbd2cSJim Jagielski * method <code>getHavingClause</code> 259*b1cdbd2cSJim Jagielski */ _setHavingClause()260*b1cdbd2cSJim Jagielski public void _setHavingClause() { 261*b1cdbd2cSJim Jagielski try{ 262*b1cdbd2cSJim Jagielski String clause = "\"Identifier\" = 'BOR02b'"; 263*b1cdbd2cSJim Jagielski oObj.setHavingClause(clause); 264*b1cdbd2cSJim Jagielski tRes.tested("setHavingClause()", ( 265*b1cdbd2cSJim Jagielski xQueryAna.getHavingClause().equals(clause))); 266*b1cdbd2cSJim Jagielski 267*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 268*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 269*b1cdbd2cSJim Jagielski tRes.tested("setHavingClause()", false); 270*b1cdbd2cSJim Jagielski } 271*b1cdbd2cSJim Jagielski } 272*b1cdbd2cSJim Jagielski 273*b1cdbd2cSJim Jagielski /** 274*b1cdbd2cSJim Jagielski * At first <code>setHavingClause</code> sets a complex clause. 275*b1cdbd2cSJim Jagielski * Then method <code>getStructuredHavingClause</code> from object relation 276*b1cdbd2cSJim Jagielski * <code>xQueryAna</code> returns a valid <code>PropertyValue[][]</code> 277*b1cdbd2cSJim Jagielski * Method <code>setHavingClause</code> was called with an empty sting to 278*b1cdbd2cSJim Jagielski * reset filter. Now <code>setStructuredHavingClause</code> with the valid 279*b1cdbd2cSJim Jagielski * <code>PropertyValue[][]</code> as parameter was called. 280*b1cdbd2cSJim Jagielski * Test is ok if <code>getHavingClause</code> from <code>xQueryAna</code> 281*b1cdbd2cSJim Jagielski * returns the complex clause from beginning. 282*b1cdbd2cSJim Jagielski * <p> 283*b1cdbd2cSJim Jagielski * required methods: 284*b1cdbd2cSJim Jagielski *<ul> 285*b1cdbd2cSJim Jagielski * <li><code>setHavingClause</code></li> 286*b1cdbd2cSJim Jagielski * <li><code>setStructuredFilter</code></li> 287*b1cdbd2cSJim Jagielski *</ul> 288*b1cdbd2cSJim Jagielski */ _setStructuredHavingClause()289*b1cdbd2cSJim Jagielski public void _setStructuredHavingClause() { 290*b1cdbd2cSJim Jagielski requiredMethod("setHavingClause()"); 291*b1cdbd2cSJim Jagielski executeMethod("setStructuredFilter()"); 292*b1cdbd2cSJim Jagielski 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' )"; 293*b1cdbd2cSJim Jagielski 294*b1cdbd2cSJim Jagielski try{ 295*b1cdbd2cSJim Jagielski oObj.setHavingClause(complexFilter); 296*b1cdbd2cSJim Jagielski PropertyValue[][] aStructuredHaving = 297*b1cdbd2cSJim Jagielski xQueryAna.getStructuredHavingClause(); 298*b1cdbd2cSJim Jagielski oObj.setHavingClause(""); 299*b1cdbd2cSJim Jagielski oObj.setStructuredHavingClause(aStructuredHaving); 300*b1cdbd2cSJim Jagielski tRes.tested("setStructuredHavingClause()", 301*b1cdbd2cSJim Jagielski (xQueryAna.getHavingClause().equals(complexFilter))); 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 304*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 305*b1cdbd2cSJim Jagielski tRes.tested("setStructuredHavingClause()", false); 306*b1cdbd2cSJim Jagielski } 307*b1cdbd2cSJim Jagielski } 308*b1cdbd2cSJim Jagielski 309*b1cdbd2cSJim Jagielski /** 310*b1cdbd2cSJim Jagielski * First object relation <code>xProp</code> was used as parameter. Relation 311*b1cdbd2cSJim Jagielski * <code>xQueryAna</code> was used to chek if realtion <code>colName</code> 312*b1cdbd2cSJim Jagielski * was found. 313*b1cdbd2cSJim Jagielski * Second an empty <code>XPropertySet</code> was given as parameter. An 314*b1cdbd2cSJim Jagielski * <code>com.sun.star.sdbc.SQLException</code> must be thrown. 315*b1cdbd2cSJim Jagielski */ _appendHavingClauseByColumn()316*b1cdbd2cSJim Jagielski public void _appendHavingClauseByColumn() { 317*b1cdbd2cSJim Jagielski boolean ok = true; 318*b1cdbd2cSJim Jagielski try{ 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL); 321*b1cdbd2cSJim Jagielski log.println("appendHavingClauseByColumn: " + xQueryAna.getFilter()); 322*b1cdbd2cSJim Jagielski ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0); 323*b1cdbd2cSJim Jagielski 324*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 325*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 326*b1cdbd2cSJim Jagielski tRes.tested("appendHavingClauseByColumn()", false); 327*b1cdbd2cSJim Jagielski } 328*b1cdbd2cSJim Jagielski try{ 329*b1cdbd2cSJim Jagielski XPropertySet dummy = null; 330*b1cdbd2cSJim Jagielski oObj.appendHavingClauseByColumn(dummy, true,SQLFilterOperator.EQUAL); 331*b1cdbd2cSJim Jagielski log.println("expected Exception was not thrown"); 332*b1cdbd2cSJim Jagielski tRes.tested("appendHavingClauseByColumn()", false); 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 335*b1cdbd2cSJim Jagielski log.println("expected Exception"); 336*b1cdbd2cSJim Jagielski ok = ok && true; 337*b1cdbd2cSJim Jagielski } 338*b1cdbd2cSJim Jagielski tRes.tested("appendHavingClauseByColumn()", ok); 339*b1cdbd2cSJim Jagielski } 340*b1cdbd2cSJim Jagielski 341*b1cdbd2cSJim Jagielski /** 342*b1cdbd2cSJim Jagielski * First object relation <code>xProp</code> was set as parameter. Relation 343*b1cdbd2cSJim Jagielski * <code>xQueryAna</code> was used to chek if realtion <code>colName</code> 344*b1cdbd2cSJim Jagielski * was found. 345*b1cdbd2cSJim Jagielski * Second an empty <code>XPropertySet</code> was given as parameter. An 346*b1cdbd2cSJim Jagielski * <code>com.sun.star.sdbc.SQLException</code> must be thrown. 347*b1cdbd2cSJim Jagielski */ _appendOrderByColumn()348*b1cdbd2cSJim Jagielski public void _appendOrderByColumn() { 349*b1cdbd2cSJim Jagielski boolean ok = true; 350*b1cdbd2cSJim Jagielski try{ 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski oObj.appendOrderByColumn(xProp, true); 353*b1cdbd2cSJim Jagielski log.println("appendOrderByColumn: " + xQueryAna.getFilter()); 354*b1cdbd2cSJim Jagielski ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0); 355*b1cdbd2cSJim Jagielski 356*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 357*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 358*b1cdbd2cSJim Jagielski tRes.tested("appendOrderByColumn()", false); 359*b1cdbd2cSJim Jagielski } 360*b1cdbd2cSJim Jagielski try{ 361*b1cdbd2cSJim Jagielski XPropertySet dummy = null; 362*b1cdbd2cSJim Jagielski oObj.appendOrderByColumn(dummy, true); 363*b1cdbd2cSJim Jagielski log.println("expected Exception was not thrown"); 364*b1cdbd2cSJim Jagielski tRes.tested("appendOrderByColumn()", false); 365*b1cdbd2cSJim Jagielski 366*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 367*b1cdbd2cSJim Jagielski log.println("expected Exception"); 368*b1cdbd2cSJim Jagielski ok = ok && true; 369*b1cdbd2cSJim Jagielski } 370*b1cdbd2cSJim Jagielski tRes.tested("appendOrderByColumn()", ok); 371*b1cdbd2cSJim Jagielski } 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski /** 375*b1cdbd2cSJim Jagielski * Method <code>getOrder</code> from object relation <code>xQueryAna</code> 376*b1cdbd2cSJim Jagielski * checks the order which was setted while calling <code>setOrder</code> 377*b1cdbd2cSJim Jagielski */ _setOrder()378*b1cdbd2cSJim Jagielski public void _setOrder() { 379*b1cdbd2cSJim Jagielski try{ 380*b1cdbd2cSJim Jagielski String order = "\"Identifier\""; 381*b1cdbd2cSJim Jagielski oObj.setOrder(order); 382*b1cdbd2cSJim Jagielski tRes.tested("setOrder()", (xQueryAna.getOrder().equals(order))); 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielski } catch (com.sun.star.sdbc.SQLException e){ 385*b1cdbd2cSJim Jagielski log.println("unexpected Exception: " + e.toString()); 386*b1cdbd2cSJim Jagielski tRes.tested("setOrder()", false); 387*b1cdbd2cSJim Jagielski } 388*b1cdbd2cSJim Jagielski } 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim Jagielski } // finish class _XSingleSelectQueryComposer 393