<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>EvalQueryTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../testapidocs/org/apache/chemistry/opencmis/inmemory/query/EvalQueryTest.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.inmemory.query;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.COMPLEX_TYPE;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.PROP_ID_BOOLEAN;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.PROP_ID_DATETIME;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.PROP_ID_DECIMAL;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.PROP_ID_ID;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.PROP_ID_INT;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator.SECONDARY_TYPE;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNotNull;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
<a class="jxr_linenumber" name="33" href="#33">33</a>  
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.antlr.runtime.RecognitionException;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.AbstractServiceTest;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.UnitTestTypeSystemCreator;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.junit.After;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="52" href="#52">52</a>  
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/query/EvalQueryTest.html">EvalQueryTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.html">AbstractServiceTest</a> {
<a class="jxr_linenumber" name="54" href="#54">54</a>  
<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger log = LoggerFactory.getLogger(EvalQueryTest.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/query/QueryTestDataCreator.html">QueryTestDataCreator</a> dataCreator;
<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> COUNT = 0;
<a class="jxr_linenumber" name="58" href="#58">58</a>  
<a class="jxr_linenumber" name="59" href="#59">59</a>      @Override
<a class="jxr_linenumber" name="60" href="#60">60</a>      @Before
<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() {
<a class="jxr_linenumber" name="62" href="#62">62</a>      	setUp(false);
<a class="jxr_linenumber" name="63" href="#63">63</a>      }
<a class="jxr_linenumber" name="64" href="#64">64</a>  
<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp(<strong class="jxr_keyword">boolean</strong> parserMode) {
<a class="jxr_linenumber" name="66" href="#66">66</a>          <em class="jxr_comment">// initialize query object with type manager</em>
<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">super</strong>.setTypeCreatorClass(UnitTestTypeSystemCreator.<strong class="jxr_keyword">class</strong>.getName());
<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">super</strong>.setUp(parserMode);
<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">// create test data</em>
<a class="jxr_linenumber" name="70" href="#70">70</a>          dataCreator = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/query/QueryTestDataCreator.html">QueryTestDataCreator</a>(fRepositoryId, fRootFolderId, fObjSvc, fVerSvc);
<a class="jxr_linenumber" name="71" href="#71">71</a>          dataCreator.createBasicTestData();
<a class="jxr_linenumber" name="72" href="#72">72</a>      }
<a class="jxr_linenumber" name="73" href="#73">73</a>      
<a class="jxr_linenumber" name="74" href="#74">74</a>      @Override
<a class="jxr_linenumber" name="75" href="#75">75</a>      @After
<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
<a class="jxr_linenumber" name="77" href="#77">77</a>          log.debug(<span class="jxr_string">"tearDown started."</span>);
<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">super</strong>.tearDown();
<a class="jxr_linenumber" name="79" href="#79">79</a>          log.debug(<span class="jxr_string">"tearDown done."</span>);
<a class="jxr_linenumber" name="80" href="#80">80</a>      }
<a class="jxr_linenumber" name="81" href="#81">81</a>  
<a class="jxr_linenumber" name="82" href="#82">82</a>      @Test
<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAll() {
<a class="jxr_linenumber" name="84" href="#84">84</a>          log.debug(<span class="jxr_string">"Start testAll..."</span>);
<a class="jxr_linenumber" name="85" href="#85">85</a>          String statement = <span class="jxr_string">"SELECT * FROM cmis:document"</span>;
<a class="jxr_linenumber" name="86" href="#86">86</a>          ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="87" href="#87">87</a>          assertEquals(6, res.getObjects().size());
<a class="jxr_linenumber" name="88" href="#88">88</a>          assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="89" href="#89">89</a>          assertFalse(resultContains(<span class="jxr_string">"jens"</span>, res));
<a class="jxr_linenumber" name="90" href="#90">90</a>          log.debug(<span class="jxr_string">"...Stop testAll."</span>);
<a class="jxr_linenumber" name="91" href="#91">91</a>      }
<a class="jxr_linenumber" name="92" href="#92">92</a>  
<a class="jxr_linenumber" name="93" href="#93">93</a>      <em class="jxr_comment">// ////////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="94" href="#94">94</a>      <em class="jxr_comment">// Boolean tests</em>
<a class="jxr_linenumber" name="95" href="#95">95</a>  
<a class="jxr_linenumber" name="96" href="#96">96</a>      @Test
<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBooleanEquals() {
<a class="jxr_linenumber" name="98" href="#98">98</a>          log.debug(<span class="jxr_string">"Start testBooleanEquals..."</span>);
<a class="jxr_linenumber" name="99" href="#99">99</a>          String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_BOOLEAN + <span class="jxr_string">"= true"</span>;
<a class="jxr_linenumber" name="100" href="#100">100</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="101" href="#101">101</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="102" href="#102">102</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="103" href="#103">103</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="104" href="#104">104</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="105" href="#105">105</a>         log.debug(<span class="jxr_string">"...Stop testBooleanEquals."</span>);
<a class="jxr_linenumber" name="106" href="#106">106</a>     }
<a class="jxr_linenumber" name="107" href="#107">107</a> 
<a class="jxr_linenumber" name="108" href="#108">108</a>     @Test
<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBooleanNotEquals() {
<a class="jxr_linenumber" name="110" href="#110">110</a>         log.debug(<span class="jxr_string">"Start testBooleanNotEquals..."</span>);
<a class="jxr_linenumber" name="111" href="#111">111</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_BOOLEAN + <span class="jxr_string">"= false"</span>;
<a class="jxr_linenumber" name="112" href="#112">112</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="113" href="#113">113</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="114" href="#114">114</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="115" href="#115">115</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="116" href="#116">116</a>         log.debug(<span class="jxr_string">"...Stop testBooleanNotEquals."</span>);
<a class="jxr_linenumber" name="117" href="#117">117</a>     }
<a class="jxr_linenumber" name="118" href="#118">118</a> 
<a class="jxr_linenumber" name="119" href="#119">119</a>     <em class="jxr_comment">// ////////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="120" href="#120">120</a>     <em class="jxr_comment">// Integer tests</em>
<a class="jxr_linenumber" name="121" href="#121">121</a> 
<a class="jxr_linenumber" name="122" href="#122">122</a>     @Test
<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerEquals() {
<a class="jxr_linenumber" name="124" href="#124">124</a>         log.debug(<span class="jxr_string">"Start testIntegerEquals..."</span>);
<a class="jxr_linenumber" name="125" href="#125">125</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"= 100"</span>;
<a class="jxr_linenumber" name="126" href="#126">126</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="127" href="#127">127</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="128" href="#128">128</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="129" href="#129">129</a>         log.debug(<span class="jxr_string">"...Stop testIntegerEquals."</span>);
<a class="jxr_linenumber" name="130" href="#130">130</a>     }
<a class="jxr_linenumber" name="131" href="#131">131</a> 
<a class="jxr_linenumber" name="132" href="#132">132</a>     @Test
<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerNotEquals() {
<a class="jxr_linenumber" name="134" href="#134">134</a>         log.debug(<span class="jxr_string">"Start testIntegerNotEquals..."</span>);
<a class="jxr_linenumber" name="135" href="#135">135</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"&lt;&gt; 100"</span>;
<a class="jxr_linenumber" name="136" href="#136">136</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="137" href="#137">137</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="138" href="#138">138</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="139" href="#139">139</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="140" href="#140">140</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="141" href="#141">141</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="142" href="#142">142</a>         log.debug(<span class="jxr_string">"...Stop testIntegerNotEquals."</span>);
<a class="jxr_linenumber" name="143" href="#143">143</a>     }
<a class="jxr_linenumber" name="144" href="#144">144</a> 
<a class="jxr_linenumber" name="145" href="#145">145</a>     @Test
<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerLess() {
<a class="jxr_linenumber" name="147" href="#147">147</a>         log.debug(<span class="jxr_string">"Start testIntegerLess..."</span>);
<a class="jxr_linenumber" name="148" href="#148">148</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"&lt; 0"</span>;
<a class="jxr_linenumber" name="149" href="#149">149</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="150" href="#150">150</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="151" href="#151">151</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="152" href="#152">152</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="153" href="#153">153</a>         log.debug(<span class="jxr_string">"...Stop testIntegerLess."</span>);
<a class="jxr_linenumber" name="154" href="#154">154</a>     }
<a class="jxr_linenumber" name="155" href="#155">155</a> 
<a class="jxr_linenumber" name="156" href="#156">156</a>     @Test
<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerLessOrEqual() {
<a class="jxr_linenumber" name="158" href="#158">158</a>         log.debug(<span class="jxr_string">"Start testIntegerLessOrEqual..."</span>);
<a class="jxr_linenumber" name="159" href="#159">159</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"&lt;= 0"</span>;
<a class="jxr_linenumber" name="160" href="#160">160</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="161" href="#161">161</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="162" href="#162">162</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="163" href="#163">163</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="164" href="#164">164</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="165" href="#165">165</a>         log.debug(<span class="jxr_string">"...Stop testIntegerLessOrEqual."</span>);
<a class="jxr_linenumber" name="166" href="#166">166</a>     }
<a class="jxr_linenumber" name="167" href="#167">167</a> 
<a class="jxr_linenumber" name="168" href="#168">168</a>     @Test
<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerGreater() {
<a class="jxr_linenumber" name="170" href="#170">170</a>         log.debug(<span class="jxr_string">"Start testIntegerGreater..."</span>);
<a class="jxr_linenumber" name="171" href="#171">171</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"&gt; 0"</span>;
<a class="jxr_linenumber" name="172" href="#172">172</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="173" href="#173">173</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="174" href="#174">174</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="175" href="#175">175</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="176" href="#176">176</a>         log.debug(<span class="jxr_string">"...Stop testIntegerGreater."</span>);
<a class="jxr_linenumber" name="177" href="#177">177</a>     }
<a class="jxr_linenumber" name="178" href="#178">178</a> 
<a class="jxr_linenumber" name="179" href="#179">179</a>     @Test
<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIntegerGreaterOrEqual() {
<a class="jxr_linenumber" name="181" href="#181">181</a>         log.debug(<span class="jxr_string">"Start testIntegerGreaterOrEqual..."</span>);
<a class="jxr_linenumber" name="182" href="#182">182</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"&gt;= 0"</span>;
<a class="jxr_linenumber" name="183" href="#183">183</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="184" href="#184">184</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="185" href="#185">185</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="186" href="#186">186</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="187" href="#187">187</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="188" href="#188">188</a>         log.debug(<span class="jxr_string">"...Stop testIntegerGreaterOrEqual."</span>);
<a class="jxr_linenumber" name="189" href="#189">189</a>     }
<a class="jxr_linenumber" name="190" href="#190">190</a> 
<a class="jxr_linenumber" name="191" href="#191">191</a>     <em class="jxr_comment">// ////////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="192" href="#192">192</a>     <em class="jxr_comment">// Decimal tests</em>
<a class="jxr_linenumber" name="193" href="#193">193</a> 
<a class="jxr_linenumber" name="194" href="#194">194</a>     @Test
<a class="jxr_linenumber" name="195" href="#195">195</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalEquals() {
<a class="jxr_linenumber" name="196" href="#196">196</a>         log.debug(<span class="jxr_string">"Start testDecimalEquals..."</span>);
<a class="jxr_linenumber" name="197" href="#197">197</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"= 1.23456E-6"</span>;
<a class="jxr_linenumber" name="198" href="#198">198</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="199" href="#199">199</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="200" href="#200">200</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="201" href="#201">201</a>         log.debug(<span class="jxr_string">"...Stop testDecimalEquals."</span>);
<a class="jxr_linenumber" name="202" href="#202">202</a>     }
<a class="jxr_linenumber" name="203" href="#203">203</a> 
<a class="jxr_linenumber" name="204" href="#204">204</a>     @Test
<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalNotEquals() {
<a class="jxr_linenumber" name="206" href="#206">206</a>         log.debug(<span class="jxr_string">"Start testDecimalNotEquals..."</span>);
<a class="jxr_linenumber" name="207" href="#207">207</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"&lt;&gt; 1.23456E-6"</span>;
<a class="jxr_linenumber" name="208" href="#208">208</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="209" href="#209">209</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="210" href="#210">210</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="211" href="#211">211</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="212" href="#212">212</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="213" href="#213">213</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="214" href="#214">214</a>         log.debug(<span class="jxr_string">"...Stop testDecimalNotEquals."</span>);
<a class="jxr_linenumber" name="215" href="#215">215</a>     }
<a class="jxr_linenumber" name="216" href="#216">216</a> 
<a class="jxr_linenumber" name="217" href="#217">217</a>     @Test
<a class="jxr_linenumber" name="218" href="#218">218</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalLess() {
<a class="jxr_linenumber" name="219" href="#219">219</a>         log.debug(<span class="jxr_string">"Start testDecimalLess..."</span>);
<a class="jxr_linenumber" name="220" href="#220">220</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"&lt; 1.23456E-6"</span>;
<a class="jxr_linenumber" name="221" href="#221">221</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="222" href="#222">222</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="223" href="#223">223</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="224" href="#224">224</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="225" href="#225">225</a>         log.debug(<span class="jxr_string">"...Stop testDecimalLess."</span>);
<a class="jxr_linenumber" name="226" href="#226">226</a>     }
<a class="jxr_linenumber" name="227" href="#227">227</a> 
<a class="jxr_linenumber" name="228" href="#228">228</a>     @Test
<a class="jxr_linenumber" name="229" href="#229">229</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalLessOrEqual() {
<a class="jxr_linenumber" name="230" href="#230">230</a>         log.debug(<span class="jxr_string">"Start testDecimalLessOrEqual..."</span>);
<a class="jxr_linenumber" name="231" href="#231">231</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"&lt;= 1.23456E-6"</span>;
<a class="jxr_linenumber" name="232" href="#232">232</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="233" href="#233">233</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="234" href="#234">234</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="235" href="#235">235</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="236" href="#236">236</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="237" href="#237">237</a>         log.debug(<span class="jxr_string">"...Stop testDecimalLessOrEqual."</span>);
<a class="jxr_linenumber" name="238" href="#238">238</a>     }
<a class="jxr_linenumber" name="239" href="#239">239</a> 
<a class="jxr_linenumber" name="240" href="#240">240</a>     @Test
<a class="jxr_linenumber" name="241" href="#241">241</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalGreater() {
<a class="jxr_linenumber" name="242" href="#242">242</a>         log.debug(<span class="jxr_string">"Start testDecimalGreater..."</span>);
<a class="jxr_linenumber" name="243" href="#243">243</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"&gt; 1.23456E-6"</span>;
<a class="jxr_linenumber" name="244" href="#244">244</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="245" href="#245">245</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="246" href="#246">246</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="247" href="#247">247</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="248" href="#248">248</a>         log.debug(<span class="jxr_string">"...Stop testDecimalGreater."</span>);
<a class="jxr_linenumber" name="249" href="#249">249</a>     }
<a class="jxr_linenumber" name="250" href="#250">250</a> 
<a class="jxr_linenumber" name="251" href="#251">251</a>     @Test
<a class="jxr_linenumber" name="252" href="#252">252</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecimalGreaterOrEqual() {
<a class="jxr_linenumber" name="253" href="#253">253</a>         log.debug(<span class="jxr_string">"Start testDecimalGreaterOrEqual..."</span>);
<a class="jxr_linenumber" name="254" href="#254">254</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DECIMAL + <span class="jxr_string">"&gt;= 1.23456E-6"</span>;
<a class="jxr_linenumber" name="255" href="#255">255</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="256" href="#256">256</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="257" href="#257">257</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="258" href="#258">258</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="259" href="#259">259</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="260" href="#260">260</a>         log.debug(<span class="jxr_string">"...Stop testDecimalGreaterOrEqual."</span>);
<a class="jxr_linenumber" name="261" href="#261">261</a>     }
<a class="jxr_linenumber" name="262" href="#262">262</a> 
<a class="jxr_linenumber" name="263" href="#263">263</a>     <em class="jxr_comment">// ////////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="264" href="#264">264</a>     <em class="jxr_comment">// DateTime tests</em>
<a class="jxr_linenumber" name="265" href="#265">265</a> 
<a class="jxr_linenumber" name="266" href="#266">266</a>     @Test
<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDateEquals() {
<a class="jxr_linenumber" name="268" href="#268">268</a>         log.debug(<span class="jxr_string">"Start testDateEquals..."</span>);
<a class="jxr_linenumber" name="269" href="#269">269</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="270" href="#270">270</a>                 + <span class="jxr_string">"= TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="271" href="#271">271</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="272" href="#272">272</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="273" href="#273">273</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="274" href="#274">274</a>         log.debug(<span class="jxr_string">"...Stop testDateEquals."</span>);
<a class="jxr_linenumber" name="275" href="#275">275</a>     }
<a class="jxr_linenumber" name="276" href="#276">276</a> 
<a class="jxr_linenumber" name="277" href="#277">277</a>     @Test
<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDateNotEquals() {
<a class="jxr_linenumber" name="279" href="#279">279</a>         log.debug(<span class="jxr_string">"Start testDateNotEquals..."</span>);
<a class="jxr_linenumber" name="280" href="#280">280</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="281" href="#281">281</a>                 + <span class="jxr_string">"&lt;&gt; TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="282" href="#282">282</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="283" href="#283">283</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="284" href="#284">284</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="285" href="#285">285</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="286" href="#286">286</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="287" href="#287">287</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="288" href="#288">288</a>         log.debug(<span class="jxr_string">"...Stop testDateNotEquals."</span>);
<a class="jxr_linenumber" name="289" href="#289">289</a>     }
<a class="jxr_linenumber" name="290" href="#290">290</a> 
<a class="jxr_linenumber" name="291" href="#291">291</a>     @Test
<a class="jxr_linenumber" name="292" href="#292">292</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDateLess() {
<a class="jxr_linenumber" name="293" href="#293">293</a>         log.debug(<span class="jxr_string">"Start testDateLess..."</span>);
<a class="jxr_linenumber" name="294" href="#294">294</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="295" href="#295">295</a>                 + <span class="jxr_string">"&lt; TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="296" href="#296">296</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="297" href="#297">297</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="298" href="#298">298</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="299" href="#299">299</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="300" href="#300">300</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="301" href="#301">301</a>         log.debug(<span class="jxr_string">"...Stop testDateLess."</span>);
<a class="jxr_linenumber" name="302" href="#302">302</a>     }
<a class="jxr_linenumber" name="303" href="#303">303</a> 
<a class="jxr_linenumber" name="304" href="#304">304</a>     @Test
<a class="jxr_linenumber" name="305" href="#305">305</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDateLessOrEquals() {
<a class="jxr_linenumber" name="306" href="#306">306</a>         log.debug(<span class="jxr_string">"Start testDateLessOrEquals..."</span>);
<a class="jxr_linenumber" name="307" href="#307">307</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="308" href="#308">308</a>                 + <span class="jxr_string">"&lt;= TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="309" href="#309">309</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="310" href="#310">310</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="311" href="#311">311</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="312" href="#312">312</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="313" href="#313">313</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="314" href="#314">314</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="315" href="#315">315</a>         log.debug(<span class="jxr_string">"...Stop testDateLessOrEquals."</span>);
<a class="jxr_linenumber" name="316" href="#316">316</a>     }
<a class="jxr_linenumber" name="317" href="#317">317</a> 
<a class="jxr_linenumber" name="318" href="#318">318</a>     @Test
<a class="jxr_linenumber" name="319" href="#319">319</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDategreater() {
<a class="jxr_linenumber" name="320" href="#320">320</a>         log.debug(<span class="jxr_string">"Start testDateGreaterOrEqual..."</span>);
<a class="jxr_linenumber" name="321" href="#321">321</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="322" href="#322">322</a>                 + <span class="jxr_string">"&gt; TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="323" href="#323">323</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="324" href="#324">324</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="325" href="#325">325</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="326" href="#326">326</a>         log.debug(<span class="jxr_string">"...Stop testDateGreaterOrEqual."</span>);
<a class="jxr_linenumber" name="327" href="#327">327</a>     }
<a class="jxr_linenumber" name="328" href="#328">328</a> 
<a class="jxr_linenumber" name="329" href="#329">329</a>     <em class="jxr_comment">// @Test</em>
<a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDateGreaterOrEqual() {
<a class="jxr_linenumber" name="331" href="#331">331</a>         log.debug(<span class="jxr_string">"Start testDateGreaterOrEqual..."</span>);
<a class="jxr_linenumber" name="332" href="#332">332</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_DATETIME
<a class="jxr_linenumber" name="333" href="#333">333</a>                 + <span class="jxr_string">"&gt;= TIMESTAMP '2038-01-20T00:00:00.000Z'"</span>;
<a class="jxr_linenumber" name="334" href="#334">334</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="335" href="#335">335</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="336" href="#336">336</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="337" href="#337">337</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="338" href="#338">338</a>         log.debug(<span class="jxr_string">"...Stop testDateGreaterOrEqual."</span>);
<a class="jxr_linenumber" name="339" href="#339">339</a>     }
<a class="jxr_linenumber" name="340" href="#340">340</a> 
<a class="jxr_linenumber" name="341" href="#341">341</a>     <em class="jxr_comment">// //////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="342" href="#342">342</a>     <em class="jxr_comment">// String tests</em>
<a class="jxr_linenumber" name="343" href="#343">343</a> 
<a class="jxr_linenumber" name="344" href="#344">344</a>     @Test
<a class="jxr_linenumber" name="345" href="#345">345</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringEquals() {
<a class="jxr_linenumber" name="346" href="#346">346</a>         log.debug(<span class="jxr_string">"Start testStringEquals..."</span>);
<a class="jxr_linenumber" name="347" href="#347">347</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="348" href="#348">348</a>                 + <span class="jxr_string">"= 'Alpha'"</span>;
<a class="jxr_linenumber" name="349" href="#349">349</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="350" href="#350">350</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="351" href="#351">351</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="352" href="#352">352</a>         log.debug(<span class="jxr_string">"...Stop testStringEquals."</span>);
<a class="jxr_linenumber" name="353" href="#353">353</a>     }
<a class="jxr_linenumber" name="354" href="#354">354</a> 
<a class="jxr_linenumber" name="355" href="#355">355</a>     @Test
<a class="jxr_linenumber" name="356" href="#356">356</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringNotEquals() {
<a class="jxr_linenumber" name="357" href="#357">357</a>         log.debug(<span class="jxr_string">"Start testStringNotEquals..."</span>);
<a class="jxr_linenumber" name="358" href="#358">358</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="359" href="#359">359</a>                 + <span class="jxr_string">"&lt;&gt; 'Gamma'"</span>;
<a class="jxr_linenumber" name="360" href="#360">360</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="361" href="#361">361</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="362" href="#362">362</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="363" href="#363">363</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="364" href="#364">364</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="365" href="#365">365</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="366" href="#366">366</a>         log.debug(<span class="jxr_string">"...Stop testStringNotEquals."</span>);
<a class="jxr_linenumber" name="367" href="#367">367</a>     }
<a class="jxr_linenumber" name="368" href="#368">368</a> 
<a class="jxr_linenumber" name="369" href="#369">369</a>     @Test
<a class="jxr_linenumber" name="370" href="#370">370</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringLess() {
<a class="jxr_linenumber" name="371" href="#371">371</a>         log.debug(<span class="jxr_string">"Start testStringLess..."</span>);
<a class="jxr_linenumber" name="372" href="#372">372</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="373" href="#373">373</a>                 + <span class="jxr_string">"&lt; 'Delta'"</span>;
<a class="jxr_linenumber" name="374" href="#374">374</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="375" href="#375">375</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="376" href="#376">376</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="377" href="#377">377</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="378" href="#378">378</a>         log.debug(<span class="jxr_string">"...Stop testStringLess."</span>);
<a class="jxr_linenumber" name="379" href="#379">379</a>     }
<a class="jxr_linenumber" name="380" href="#380">380</a> 
<a class="jxr_linenumber" name="381" href="#381">381</a>     @Test
<a class="jxr_linenumber" name="382" href="#382">382</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringLessOrEquals() {
<a class="jxr_linenumber" name="383" href="#383">383</a>         log.debug(<span class="jxr_string">"Start testStringLessOrEquals..."</span>);
<a class="jxr_linenumber" name="384" href="#384">384</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="385" href="#385">385</a>                 + <span class="jxr_string">"&lt;= 'Delta'"</span>;
<a class="jxr_linenumber" name="386" href="#386">386</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="387" href="#387">387</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="388" href="#388">388</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="389" href="#389">389</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="390" href="#390">390</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="391" href="#391">391</a>         log.debug(<span class="jxr_string">"...Stop testStringLessOrEquals."</span>);
<a class="jxr_linenumber" name="392" href="#392">392</a>     }
<a class="jxr_linenumber" name="393" href="#393">393</a> 
<a class="jxr_linenumber" name="394" href="#394">394</a>     @Test
<a class="jxr_linenumber" name="395" href="#395">395</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringGreater() {
<a class="jxr_linenumber" name="396" href="#396">396</a>         log.debug(<span class="jxr_string">"Start testStringGreater..."</span>);
<a class="jxr_linenumber" name="397" href="#397">397</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="398" href="#398">398</a>                 + <span class="jxr_string">"&gt; 'Delta'"</span>;
<a class="jxr_linenumber" name="399" href="#399">399</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="400" href="#400">400</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="401" href="#401">401</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="402" href="#402">402</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="403" href="#403">403</a>         log.debug(<span class="jxr_string">"...Stop testStringGreater."</span>);
<a class="jxr_linenumber" name="404" href="#404">404</a>     }
<a class="jxr_linenumber" name="405" href="#405">405</a> 
<a class="jxr_linenumber" name="406" href="#406">406</a>     @Test
<a class="jxr_linenumber" name="407" href="#407">407</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringGreaterOrEquals() {
<a class="jxr_linenumber" name="408" href="#408">408</a>         log.debug(<span class="jxr_string">"Start testStringGreaterOrEquals..."</span>);
<a class="jxr_linenumber" name="409" href="#409">409</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="410" href="#410">410</a>                 + <span class="jxr_string">"&gt;= 'Delta'"</span>;
<a class="jxr_linenumber" name="411" href="#411">411</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="412" href="#412">412</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="413" href="#413">413</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="414" href="#414">414</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="415" href="#415">415</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="416" href="#416">416</a>         log.debug(<span class="jxr_string">"...Stop testStringGreaterOrEquals."</span>);
<a class="jxr_linenumber" name="417" href="#417">417</a>     }
<a class="jxr_linenumber" name="418" href="#418">418</a> 
<a class="jxr_linenumber" name="419" href="#419">419</a>     @Test
<a class="jxr_linenumber" name="420" href="#420">420</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStringEscape() {
<a class="jxr_linenumber" name="421" href="#421">421</a>         log.debug(<span class="jxr_string">"Start testStringEscape..."</span>);
<a class="jxr_linenumber" name="422" href="#422">422</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + BaseTypeId.CMIS_DOCUMENT.value() + <span class="jxr_string">" WHERE "</span> + PropertyIds.NAME
<a class="jxr_linenumber" name="423" href="#423">423</a>                 + <span class="jxr_string">"='John&#92;&#92;'s Document'"</span>;
<a class="jxr_linenumber" name="424" href="#424">424</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="425" href="#425">425</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="426" href="#426">426</a>         assertTrue(resultContains( <span class="jxr_string">"John's Document"</span>, res));
<a class="jxr_linenumber" name="427" href="#427">427</a>         log.debug(<span class="jxr_string">"...Stop testStringEscape."</span>);
<a class="jxr_linenumber" name="428" href="#428">428</a>     }
<a class="jxr_linenumber" name="429" href="#429">429</a>     <em class="jxr_comment">// //////////////////////////////////////////////////////////////////</em>
<a class="jxr_linenumber" name="430" href="#430">430</a>     <em class="jxr_comment">// Boolean condition tests</em>
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>     @Test
<a class="jxr_linenumber" name="433" href="#433">433</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAnd() {
<a class="jxr_linenumber" name="434" href="#434">434</a>         log.debug(<span class="jxr_string">"Start testAnd..."</span>);
<a class="jxr_linenumber" name="435" href="#435">435</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"= 50 AND "</span> + PROP_ID_BOOLEAN
<a class="jxr_linenumber" name="436" href="#436">436</a>                 + <span class="jxr_string">"= true"</span>;
<a class="jxr_linenumber" name="437" href="#437">437</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="438" href="#438">438</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="439" href="#439">439</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="440" href="#440">440</a> 
<a class="jxr_linenumber" name="441" href="#441">441</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"= 50 AND "</span> + PROP_ID_BOOLEAN
<a class="jxr_linenumber" name="442" href="#442">442</a>                 + <span class="jxr_string">"= false"</span>;
<a class="jxr_linenumber" name="443" href="#443">443</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="444" href="#444">444</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="445" href="#445">445</a>         log.debug(<span class="jxr_string">"...Stop testAnd."</span>);
<a class="jxr_linenumber" name="446" href="#446">446</a>     }
<a class="jxr_linenumber" name="447" href="#447">447</a> 
<a class="jxr_linenumber" name="448" href="#448">448</a>     @Test
<a class="jxr_linenumber" name="449" href="#449">449</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOr() {
<a class="jxr_linenumber" name="450" href="#450">450</a>         log.debug(<span class="jxr_string">"Start testOr..."</span>);
<a class="jxr_linenumber" name="451" href="#451">451</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"= -50 OR "</span> + PROP_ID_BOOLEAN
<a class="jxr_linenumber" name="452" href="#452">452</a>                 + <span class="jxr_string">"= false"</span>;
<a class="jxr_linenumber" name="453" href="#453">453</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="454" href="#454">454</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="455" href="#455">455</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="456" href="#456">456</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="457" href="#457">457</a>         log.debug(<span class="jxr_string">"...Stop testOr."</span>);
<a class="jxr_linenumber" name="458" href="#458">458</a>     }
<a class="jxr_linenumber" name="459" href="#459">459</a> 
<a class="jxr_linenumber" name="460" href="#460">460</a>     @Test
<a class="jxr_linenumber" name="461" href="#461">461</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNot() {
<a class="jxr_linenumber" name="462" href="#462">462</a>         log.debug(<span class="jxr_string">"Start testNot..."</span>);
<a class="jxr_linenumber" name="463" href="#463">463</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE NOT "</span> + PROP_ID_INT + <span class="jxr_string">"= 50"</span>;
<a class="jxr_linenumber" name="464" href="#464">464</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="465" href="#465">465</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="466" href="#466">466</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="467" href="#467">467</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="468" href="#468">468</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="469" href="#469">469</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="470" href="#470">470</a>         log.debug(<span class="jxr_string">"...Stop testNot."</span>);
<a class="jxr_linenumber" name="471" href="#471">471</a>     }
<a class="jxr_linenumber" name="472" href="#472">472</a> 
<a class="jxr_linenumber" name="473" href="#473">473</a>     @Test
<a class="jxr_linenumber" name="474" href="#474">474</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderByString() {
<a class="jxr_linenumber" name="475" href="#475">475</a>         log.debug(<span class="jxr_string">"Start testOrderByString..."</span>);
<a class="jxr_linenumber" name="476" href="#476">476</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING;
<a class="jxr_linenumber" name="477" href="#477">477</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="478" href="#478">478</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="479" href="#479">479</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 0, res));
<a class="jxr_linenumber" name="480" href="#480">480</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 1, res));
<a class="jxr_linenumber" name="481" href="#481">481</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res));
<a class="jxr_linenumber" name="482" href="#482">482</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 3, res));
<a class="jxr_linenumber" name="483" href="#483">483</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 4, res));
<a class="jxr_linenumber" name="484" href="#484">484</a> 
<a class="jxr_linenumber" name="485" href="#485">485</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="486" href="#486">486</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="487" href="#487">487</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="488" href="#488">488</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 4, res));
<a class="jxr_linenumber" name="489" href="#489">489</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 3, res));
<a class="jxr_linenumber" name="490" href="#490">490</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res));
<a class="jxr_linenumber" name="491" href="#491">491</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 1, res));
<a class="jxr_linenumber" name="492" href="#492">492</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 0, res));
<a class="jxr_linenumber" name="493" href="#493">493</a>         log.debug(<span class="jxr_string">"...Stop testOrderByString."</span>);
<a class="jxr_linenumber" name="494" href="#494">494</a>     }
<a class="jxr_linenumber" name="495" href="#495">495</a> 
<a class="jxr_linenumber" name="496" href="#496">496</a>     @Test
<a class="jxr_linenumber" name="497" href="#497">497</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderByInteger() {
<a class="jxr_linenumber" name="498" href="#498">498</a>         log.debug(<span class="jxr_string">"Start testOrderByInteger..."</span>);
<a class="jxr_linenumber" name="499" href="#499">499</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_INT;
<a class="jxr_linenumber" name="500" href="#500">500</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="501" href="#501">501</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="502" href="#502">502</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 0, res));
<a class="jxr_linenumber" name="503" href="#503">503</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 1, res));
<a class="jxr_linenumber" name="504" href="#504">504</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res));
<a class="jxr_linenumber" name="505" href="#505">505</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 3, res));
<a class="jxr_linenumber" name="506" href="#506">506</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 4, res));
<a class="jxr_linenumber" name="507" href="#507">507</a> 
<a class="jxr_linenumber" name="508" href="#508">508</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_INT + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="509" href="#509">509</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="510" href="#510">510</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="511" href="#511">511</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 4, res));
<a class="jxr_linenumber" name="512" href="#512">512</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 3, res));
<a class="jxr_linenumber" name="513" href="#513">513</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res));
<a class="jxr_linenumber" name="514" href="#514">514</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 1, res));
<a class="jxr_linenumber" name="515" href="#515">515</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 0, res));
<a class="jxr_linenumber" name="516" href="#516">516</a>         log.debug(<span class="jxr_string">"...Stop testOrderByInteger."</span>);
<a class="jxr_linenumber" name="517" href="#517">517</a>     }
<a class="jxr_linenumber" name="518" href="#518">518</a> 
<a class="jxr_linenumber" name="519" href="#519">519</a>     @Test
<a class="jxr_linenumber" name="520" href="#520">520</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderByDecimal() {
<a class="jxr_linenumber" name="521" href="#521">521</a>         log.debug(<span class="jxr_string">"Start testOrderByDecimal..."</span>);
<a class="jxr_linenumber" name="522" href="#522">522</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_DECIMAL;
<a class="jxr_linenumber" name="523" href="#523">523</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="524" href="#524">524</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="525" href="#525">525</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 0, res));
<a class="jxr_linenumber" name="526" href="#526">526</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 1, res));
<a class="jxr_linenumber" name="527" href="#527">527</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res));
<a class="jxr_linenumber" name="528" href="#528">528</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 3, res));
<a class="jxr_linenumber" name="529" href="#529">529</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 4, res));
<a class="jxr_linenumber" name="530" href="#530">530</a> 
<a class="jxr_linenumber" name="531" href="#531">531</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_DECIMAL + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="532" href="#532">532</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="533" href="#533">533</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="534" href="#534">534</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 4, res));
<a class="jxr_linenumber" name="535" href="#535">535</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 3, res));
<a class="jxr_linenumber" name="536" href="#536">536</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res));
<a class="jxr_linenumber" name="537" href="#537">537</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 1, res));
<a class="jxr_linenumber" name="538" href="#538">538</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 0, res));
<a class="jxr_linenumber" name="539" href="#539">539</a>         log.debug(<span class="jxr_string">"...Stop testOrderByDecimal."</span>);
<a class="jxr_linenumber" name="540" href="#540">540</a>     }
<a class="jxr_linenumber" name="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>     @Test
<a class="jxr_linenumber" name="543" href="#543">543</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderByDate() {
<a class="jxr_linenumber" name="544" href="#544">544</a>         log.debug(<span class="jxr_string">"Start testOrderByDate..."</span>);
<a class="jxr_linenumber" name="545" href="#545">545</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_DATETIME;
<a class="jxr_linenumber" name="546" href="#546">546</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="547" href="#547">547</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="548" href="#548">548</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 0, res));
<a class="jxr_linenumber" name="549" href="#549">549</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 1, res));
<a class="jxr_linenumber" name="550" href="#550">550</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res));
<a class="jxr_linenumber" name="551" href="#551">551</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 3, res));
<a class="jxr_linenumber" name="552" href="#552">552</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 4, res));
<a class="jxr_linenumber" name="553" href="#553">553</a> 
<a class="jxr_linenumber" name="554" href="#554">554</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_DATETIME + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="555" href="#555">555</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="556" href="#556">556</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="557" href="#557">557</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 4, res));
<a class="jxr_linenumber" name="558" href="#558">558</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 3, res));
<a class="jxr_linenumber" name="559" href="#559">559</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res));
<a class="jxr_linenumber" name="560" href="#560">560</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 1, res));
<a class="jxr_linenumber" name="561" href="#561">561</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 0, res));
<a class="jxr_linenumber" name="562" href="#562">562</a>         log.debug(<span class="jxr_string">"...Stop testOrderByDate."</span>);
<a class="jxr_linenumber" name="563" href="#563">563</a>     }
<a class="jxr_linenumber" name="564" href="#564">564</a> 
<a class="jxr_linenumber" name="565" href="#565">565</a>     @Test
<a class="jxr_linenumber" name="566" href="#566">566</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderByBool() {
<a class="jxr_linenumber" name="567" href="#567">567</a>         log.debug(<span class="jxr_string">"Start testOrderByBool..."</span>);
<a class="jxr_linenumber" name="568" href="#568">568</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_BOOLEAN;
<a class="jxr_linenumber" name="569" href="#569">569</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="570" href="#570">570</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="571" href="#571">571</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 0, res) || resultContainsAtPos(<span class="jxr_string">"beta"</span>, 1, res));
<a class="jxr_linenumber" name="572" href="#572">572</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 0, res) || resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 1, res));
<a class="jxr_linenumber" name="573" href="#573">573</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 3, res)
<a class="jxr_linenumber" name="574" href="#574">574</a>                 || resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 4, res));
<a class="jxr_linenumber" name="575" href="#575">575</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 3, res)
<a class="jxr_linenumber" name="576" href="#576">576</a>                 || resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 4, res));
<a class="jxr_linenumber" name="577" href="#577">577</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"delta"</span>, 3, res)
<a class="jxr_linenumber" name="578" href="#578">578</a>                 || resultContainsAtPos(<span class="jxr_string">"delta"</span>, 4, res));
<a class="jxr_linenumber" name="579" href="#579">579</a> 
<a class="jxr_linenumber" name="580" href="#580">580</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY "</span> + PROP_ID_BOOLEAN + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="581" href="#581">581</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="582" href="#582">582</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="583" href="#583">583</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"beta"</span>, 3, res) || resultContainsAtPos(<span class="jxr_string">"beta"</span>, 4, res));
<a class="jxr_linenumber" name="584" href="#584">584</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 3, res) || resultContainsAtPos(<span class="jxr_string">"epsilon"</span>, 4, res));
<a class="jxr_linenumber" name="585" href="#585">585</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 1, res)
<a class="jxr_linenumber" name="586" href="#586">586</a>                 || resultContainsAtPos(<span class="jxr_string">"alpha"</span>, 0, res));
<a class="jxr_linenumber" name="587" href="#587">587</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 1, res)
<a class="jxr_linenumber" name="588" href="#588">588</a>                 || resultContainsAtPos(<span class="jxr_string">"gamma"</span>, 0, res));
<a class="jxr_linenumber" name="589" href="#589">589</a>         assertTrue(resultContainsAtPos(<span class="jxr_string">"delta"</span>, 2, res) || resultContainsAtPos(<span class="jxr_string">"delta"</span>, 1, res)
<a class="jxr_linenumber" name="590" href="#590">590</a>                 || resultContainsAtPos(<span class="jxr_string">"delta"</span>, 0, res));
<a class="jxr_linenumber" name="591" href="#591">591</a>         log.debug(<span class="jxr_string">"...Stop testOrderByBool."</span>);
<a class="jxr_linenumber" name="592" href="#592">592</a>     }
<a class="jxr_linenumber" name="593" href="#593">593</a> 
<a class="jxr_linenumber" name="594" href="#594">594</a>     <em class="jxr_comment">// reported JIRA issue CMIS-510</em>
<a class="jxr_linenumber" name="595" href="#595">595</a>     @Test
<a class="jxr_linenumber" name="596" href="#596">596</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOrderBySystemProperties() {
<a class="jxr_linenumber" name="597" href="#597">597</a>         log.debug(<span class="jxr_string">"Start testOrderBySystemProperties..."</span>);
<a class="jxr_linenumber" name="598" href="#598">598</a>         String statement = <span class="jxr_string">"SELECT * from cmis:document ORDER BY "</span> + PropertyIds.NAME;
<a class="jxr_linenumber" name="599" href="#599">599</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="600" href="#600">600</a>         assertEquals(6, res.getObjects().size());
<a class="jxr_linenumber" name="601" href="#601">601</a>         statement = <span class="jxr_string">"SELECT * from cmis:document ORDER BY "</span> + PropertyIds.CREATION_DATE + <span class="jxr_string">" ASC"</span>;
<a class="jxr_linenumber" name="602" href="#602">602</a>         assertEquals(6, res.getObjects().size());
<a class="jxr_linenumber" name="603" href="#603">603</a>         statement = <span class="jxr_string">"SELECT * from cmis:document ORDER BY "</span> + PropertyIds.LAST_MODIFICATION_DATE + <span class="jxr_string">" DESC"</span>;
<a class="jxr_linenumber" name="604" href="#604">604</a>         assertEquals(6, res.getObjects().size());
<a class="jxr_linenumber" name="605" href="#605">605</a>         log.debug(<span class="jxr_string">"...Stop testOrderBySystemProperties."</span>);
<a class="jxr_linenumber" name="606" href="#606">606</a>     }
<a class="jxr_linenumber" name="607" href="#607">607</a> 
<a class="jxr_linenumber" name="608" href="#608">608</a>     @Test
<a class="jxr_linenumber" name="609" href="#609">609</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsNull() {
<a class="jxr_linenumber" name="610" href="#610">610</a>         log.debug(<span class="jxr_string">"Start testIsNull..."</span>);
<a class="jxr_linenumber" name="611" href="#611">611</a> 
<a class="jxr_linenumber" name="612" href="#612">612</a>         dataCreator.createNullTestDocument();
<a class="jxr_linenumber" name="613" href="#613">613</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">" IS NULL"</span>;
<a class="jxr_linenumber" name="614" href="#614">614</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="615" href="#615">615</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="616" href="#616">616</a>         assertTrue(resultContains(<span class="jxr_string">"nulldoc"</span>, res));
<a class="jxr_linenumber" name="617" href="#617">617</a>         log.debug(<span class="jxr_string">"...Stop testIsNull."</span>);
<a class="jxr_linenumber" name="618" href="#618">618</a>     }
<a class="jxr_linenumber" name="619" href="#619">619</a> 
<a class="jxr_linenumber" name="620" href="#620">620</a>     @Test
<a class="jxr_linenumber" name="621" href="#621">621</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsNotNull() {
<a class="jxr_linenumber" name="622" href="#622">622</a>         log.debug(<span class="jxr_string">"Start testIsNotNull..."</span>);
<a class="jxr_linenumber" name="623" href="#623">623</a>         dataCreator.createNullTestDocument();
<a class="jxr_linenumber" name="624" href="#624">624</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">" IS NOT NULL"</span>;
<a class="jxr_linenumber" name="625" href="#625">625</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="626" href="#626">626</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="627" href="#627">627</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="628" href="#628">628</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="629" href="#629">629</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="630" href="#630">630</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="631" href="#631">631</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="632" href="#632">632</a>         log.debug(<span class="jxr_string">"...Stop testIsNotNull."</span>);
<a class="jxr_linenumber" name="633" href="#633">633</a>     }
<a class="jxr_linenumber" name="634" href="#634">634</a> 
<a class="jxr_linenumber" name="635" href="#635">635</a>     @Test
<a class="jxr_linenumber" name="636" href="#636">636</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> patternTest() {
<a class="jxr_linenumber" name="637" href="#637">637</a>         log.debug(<span class="jxr_string">"Start patternTest..."</span>);
<a class="jxr_linenumber" name="638" href="#638">638</a>         String res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"ABC%def"</span>);
<a class="jxr_linenumber" name="639" href="#639">639</a>         assertEquals(<span class="jxr_string">"ABC.*def"</span>, res);
<a class="jxr_linenumber" name="640" href="#640">640</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"%abc"</span>);
<a class="jxr_linenumber" name="641" href="#641">641</a>         assertEquals(<span class="jxr_string">".*abc"</span>, res);
<a class="jxr_linenumber" name="642" href="#642">642</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc%"</span>);
<a class="jxr_linenumber" name="643" href="#643">643</a>         assertEquals(<span class="jxr_string">"abc.*"</span>, res);
<a class="jxr_linenumber" name="644" href="#644">644</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"ABC&#92;&#92;%def"</span>);
<a class="jxr_linenumber" name="645" href="#645">645</a>         assertEquals(<span class="jxr_string">"ABC&#92;&#92;%def"</span>, res);
<a class="jxr_linenumber" name="646" href="#646">646</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"&#92;&#92;%abc"</span>);
<a class="jxr_linenumber" name="647" href="#647">647</a>         assertEquals(<span class="jxr_string">"&#92;&#92;%abc"</span>, res);
<a class="jxr_linenumber" name="648" href="#648">648</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc%def%ghi"</span>);
<a class="jxr_linenumber" name="649" href="#649">649</a>         assertEquals(<span class="jxr_string">"abc.*def.*ghi"</span>, res);
<a class="jxr_linenumber" name="650" href="#650">650</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc%def&#92;&#92;%ghi%jkl"</span>);
<a class="jxr_linenumber" name="651" href="#651">651</a>         assertEquals(<span class="jxr_string">"abc.*def&#92;&#92;%ghi.*jkl"</span>, res);
<a class="jxr_linenumber" name="652" href="#652">652</a> 
<a class="jxr_linenumber" name="653" href="#653">653</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"ABC_def"</span>);
<a class="jxr_linenumber" name="654" href="#654">654</a>         assertEquals(<span class="jxr_string">"ABC.def"</span>, res);
<a class="jxr_linenumber" name="655" href="#655">655</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"_abc"</span>);
<a class="jxr_linenumber" name="656" href="#656">656</a>         assertEquals(<span class="jxr_string">".abc"</span>, res);
<a class="jxr_linenumber" name="657" href="#657">657</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc_"</span>);
<a class="jxr_linenumber" name="658" href="#658">658</a>         assertEquals(<span class="jxr_string">"abc."</span>, res);
<a class="jxr_linenumber" name="659" href="#659">659</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"ABC&#92;&#92;_def"</span>);
<a class="jxr_linenumber" name="660" href="#660">660</a>         assertEquals(<span class="jxr_string">"ABC&#92;&#92;_def"</span>, res);
<a class="jxr_linenumber" name="661" href="#661">661</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"&#92;&#92;_abc"</span>);
<a class="jxr_linenumber" name="662" href="#662">662</a>         assertEquals(<span class="jxr_string">"&#92;&#92;_abc"</span>, res);
<a class="jxr_linenumber" name="663" href="#663">663</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc_def_ghi"</span>);
<a class="jxr_linenumber" name="664" href="#664">664</a>         assertEquals(<span class="jxr_string">"abc.def.ghi"</span>, res);
<a class="jxr_linenumber" name="665" href="#665">665</a>         res = InMemoryQueryProcessor.translatePattern(<span class="jxr_string">"abc_def&#92;&#92;_ghi_jkl"</span>);
<a class="jxr_linenumber" name="666" href="#666">666</a>         assertEquals(<span class="jxr_string">"abc.def&#92;&#92;_ghi.jkl"</span>, res);
<a class="jxr_linenumber" name="667" href="#667">667</a>         log.debug(<span class="jxr_string">"...Stop patternTest."</span>);
<a class="jxr_linenumber" name="668" href="#668">668</a>     }
<a class="jxr_linenumber" name="669" href="#669">669</a> 
<a class="jxr_linenumber" name="670" href="#670">670</a>     @Test
<a class="jxr_linenumber" name="671" href="#671">671</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLike() {
<a class="jxr_linenumber" name="672" href="#672">672</a>         log.debug(<span class="jxr_string">"Start testLike..."</span>);
<a class="jxr_linenumber" name="673" href="#673">673</a>         dataCreator.createLikeTestDocuments(fRootFolderId);
<a class="jxr_linenumber" name="674" href="#674">674</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="675" href="#675">675</a>                 + <span class="jxr_string">" LIKE 'ABC%'"</span>;
<a class="jxr_linenumber" name="676" href="#676">676</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="677" href="#677">677</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="678" href="#678">678</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="679" href="#679">679</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc2"</span>, res));
<a class="jxr_linenumber" name="680" href="#680">680</a> 
<a class="jxr_linenumber" name="681" href="#681">681</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="682" href="#682">682</a>                 + <span class="jxr_string">" LIKE '%ABC'"</span>;
<a class="jxr_linenumber" name="683" href="#683">683</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="684" href="#684">684</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="685" href="#685">685</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc3"</span>, res));
<a class="jxr_linenumber" name="686" href="#686">686</a> 
<a class="jxr_linenumber" name="687" href="#687">687</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="688" href="#688">688</a>                 + <span class="jxr_string">" LIKE '%ABC%'"</span>;
<a class="jxr_linenumber" name="689" href="#689">689</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="690" href="#690">690</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="691" href="#691">691</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="692" href="#692">692</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc2"</span>, res));
<a class="jxr_linenumber" name="693" href="#693">693</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc3"</span>, res));
<a class="jxr_linenumber" name="694" href="#694">694</a> 
<a class="jxr_linenumber" name="695" href="#695">695</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="696" href="#696">696</a>                 + <span class="jxr_string">" LIKE 'AB_DEF'"</span>;
<a class="jxr_linenumber" name="697" href="#697">697</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="698" href="#698">698</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="699" href="#699">699</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="700" href="#700">700</a>         log.debug(<span class="jxr_string">"...Stop testLike."</span>);
<a class="jxr_linenumber" name="701" href="#701">701</a>     }
<a class="jxr_linenumber" name="702" href="#702">702</a> 
<a class="jxr_linenumber" name="703" href="#703">703</a>     @Test
<a class="jxr_linenumber" name="704" href="#704">704</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNotLike() {
<a class="jxr_linenumber" name="705" href="#705">705</a>         log.debug(<span class="jxr_string">"Start testNotLike..."</span>);
<a class="jxr_linenumber" name="706" href="#706">706</a>         dataCreator.createLikeTestDocuments(fRootFolderId);
<a class="jxr_linenumber" name="707" href="#707">707</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="708" href="#708">708</a>                 + <span class="jxr_string">" NOT LIKE 'ABC%'"</span>;
<a class="jxr_linenumber" name="709" href="#709">709</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="710" href="#710">710</a>         assertEquals(6, res.getObjects().size());
<a class="jxr_linenumber" name="711" href="#711">711</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc3"</span>, res));
<a class="jxr_linenumber" name="712" href="#712">712</a> 
<a class="jxr_linenumber" name="713" href="#713">713</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="714" href="#714">714</a>                 + <span class="jxr_string">" NOT LIKE '%a'"</span>;
<a class="jxr_linenumber" name="715" href="#715">715</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="716" href="#716">716</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="717" href="#717">717</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="718" href="#718">718</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="719" href="#719">719</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc3"</span>, res));
<a class="jxr_linenumber" name="720" href="#720">720</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="721" href="#721">721</a>         log.debug(<span class="jxr_string">"...Stop testNotLike."</span>);
<a class="jxr_linenumber" name="722" href="#722">722</a>     }
<a class="jxr_linenumber" name="723" href="#723">723</a> 
<a class="jxr_linenumber" name="724" href="#724">724</a>     @Test
<a class="jxr_linenumber" name="725" href="#725">725</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInFolder() {
<a class="jxr_linenumber" name="726" href="#726">726</a>         log.debug(<span class="jxr_string">"Start testInFolder..."</span>);
<a class="jxr_linenumber" name="727" href="#727">727</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_FOLDER('"</span> + fRootFolderId + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="728" href="#728">728</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="729" href="#729">729</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="730" href="#730">730</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="731" href="#731">731</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="732" href="#732">732</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="733" href="#733">733</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="734" href="#734">734</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="735" href="#735">735</a> 
<a class="jxr_linenumber" name="736" href="#736">736</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_FOLDER('"</span> + dataCreator.getFolder1() + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="737" href="#737">737</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="738" href="#738">738</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="739" href="#739">739</a> 
<a class="jxr_linenumber" name="740" href="#740">740</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_FOLDER("</span> + COMPLEX_TYPE + <span class="jxr_string">", '"</span> + fRootFolderId + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="741" href="#741">741</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="742" href="#742">742</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="743" href="#743">743</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="744" href="#744">744</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="745" href="#745">745</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="746" href="#746">746</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="747" href="#747">747</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="748" href="#748">748</a> 
<a class="jxr_linenumber" name="749" href="#749">749</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_FOLDER(UnknownType, '"</span> + dataCreator.getFolder2()
<a class="jxr_linenumber" name="750" href="#750">750</a>                 + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="751" href="#751">751</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="752" href="#752">752</a>             res = doQuery(statement);
<a class="jxr_linenumber" name="753" href="#753">753</a>             fail(<span class="jxr_string">"Unknown type in folder should throw exception"</span>);
<a class="jxr_linenumber" name="754" href="#754">754</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="755" href="#755">755</a>             assertTrue(e.toString().contains(<span class="jxr_string">"is neither a type query name nor an alias"</span>));
<a class="jxr_linenumber" name="756" href="#756">756</a>             log.debug(<span class="jxr_string">"expected Exception: "</span> + e);
<a class="jxr_linenumber" name="757" href="#757">757</a>         }
<a class="jxr_linenumber" name="758" href="#758">758</a>         log.debug(<span class="jxr_string">"...Stop testInFolder."</span>);
<a class="jxr_linenumber" name="759" href="#759">759</a>     }
<a class="jxr_linenumber" name="760" href="#760">760</a> 
<a class="jxr_linenumber" name="761" href="#761">761</a>     @Test
<a class="jxr_linenumber" name="762" href="#762">762</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInTree() {
<a class="jxr_linenumber" name="763" href="#763">763</a>         log.debug(<span class="jxr_string">"Start testInTree..."</span>);
<a class="jxr_linenumber" name="764" href="#764">764</a>         dataCreator.createLikeTestDocuments(dataCreator.getFolder11());
<a class="jxr_linenumber" name="765" href="#765">765</a> 
<a class="jxr_linenumber" name="766" href="#766">766</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_TREE("</span> + COMPLEX_TYPE + <span class="jxr_string">", '"</span>
<a class="jxr_linenumber" name="767" href="#767">767</a>                 + dataCreator.getFolder1() + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="768" href="#768">768</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="769" href="#769">769</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="770" href="#770">770</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc1"</span>, res));
<a class="jxr_linenumber" name="771" href="#771">771</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc2"</span>, res));
<a class="jxr_linenumber" name="772" href="#772">772</a>         assertTrue(resultContains(<span class="jxr_string">"likedoc3"</span>, res));
<a class="jxr_linenumber" name="773" href="#773">773</a> 
<a class="jxr_linenumber" name="774" href="#774">774</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_FOLDER('"</span> + dataCreator.getFolder1() + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="775" href="#775">775</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="776" href="#776">776</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="777" href="#777">777</a> 
<a class="jxr_linenumber" name="778" href="#778">778</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_TREE('"</span> + dataCreator.getFolder2() + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="779" href="#779">779</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="780" href="#780">780</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="781" href="#781">781</a> 
<a class="jxr_linenumber" name="782" href="#782">782</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE IN_TREE(UnknownType, '"</span> + dataCreator.getFolder2() + <span class="jxr_string">"')"</span>;
<a class="jxr_linenumber" name="783" href="#783">783</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="784" href="#784">784</a>             res = doQuery(statement);
<a class="jxr_linenumber" name="785" href="#785">785</a>             fail(<span class="jxr_string">"Unknown type in folder should throw exception"</span>);
<a class="jxr_linenumber" name="786" href="#786">786</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="787" href="#787">787</a>             assertTrue(e.toString().contains(<span class="jxr_string">"is neither a type query name nor an alias"</span>));
<a class="jxr_linenumber" name="788" href="#788">788</a>             log.debug(<span class="jxr_string">"expected Exception: "</span> + e);
<a class="jxr_linenumber" name="789" href="#789">789</a>         }
<a class="jxr_linenumber" name="790" href="#790">790</a>         log.debug(<span class="jxr_string">"...Stop testInTree."</span>);
<a class="jxr_linenumber" name="791" href="#791">791</a>     }
<a class="jxr_linenumber" name="792" href="#792">792</a> 
<a class="jxr_linenumber" name="793" href="#793">793</a>     @Test
<a class="jxr_linenumber" name="794" href="#794">794</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIn() {
<a class="jxr_linenumber" name="795" href="#795">795</a>         log.debug(<span class="jxr_string">"Start testNotIn..."</span>);
<a class="jxr_linenumber" name="796" href="#796">796</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="797" href="#797">797</a>                 + <span class="jxr_string">" IN ('Alpha', 'Beta', 'Gamma')"</span>;
<a class="jxr_linenumber" name="798" href="#798">798</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="799" href="#799">799</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="800" href="#800">800</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="801" href="#801">801</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="802" href="#802">802</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="803" href="#803">803</a> 
<a class="jxr_linenumber" name="804" href="#804">804</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="805" href="#805">805</a>                 + <span class="jxr_string">" IN ('Theta', 'Pi', 'Rho')"</span>;
<a class="jxr_linenumber" name="806" href="#806">806</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="807" href="#807">807</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="808" href="#808">808</a>         log.debug(<span class="jxr_string">"...Stop testNotIn."</span>);
<a class="jxr_linenumber" name="809" href="#809">809</a>     }
<a class="jxr_linenumber" name="810" href="#810">810</a> 
<a class="jxr_linenumber" name="811" href="#811">811</a>     @Test
<a class="jxr_linenumber" name="812" href="#812">812</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNotIn() {
<a class="jxr_linenumber" name="813" href="#813">813</a>         log.debug(<span class="jxr_string">"Start testNotIn..."</span>);
<a class="jxr_linenumber" name="814" href="#814">814</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="815" href="#815">815</a>                 + <span class="jxr_string">" NOT IN ('Alpha', 'Beta', 'Gamma')"</span>;
<a class="jxr_linenumber" name="816" href="#816">816</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="817" href="#817">817</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="818" href="#818">818</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="819" href="#819">819</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="820" href="#820">820</a> 
<a class="jxr_linenumber" name="821" href="#821">821</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="822" href="#822">822</a>                 + <span class="jxr_string">" NOT IN ('Theta', 'Pi', 'Rho')"</span>;
<a class="jxr_linenumber" name="823" href="#823">823</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="824" href="#824">824</a>         assertEquals(5, res.getObjects().size());
<a class="jxr_linenumber" name="825" href="#825">825</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="826" href="#826">826</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="827" href="#827">827</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="828" href="#828">828</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="829" href="#829">829</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="830" href="#830">830</a>         log.debug(<span class="jxr_string">"...Stop testNotIn."</span>);
<a class="jxr_linenumber" name="831" href="#831">831</a>     }
<a class="jxr_linenumber" name="832" href="#832">832</a> 
<a class="jxr_linenumber" name="833" href="#833">833</a>     @Test
<a class="jxr_linenumber" name="834" href="#834">834</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultiValueInAny() {
<a class="jxr_linenumber" name="835" href="#835">835</a>         log.debug(<span class="jxr_string">"Start testMultiValueNotInAny..."</span>);
<a class="jxr_linenumber" name="836" href="#836">836</a>         dataCreator.createMultiValueDocuments();
<a class="jxr_linenumber" name="837" href="#837">837</a> 
<a class="jxr_linenumber" name="838" href="#838">838</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="839" href="#839">839</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" IN ('red', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="840" href="#840">840</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="841" href="#841">841</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="842" href="#842">842</a>         assertTrue(resultContains(<span class="jxr_string">"mv-alpha"</span>, res));
<a class="jxr_linenumber" name="843" href="#843">843</a>         assertTrue(resultContains(<span class="jxr_string">"mv-beta"</span>, res));
<a class="jxr_linenumber" name="844" href="#844">844</a> 
<a class="jxr_linenumber" name="845" href="#845">845</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="846" href="#846">846</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" IN ('green', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="847" href="#847">847</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="848" href="#848">848</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="849" href="#849">849</a>         assertTrue(resultContains(<span class="jxr_string">"mv-alpha"</span>, res));
<a class="jxr_linenumber" name="850" href="#850">850</a> 
<a class="jxr_linenumber" name="851" href="#851">851</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="852" href="#852">852</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" IN ('white', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="853" href="#853">853</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="854" href="#854">854</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="855" href="#855">855</a>         log.debug(<span class="jxr_string">"...Stop testMultiValueNotInAny."</span>);
<a class="jxr_linenumber" name="856" href="#856">856</a>     }
<a class="jxr_linenumber" name="857" href="#857">857</a> 
<a class="jxr_linenumber" name="858" href="#858">858</a>     @Test
<a class="jxr_linenumber" name="859" href="#859">859</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultiValueNotInAny() {
<a class="jxr_linenumber" name="860" href="#860">860</a>         log.debug(<span class="jxr_string">"Start testMultiValueNotInAny..."</span>);
<a class="jxr_linenumber" name="861" href="#861">861</a>         dataCreator.createMultiValueDocuments();
<a class="jxr_linenumber" name="862" href="#862">862</a> 
<a class="jxr_linenumber" name="863" href="#863">863</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="864" href="#864">864</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" NOT IN ('red', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="865" href="#865">865</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="866" href="#866">866</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="867" href="#867">867</a> 
<a class="jxr_linenumber" name="868" href="#868">868</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="869" href="#869">869</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" NOT IN ('green', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="870" href="#870">870</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="871" href="#871">871</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="872" href="#872">872</a>         assertTrue(resultContains(<span class="jxr_string">"mv-beta"</span>, res));
<a class="jxr_linenumber" name="873" href="#873">873</a> 
<a class="jxr_linenumber" name="874" href="#874">874</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE ANY "</span>
<a class="jxr_linenumber" name="875" href="#875">875</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE + <span class="jxr_string">" NOT IN ('white', 'black', 'grey')"</span>;
<a class="jxr_linenumber" name="876" href="#876">876</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="877" href="#877">877</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="878" href="#878">878</a>         assertTrue(resultContains(<span class="jxr_string">"mv-alpha"</span>, res));
<a class="jxr_linenumber" name="879" href="#879">879</a>         assertTrue(resultContains(<span class="jxr_string">"mv-beta"</span>, res));
<a class="jxr_linenumber" name="880" href="#880">880</a>         log.debug(<span class="jxr_string">"...Stop testMultiValueNotInAny."</span>);
<a class="jxr_linenumber" name="881" href="#881">881</a>     }
<a class="jxr_linenumber" name="882" href="#882">882</a> 
<a class="jxr_linenumber" name="883" href="#883">883</a>     @Test
<a class="jxr_linenumber" name="884" href="#884">884</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultiValueEqAny() {
<a class="jxr_linenumber" name="885" href="#885">885</a>         log.debug(<span class="jxr_string">"Start testMultiValueEqAny..."</span>);
<a class="jxr_linenumber" name="886" href="#886">886</a>         dataCreator.createMultiValueDocuments();
<a class="jxr_linenumber" name="887" href="#887">887</a> 
<a class="jxr_linenumber" name="888" href="#888">888</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE 'red' = ANY "</span>
<a class="jxr_linenumber" name="889" href="#889">889</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE;
<a class="jxr_linenumber" name="890" href="#890">890</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="891" href="#891">891</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="892" href="#892">892</a>         assertTrue(resultContains(<span class="jxr_string">"mv-alpha"</span>, res));
<a class="jxr_linenumber" name="893" href="#893">893</a>         assertTrue(resultContains(<span class="jxr_string">"mv-beta"</span>, res));
<a class="jxr_linenumber" name="894" href="#894">894</a> 
<a class="jxr_linenumber" name="895" href="#895">895</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE 'black' = ANY "</span>
<a class="jxr_linenumber" name="896" href="#896">896</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING_MULTI_VALUE;
<a class="jxr_linenumber" name="897" href="#897">897</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="898" href="#898">898</a>         assertEquals(0, res.getObjects().size());
<a class="jxr_linenumber" name="899" href="#899">899</a> 
<a class="jxr_linenumber" name="900" href="#900">900</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE 'black' = ANY "</span>
<a class="jxr_linenumber" name="901" href="#901">901</a>                 + UnitTestTypeSystemCreator.PROP_ID_STRING;
<a class="jxr_linenumber" name="902" href="#902">902</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="903" href="#903">903</a>             doQuery(statement);
<a class="jxr_linenumber" name="904" href="#904">904</a>             fail(<span class="jxr_string">"Unknown = ANY with single value prop should throw exception"</span>);
<a class="jxr_linenumber" name="905" href="#905">905</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="906" href="#906">906</a>             assertTrue(e.toString().contains(<span class="jxr_string">"only is allowed on multi-value properties"</span>));
<a class="jxr_linenumber" name="907" href="#907">907</a>             log.debug(<span class="jxr_string">"expected Exception: "</span> + e);
<a class="jxr_linenumber" name="908" href="#908">908</a>         }
<a class="jxr_linenumber" name="909" href="#909">909</a>         log.debug(<span class="jxr_string">"...Stop testMultiValueEqAny."</span>);
<a class="jxr_linenumber" name="910" href="#910">910</a>     }
<a class="jxr_linenumber" name="911" href="#911">911</a> 
<a class="jxr_linenumber" name="912" href="#912">912</a>     @Test
<a class="jxr_linenumber" name="913" href="#913">913</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testVersionsWithQuery() {
<a class="jxr_linenumber" name="914" href="#914">914</a>         log.debug(<span class="jxr_string">"Start testLastestVersionsWithQuery..."</span>);
<a class="jxr_linenumber" name="915" href="#915">915</a>         String id = dataCreator.createVersionedDocument();
<a class="jxr_linenumber" name="916" href="#916">916</a>         assertNotNull(id);
<a class="jxr_linenumber" name="917" href="#917">917</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + UnitTestTypeSystemCreator.VERSIONED_TYPE;
<a class="jxr_linenumber" name="918" href="#918">918</a>         ObjectList res = doQueryAllVersions(statement);
<a class="jxr_linenumber" name="919" href="#919">919</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="920" href="#920">920</a>         assertTrue(resultContains(<span class="jxr_string">"ver123"</span>, UnitTestTypeSystemCreator.VERSION_PROPERTY_ID, res));
<a class="jxr_linenumber" name="921" href="#921">921</a>         assertTrue(resultContains(<span class="jxr_string">"ver456"</span>, UnitTestTypeSystemCreator.VERSION_PROPERTY_ID, res));
<a class="jxr_linenumber" name="922" href="#922">922</a>         assertTrue(resultContains(<span class="jxr_string">"1.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="923" href="#923">923</a>         assertTrue(resultContains(<span class="jxr_string">"2.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="924" href="#924">924</a> 
<a class="jxr_linenumber" name="925" href="#925">925</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="926" href="#926">926</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="927" href="#927">927</a>         assertFalse(resultContains(<span class="jxr_string">"1.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="928" href="#928">928</a>         assertTrue(resultContains(<span class="jxr_string">"2.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="929" href="#929">929</a>         log.debug(<span class="jxr_string">"...Stop testLastestVersionsWithQuery."</span>);
<a class="jxr_linenumber" name="930" href="#930">930</a>     }
<a class="jxr_linenumber" name="931" href="#931">931</a> 
<a class="jxr_linenumber" name="932" href="#932">932</a>     @Test
<a class="jxr_linenumber" name="933" href="#933">933</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLastestVersionsWithQuery() {
<a class="jxr_linenumber" name="934" href="#934">934</a>         log.debug(<span class="jxr_string">"Start testLastestVersionsWithQuery..."</span>);
<a class="jxr_linenumber" name="935" href="#935">935</a>         String id = dataCreator.createVersionedDocument();
<a class="jxr_linenumber" name="936" href="#936">936</a>         assertNotNull(id);
<a class="jxr_linenumber" name="937" href="#937">937</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + UnitTestTypeSystemCreator.VERSIONED_TYPE;
<a class="jxr_linenumber" name="938" href="#938">938</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="939" href="#939">939</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="940" href="#940">940</a>         assertTrue(resultContains(<span class="jxr_string">"ver456"</span>, UnitTestTypeSystemCreator.VERSION_PROPERTY_ID, res));
<a class="jxr_linenumber" name="941" href="#941">941</a>         assertTrue(resultContains(<span class="jxr_string">"2.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="942" href="#942">942</a> 
<a class="jxr_linenumber" name="943" href="#943">943</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="944" href="#944">944</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="945" href="#945">945</a>         assertFalse(resultContains(<span class="jxr_string">"1.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="946" href="#946">946</a>         assertTrue(resultContains(<span class="jxr_string">"2.0"</span>, PropertyIds.VERSION_LABEL, res));
<a class="jxr_linenumber" name="947" href="#947">947</a>         log.debug(<span class="jxr_string">"...Stop testLastestVersionsWithQuery."</span>);
<a class="jxr_linenumber" name="948" href="#948">948</a>     }
<a class="jxr_linenumber" name="949" href="#949">949</a> 
<a class="jxr_linenumber" name="950" href="#950">950</a>     @Test
<a class="jxr_linenumber" name="951" href="#951">951</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsWord() {
<a class="jxr_linenumber" name="952" href="#952">952</a>         log.debug(<span class="jxr_string">"Start testContainsWord..."</span>);
<a class="jxr_linenumber" name="953" href="#953">953</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('cat')"</span>;
<a class="jxr_linenumber" name="954" href="#954">954</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="955" href="#955">955</a>         assertEquals(3, res.getObjects().size());
<a class="jxr_linenumber" name="956" href="#956">956</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="957" href="#957">957</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="958" href="#958">958</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="959" href="#959">959</a>         log.debug(<span class="jxr_string">"...Stop testContainsWord."</span>);
<a class="jxr_linenumber" name="960" href="#960">960</a>     }
<a class="jxr_linenumber" name="961" href="#961">961</a> 
<a class="jxr_linenumber" name="962" href="#962">962</a>     @Test
<a class="jxr_linenumber" name="963" href="#963">963</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsPhrase() {
<a class="jxr_linenumber" name="964" href="#964">964</a>         log.debug(<span class="jxr_string">"Start testContainsPhrase..."</span>);
<a class="jxr_linenumber" name="965" href="#965">965</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('\&quot;Kitty Katty\&quot;')"</span>;
<a class="jxr_linenumber" name="966" href="#966">966</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="967" href="#967">967</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="968" href="#968">968</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="969" href="#969">969</a>         log.debug(<span class="jxr_string">"...Stop testContainsPhrase."</span>);
<a class="jxr_linenumber" name="970" href="#970">970</a>     }
<a class="jxr_linenumber" name="971" href="#971">971</a> 
<a class="jxr_linenumber" name="972" href="#972">972</a>     @Test
<a class="jxr_linenumber" name="973" href="#973">973</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsNot() {
<a class="jxr_linenumber" name="974" href="#974">974</a>         log.debug(<span class="jxr_string">"Start testContainsNot..."</span>);
<a class="jxr_linenumber" name="975" href="#975">975</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('-cat')"</span>;
<a class="jxr_linenumber" name="976" href="#976">976</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="977" href="#977">977</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="978" href="#978">978</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="979" href="#979">979</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="980" href="#980">980</a>         log.debug(<span class="jxr_string">"...Stop testContainsNot."</span>);
<a class="jxr_linenumber" name="981" href="#981">981</a>     }
<a class="jxr_linenumber" name="982" href="#982">982</a> 
<a class="jxr_linenumber" name="983" href="#983">983</a>     @Test
<a class="jxr_linenumber" name="984" href="#984">984</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsOr() {
<a class="jxr_linenumber" name="985" href="#985">985</a>         log.debug(<span class="jxr_string">"Start testContainsOr..."</span>);
<a class="jxr_linenumber" name="986" href="#986">986</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('cat OR dog')"</span>;
<a class="jxr_linenumber" name="987" href="#987">987</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="988" href="#988">988</a>         assertEquals(4, res.getObjects().size());
<a class="jxr_linenumber" name="989" href="#989">989</a>         assertTrue(resultContains(<span class="jxr_string">"alpha"</span>, res));
<a class="jxr_linenumber" name="990" href="#990">990</a>         assertTrue(resultContains(<span class="jxr_string">"beta"</span>, res));
<a class="jxr_linenumber" name="991" href="#991">991</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="992" href="#992">992</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="993" href="#993">993</a>         log.debug(<span class="jxr_string">"...Stop testContainsOr."</span>);
<a class="jxr_linenumber" name="994" href="#994">994</a>     }
<a class="jxr_linenumber" name="995" href="#995">995</a> 
<a class="jxr_linenumber" name="996" href="#996">996</a>     @Test
<a class="jxr_linenumber" name="997" href="#997">997</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsAnd() {
<a class="jxr_linenumber" name="998" href="#998">998</a>         log.debug(<span class="jxr_string">"Start testContainsAnd..."</span>);
<a class="jxr_linenumber" name="999" href="#999">999</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('cat dog')"</span>;
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>         log.debug(<span class="jxr_string">"...Stop testContainsAnd."</span>);
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>     }
<a class="jxr_linenumber" name="1005" href="#1005">1005</a> 
<a class="jxr_linenumber" name="1006" href="#1006">1006</a>     @Test
<a class="jxr_linenumber" name="1007" href="#1007">1007</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsAndScore() {
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>         log.debug(<span class="jxr_string">"Start testContainsAndScore..."</span>);
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>         String statement = <span class="jxr_string">"SELECT cmis:objectId,cmis:name,SCORE() FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('dog')"</span>;
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>         assertTrue(resultContains(<span class="jxr_string">"gamma"</span>, res));
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>         assertTrue(resultContains(<span class="jxr_string">"delta"</span>, res));
<a class="jxr_linenumber" name="1014" href="#1014">1014</a>         assertTrue(resultContains(1.0, <span class="jxr_string">"SEARCH_SCORE"</span>, res));
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>         log.debug(<span class="jxr_string">"...Stop testContainsAndScore."</span>);
<a class="jxr_linenumber" name="1016" href="#1016">1016</a>     }
<a class="jxr_linenumber" name="1017" href="#1017">1017</a> 
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>     @Test
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testContainsSyntaxError() {
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>         log.debug(<span class="jxr_string">"Start testContainsSyntaxError..."</span>);
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>         String statement = <span class="jxr_string">"SELECT cmis:objectId FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('')"</span>;
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>         	doQuery(statement);
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>             assertTrue(e.getMessage().contains(<span class="jxr_string">"line 1:0 no viable alternative at input '&lt;EOF&gt;'"</span>));
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>             assertTrue(e instanceof CmisInvalidArgumentException);                   	
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>             assertTrue(e.getCause() instanceof RuntimeException);                   	
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>             assertTrue(e.getCause().getCause() instanceof RecognitionException);                   	
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>         }
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>         log.debug(<span class="jxr_string">"...Stop testContainsSyntaxError."</span>);
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>     }
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>     @Test
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNotSetProperties() {
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>         log.debug(<span class="jxr_string">"Start testNotSetProperties..."</span>);
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>         <em class="jxr_comment">// PROP_ID_ID is not set property</em>
<a class="jxr_linenumber" name="1036" href="#1036">1036</a>         String statement = <span class="jxr_string">"SELECT cmis:name, "</span> + PROP_ID_ID + <span class="jxr_string">" FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>                 + <span class="jxr_string">"= 100"</span>;
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>         assertTrue(resultContainsNotSetPropertyValue(PROP_ID_ID, res.getObjects().get(0)));
<a class="jxr_linenumber" name="1042" href="#1042">1042</a> 
<a class="jxr_linenumber" name="1043" href="#1043">1043</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + PROP_ID_INT + <span class="jxr_string">"= 100"</span>;
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>         assertTrue(resultContains(<span class="jxr_string">"epsilon"</span>, res));
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>         assertTrue(resultContainsNotSetPropertyValue(PROP_ID_ID, res.getObjects().get(0)));
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>         log.debug(<span class="jxr_string">"...Stop testNotSetProperties."</span>);
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>     }
<a class="jxr_linenumber" name="1050" href="#1050">1050</a> 
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>     @Test
<a class="jxr_linenumber" name="1052" href="#1052">1052</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSecondaryTypes() {
<a class="jxr_linenumber" name="1053" href="#1053">1053</a>         log.debug(<span class="jxr_string">"Start testSecondaryTypes..."</span>);
<a class="jxr_linenumber" name="1054" href="#1054">1054</a>         <em class="jxr_comment">// create documents with secondary types in addition</em>
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>         dataCreator.createSecondaryTestDocuments();
<a class="jxr_linenumber" name="1056" href="#1056">1056</a> 
<a class="jxr_linenumber" name="1057" href="#1057">1057</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.PROP_ID_STRING
<a class="jxr_linenumber" name="1058" href="#1058">1058</a>                 + <span class="jxr_string">"= 'Secondary'"</span>;
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>         assertTrue(resultContains(<span class="jxr_string">"docwithsecondary"</span>, res));
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>         assertFalse(resultContains(UnitTestTypeSystemCreator.SECONDARY_STRING_PROP, res));
<a class="jxr_linenumber" name="1063" href="#1063">1063</a> 
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + SECONDARY_TYPE + <span class="jxr_string">" WHERE "</span> + UnitTestTypeSystemCreator.SECONDARY_INTEGER_PROP
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>                 + <span class="jxr_string">"= 100"</span>;
<a class="jxr_linenumber" name="1066" href="#1066">1066</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>         assertFalse(resultContains(<span class="jxr_string">"docwithsecondary"</span>, res));
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>         assertTrue(resultContains(<span class="jxr_string">"Secondary Property Value"</span>, UnitTestTypeSystemCreator.SECONDARY_STRING_PROP, res));
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>         assertTrue(resultContains(BigInteger.valueOf(100), UnitTestTypeSystemCreator.SECONDARY_INTEGER_PROP, res));
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>         assertFalse(resultContainsProperty(UnitTestTypeSystemCreator.PROP_ID_STRING, res));
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>         log.debug(<span class="jxr_string">"...Stop testSecondaryTypes."</span>);
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>     }
<a class="jxr_linenumber" name="1074" href="#1074">1074</a> 
<a class="jxr_linenumber" name="1075" href="#1075">1075</a>     @Test
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSecondaryJoin() {
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>         log.debug(<span class="jxr_string">"Start testSecondaryJoin..."</span>);
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>         <em class="jxr_comment">// create documents with secondary types in addition</em>
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>         dataCreator.createSecondaryTestDocuments();
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" JOIN "</span> + SECONDARY_TYPE + <span class="jxr_string">" ON "</span> + COMPLEX_TYPE
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                 + <span class="jxr_string">".cmis:objectId = "</span> + SECONDARY_TYPE + <span class="jxr_string">".cmis:objectId WHERE cmis:name LIKE 'docwithsecondary%'"</span>;
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="1084" href="#1084">1084</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.PROP_ID_STRING, res));
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>         assertTrue(resultContainsProperty(PropertyIds.NAME, res));
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>         assertTrue(resultContainsProperty(PropertyIds.OBJECT_ID, res));
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>         assertTrue(resultContainsProperty(PropertyIds.OBJECT_TYPE_ID, res));
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.SECONDARY_STRING_PROP, res));
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.SECONDARY_INTEGER_PROP, res));
<a class="jxr_linenumber" name="1090" href="#1090">1090</a> 
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>         <em class="jxr_comment">// Test a query with secondary types matching only one document not</em>
<a class="jxr_linenumber" name="1092" href="#1092">1092</a>         <em class="jxr_comment">// having this secondary type</em>
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>         statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" JOIN "</span> + SECONDARY_TYPE + <span class="jxr_string">" ON "</span> + COMPLEX_TYPE
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>                 + <span class="jxr_string">".cmis:objectId = "</span> + SECONDARY_TYPE + <span class="jxr_string">".cmis:objectId WHERE cmis:name = 'alpha'"</span>;
<a class="jxr_linenumber" name="1095" href="#1095">1095</a>         res = doQuery(statement);
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>         assertEquals(1, res.getObjects().size());
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.PROP_ID_STRING, res));
<a class="jxr_linenumber" name="1098" href="#1098">1098</a>         assertTrue(resultContainsProperty(PropertyIds.NAME, res));
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>         assertTrue(resultContainsProperty(PropertyIds.OBJECT_ID, res));
<a class="jxr_linenumber" name="1100" href="#1100">1100</a>         assertTrue(resultContainsProperty(PropertyIds.OBJECT_TYPE_ID, res));
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.SECONDARY_STRING_PROP, res));
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.SECONDARY_INTEGER_PROP, res));
<a class="jxr_linenumber" name="1103" href="#1103">1103</a> 
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>         log.debug(<span class="jxr_string">"...Stop testSecondaryJoin."</span>);
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>     }
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>     
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>     @Test
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAskForSecondaryPropertyOnSimpleQuery() {
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>         log.debug(<span class="jxr_string">"Start testAskForSecondaryPropertyOnSimpleQuery..."</span>);
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>         setUp(<strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// force relaxed parser mode</em>
<a class="jxr_linenumber" name="1111" href="#1111">1111</a>         dataCreator.createSecondaryTestDocuments();
<a class="jxr_linenumber" name="1112" href="#1112">1112</a>         String statement = <span class="jxr_string">"SELECT cmis:name, cmis:objectId, "</span> + UnitTestTypeSystemCreator.SECONDARY_INTEGER_PROP
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>         		+ <span class="jxr_string">" AS SecInt, "</span> + UnitTestTypeSystemCreator.SECONDARY_STRING_PROP + <span class="jxr_string">" FROM "</span> + COMPLEX_TYPE + 
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>         		<span class="jxr_string">" WHERE cmis:name LIKE 'docwithsecondary%'"</span>;
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>         ObjectList res = doQuery(statement);
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>         assertEquals(2, res.getObjects().size());
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>         assertTrue(resultContainsProperty(PropertyIds.NAME, res));
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>         assertTrue(resultContainsProperty(PropertyIds.OBJECT_ID, res));
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>         assertTrue(resultContainsProperty(UnitTestTypeSystemCreator.SECONDARY_STRING_PROP, res));
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>         assertTrue(resultContainsQueryName(<span class="jxr_string">"SecInt"</span>, res));
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>         log.debug(<span class="jxr_string">"...Stop testAskForSecondaryPropertyOnSimpleQuery."</span>);
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>     }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>     
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>     @Test
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleContains() {
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>         log.debug(<span class="jxr_string">"Start testMultipleContains..."</span>);
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>         dataCreator.createSecondaryTestDocuments();
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>         String statement = <span class="jxr_string">"SELECT * FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" WHERE CONTAINS('abc') AND CONTAINS('123')"</span>;
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1130" href="#1130">1130</a>             doQuery(statement);
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>             fail(<span class="jxr_string">"Multiple CONTAINS clauses should throw CmisInvalidArgumentException"</span>);
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>         } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="1133" href="#1133">1133</a>             assertTrue(e.getMessage().contains(<span class="jxr_string">"More than one CONTAINS"</span>));
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>         }
<a class="jxr_linenumber" name="1135" href="#1135">1135</a>         log.debug(<span class="jxr_string">"...Stop testMultipleContains."</span>);
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>     }
<a class="jxr_linenumber" name="1137" href="#1137">1137</a> 
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>     @Test
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPredfinedQueryName() {
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>         log.debug(<span class="jxr_string">"Start testPredfinedQueryName..."</span>);
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>         String statement = <span class="jxr_string">"SELECT cmis:name as abc, SCORE() FROM "</span> + COMPLEX_TYPE + <span class="jxr_string">" ORDER BY SEARCH_SCORE"</span>;
<a class="jxr_linenumber" name="1142" href="#1142">1142</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>             doQuery(statement);
<a class="jxr_linenumber" name="1144" href="#1144">1144</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>             fail(<span class="jxr_string">"SEARCH_SCORE in ORDER_BY must be supported."</span>);
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>         }
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>         log.debug(<span class="jxr_string">"...Stop testPredfinedQueryName."</span>);
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>     }
<a class="jxr_linenumber" name="1149" href="#1149">1149</a> 
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>     <strong class="jxr_keyword">private</strong> ObjectList doQuery(String queryString) {
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>         log.debug(<span class="jxr_string">"\nExecuting query: "</span> + queryString);
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>         ObjectList res = fDiscSvc.query(fRepositoryId, queryString, false, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                 <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>         log.debug(<span class="jxr_string">"Query result, number of matching objects: "</span> + res.getNumItems());
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : res.getObjects()) {
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>             PropertyData&lt;?&gt; propData = od.getProperties().getProperties().get(PropertyIds.NAME);
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>             <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != propData) {
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>                 log.debug(<span class="jxr_string">"Found matching object: "</span> + propData.getFirstValue());
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>                 log.debug(<span class="jxr_string">"Found matching object: (unknown, no name)"</span>);
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>             }
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>         }
<a class="jxr_linenumber" name="1163" href="#1163">1163</a>         <strong class="jxr_keyword">return</strong> res;
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>     }
<a class="jxr_linenumber" name="1165" href="#1165">1165</a> 
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>     <strong class="jxr_keyword">private</strong> ObjectList doQueryAllVersions(String queryString) {
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>         log.debug(<span class="jxr_string">"\nExecuting query: "</span> + queryString);
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>         ObjectList res = fDiscSvc.query(fRepositoryId, queryString, <strong class="jxr_keyword">true</strong>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1169" href="#1169">1169</a>                 <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>         log.debug(<span class="jxr_string">"Query result, number of matching objects: "</span> + res.getNumItems());
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : res.getObjects()) {
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>             log.debug(<span class="jxr_string">"Found matching object: "</span>
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>                     + od.getProperties().getProperties().get(PropertyIds.NAME).getFirstValue());
<a class="jxr_linenumber" name="1174" href="#1174">1174</a>         }
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>         <strong class="jxr_keyword">return</strong> res;
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>     }
<a class="jxr_linenumber" name="1177" href="#1177">1177</a> 
<a class="jxr_linenumber" name="1178" href="#1178">1178</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContains(Object value, String propId, ObjectList results) {
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : results.getObjects()) {
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>             PropertyData&lt;?&gt; propData = od.getProperties().getProperties().get(propId);
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>             <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != propData) {
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>                 Object propVal = propData.getFirstValue();
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>                 <strong class="jxr_keyword">if</strong> (value.equals(propVal)) {
<a class="jxr_linenumber" name="1184" href="#1184">1184</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1185" href="#1185">1185</a>                 }
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>             }
<a class="jxr_linenumber" name="1187" href="#1187">1187</a>         }
<a class="jxr_linenumber" name="1188" href="#1188">1188</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>     }
<a class="jxr_linenumber" name="1190" href="#1190">1190</a> 
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContains(Double val, String propId, ObjectList results) {
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : results.getObjects()) {
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>             BigDecimal bd = (BigDecimal) od.getProperties().getProperties().get(propId).getFirstValue();
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>             <strong class="jxr_keyword">if</strong> (val.equals(bd.doubleValue())) {
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>             }
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>         }
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>     }
<a class="jxr_linenumber" name="1200" href="#1200">1200</a> 
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContains(String name, ObjectList results) {
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>         <strong class="jxr_keyword">return</strong> resultContains(name, PropertyIds.NAME, results);
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>     }
<a class="jxr_linenumber" name="1204" href="#1204">1204</a> 
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContainsAtPos(String name, <strong class="jxr_keyword">int</strong> index, ObjectList results) {
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>         String nameProp = (String) results.getObjects().get(index).getProperties().getProperties()
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>                 .get(PropertyIds.NAME).getFirstValue();
<a class="jxr_linenumber" name="1208" href="#1208">1208</a>         <strong class="jxr_keyword">return</strong> name.equals(nameProp);
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>     }
<a class="jxr_linenumber" name="1210" href="#1210">1210</a> 
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> resultContainsNotSetPropertyValue(String propId, ObjectData od) {
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>         PropertyData&lt;?&gt; propData = od.getProperties().getProperties().get(propId);
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>         <strong class="jxr_keyword">return</strong> propData != <strong class="jxr_keyword">null</strong> &amp;&amp; propId.equals(propData.getId()) &amp;&amp; propData.getValues().isEmpty();
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>     }
<a class="jxr_linenumber" name="1215" href="#1215">1215</a> 
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContainsProperty(String propId, ObjectList results) {
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : results.getObjects()) {
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>             PropertyData&lt;?&gt; propData = od.getProperties().getProperties().get(propId);
<a class="jxr_linenumber" name="1219" href="#1219">1219</a>             <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propData) {
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>                 <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>             }
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>         }
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1224" href="#1224">1224</a>     }
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>     
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> resultContainsQueryName(String queryName, ObjectList results) {
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>         <strong class="jxr_keyword">for</strong> (ObjectData od : results.getObjects()) {
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>         	<strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; propData : od.getProperties().getProperties().values()) {
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>         		<strong class="jxr_keyword">if</strong> (queryName.equals(propData.getQueryName())) {
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>         			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>         		}
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>         	}
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>         }
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>     }
<a class="jxr_linenumber" name="1236" href="#1236">1236</a> 
<a class="jxr_linenumber" name="1237" href="#1237">1237</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

