<!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>AbstractSessionTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.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.tck.impl;
<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.commons.impl.CollectionsHelper.isNotEmpty;
<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.commons.impl.CollectionsHelper.isNullOrEmpty;
<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.tck.CmisTestResultStatus.FAILURE;
<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.tck.CmisTestResultStatus.INFO;
<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.tck.CmisTestResultStatus.OK;
<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.tck.CmisTestResultStatus.SKIPPED;
<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.tck.CmisTestResultStatus.UNEXPECTED_EXCEPTION;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus.WARNING;
<a class="jxr_linenumber" name="29" href="#29">29</a>  
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedInputStream;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.io.Reader;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="46" href="#46">46</a>  
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.SessionParameterMap;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.CmisObject;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Document;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.FileableCmisObject;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Folder;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Item;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ItemIterable;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectId;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectType;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.OperationContext;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Policy;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Property;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Relationship;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Rendition;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Session;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.SessionFactory;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Tree;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.bindings.impl.ClientVersion;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.runtime.OperationContextImpl;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.SessionParameter;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BindingType;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CmisVersion;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.IOUtils;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.CmisTestResult;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus;
<a class="jxr_linenumber" name="105" href="#105">105</a> 
<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment"> * Base class for tests that require an OpenCMIS session.</em>
<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="109" href="#109">109</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">AbstractSessionTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.html">AbstractCmisTest</a> {
<a class="jxr_linenumber" name="110" href="#110">110</a> 
<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> OperationContext SELECT_ALL_NO_CACHE_OC = <strong class="jxr_keyword">new</strong> OperationContextImpl();
<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> OperationContext SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME;
<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">static</strong> {
<a class="jxr_linenumber" name="114" href="#114">114</a>         SELECT_ALL_NO_CACHE_OC.setFilterString(<span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="115" href="#115">115</a>         SELECT_ALL_NO_CACHE_OC.setCacheEnabled(false);
<a class="jxr_linenumber" name="116" href="#116">116</a>         SELECT_ALL_NO_CACHE_OC.setIncludeAllowableActions(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="117" href="#117">117</a>         SELECT_ALL_NO_CACHE_OC.setIncludeAcls(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="118" href="#118">118</a>         SELECT_ALL_NO_CACHE_OC.setIncludePathSegments(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="119" href="#119">119</a>         SELECT_ALL_NO_CACHE_OC.setIncludePolicies(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="120" href="#120">120</a>         SELECT_ALL_NO_CACHE_OC.setIncludeRelationships(IncludeRelationships.BOTH);
<a class="jxr_linenumber" name="121" href="#121">121</a>         SELECT_ALL_NO_CACHE_OC.setRenditionFilterString(<span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="122" href="#122">122</a>         SELECT_ALL_NO_CACHE_OC.setOrderBy(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="123" href="#123">123</a> 
<a class="jxr_linenumber" name="124" href="#124">124</a>         SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME = <strong class="jxr_keyword">new</strong> OperationContextImpl(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="125" href="#125">125</a>         SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME.setOrderBy(<span class="jxr_string">"cmis:name"</span>);
<a class="jxr_linenumber" name="126" href="#126">126</a>     }
<a class="jxr_linenumber" name="127" href="#127">127</a> 
<a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TCK_USER_AGENT = <span class="jxr_string">"OpenCMIS-TCK/"</span>
<a class="jxr_linenumber" name="129" href="#129">129</a>             + (ClientVersion.OPENCMIS_VERSION == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"?"</span> : ClientVersion.OPENCMIS_VERSION) + <span class="jxr_string">" "</span>
<a class="jxr_linenumber" name="130" href="#130">130</a>             + ClientVersion.OPENCMIS_USER_AGENT;
<a class="jxr_linenumber" name="131" href="#131">131</a> 
<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SessionFactory factory = SessionFactoryImpl.newInstance();
<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">private</strong> Folder testFolder;
<a class="jxr_linenumber" name="134" href="#134">134</a> 
<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">private</strong> Boolean supportsRelationships;
<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">private</strong> Boolean supportsPolicies;
<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">private</strong> Boolean supportsItems;
<a class="jxr_linenumber" name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> Boolean supportsSecondaries;
<a class="jxr_linenumber" name="139" href="#139">139</a> 
<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> BindingType getBinding() {
<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> (getParameters() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="142" href="#142">142</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="146" href="#146">146</a>             <strong class="jxr_keyword">return</strong> BindingType.fromValue(getParameters().get(SessionParameter.BINDING_TYPE));
<a class="jxr_linenumber" name="147" href="#147">147</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="148" href="#148">148</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="149" href="#149">149</a>         }
<a class="jxr_linenumber" name="150" href="#150">150</a>     }
<a class="jxr_linenumber" name="151" href="#151">151</a> 
<a class="jxr_linenumber" name="152" href="#152">152</a>     @Override
<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> String getName() {
<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.getName() + <span class="jxr_string">" ("</span> + getBinding() + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="155" href="#155">155</a>     }
<a class="jxr_linenumber" name="156" href="#156">156</a> 
<a class="jxr_linenumber" name="157" href="#157">157</a>     @Override
<a class="jxr_linenumber" name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="159" href="#159">159</a>         Session session;
<a class="jxr_linenumber" name="160" href="#160">160</a> 
<a class="jxr_linenumber" name="161" href="#161">161</a>         SessionParameterMap parameters = <strong class="jxr_keyword">new</strong> SessionParameterMap(getParameters());
<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">if</strong> (!parameters.containsKey(SessionParameter.USER_AGENT)) {
<a class="jxr_linenumber" name="163" href="#163">163</a>             parameters.setUserAgent(TCK_USER_AGENT);
<a class="jxr_linenumber" name="164" href="#164">164</a>         }
<a class="jxr_linenumber" name="165" href="#165">165</a> 
<a class="jxr_linenumber" name="166" href="#166">166</a>         String repId = parameters.get(SessionParameter.REPOSITORY_ID);
<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">if</strong> (repId != <strong class="jxr_keyword">null</strong> &amp;&amp; repId.length() &gt; 0) {
<a class="jxr_linenumber" name="168" href="#168">168</a>             session = factory.createSession(parameters);
<a class="jxr_linenumber" name="169" href="#169">169</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="170" href="#170">170</a>             session = factory.getRepositories(parameters).get(0).createSession();
<a class="jxr_linenumber" name="171" href="#171">171</a>         }
<a class="jxr_linenumber" name="172" href="#172">172</a> 
<a class="jxr_linenumber" name="173" href="#173">173</a>         <em class="jxr_comment">// switch off the cache</em>
<a class="jxr_linenumber" name="174" href="#174">174</a>         session.getDefaultContext().setCacheEnabled(false);
<a class="jxr_linenumber" name="175" href="#175">175</a> 
<a class="jxr_linenumber" name="176" href="#176">176</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="177" href="#177">177</a>             run(session);
<a class="jxr_linenumber" name="178" href="#178">178</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="179" href="#179">179</a>             <strong class="jxr_keyword">if</strong> (!(e instanceof FatalTestException)) {
<a class="jxr_linenumber" name="180" href="#180">180</a>                 addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Exception: "</span> + e, e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="181" href="#181">181</a>             }
<a class="jxr_linenumber" name="182" href="#182">182</a>         } <strong class="jxr_keyword">catch</strong> (Error err) {
<a class="jxr_linenumber" name="183" href="#183">183</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Error: "</span> + err, err, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="184" href="#184">184</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="185" href="#185">185</a>             testFolder = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="186" href="#186">186</a>         }
<a class="jxr_linenumber" name="187" href="#187">187</a>     }
<a class="jxr_linenumber" name="188" href="#188">188</a> 
<a class="jxr_linenumber" name="189" href="#189">189</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> run(Session session) <strong class="jxr_keyword">throws</strong> Exception;
<a class="jxr_linenumber" name="190" href="#190">190</a> 
<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">protected</strong> RepositoryInfo getRepositoryInfo(Session session) {
<a class="jxr_linenumber" name="192" href="#192">192</a>         RepositoryInfo ri = session.getRepositoryInfo();
<a class="jxr_linenumber" name="193" href="#193">193</a> 
<a class="jxr_linenumber" name="194" href="#194">194</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure = createResult(FAILURE, <span class="jxr_string">"Repository info is null!"</span>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="195" href="#195">195</a>         addResult(assertNotNull(ri, <strong class="jxr_keyword">null</strong>, failure));
<a class="jxr_linenumber" name="196" href="#196">196</a> 
<a class="jxr_linenumber" name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> ri;
<a class="jxr_linenumber" name="198" href="#198">198</a>     }
<a class="jxr_linenumber" name="199" href="#199">199</a> 
<a class="jxr_linenumber" name="200" href="#200">200</a>     <strong class="jxr_keyword">protected</strong> String getFolderTestTypeId() {
<a class="jxr_linenumber" name="201" href="#201">201</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_FOLDER_TYPE);
<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="203" href="#203">203</a>             objectTypeId = TestParameters.DEFAULT_FOLDER_TYPE_VALUE;
<a class="jxr_linenumber" name="204" href="#204">204</a>         }
<a class="jxr_linenumber" name="205" href="#205">205</a> 
<a class="jxr_linenumber" name="206" href="#206">206</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="207" href="#207">207</a>     }
<a class="jxr_linenumber" name="208" href="#208">208</a> 
<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">protected</strong> String getDocumentTestTypeId() {
<a class="jxr_linenumber" name="210" href="#210">210</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_DOCUMENT_TYPE);
<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="212" href="#212">212</a>             objectTypeId = TestParameters.DEFAULT_DOCUMENT_TYPE_VALUE;
<a class="jxr_linenumber" name="213" href="#213">213</a>         }
<a class="jxr_linenumber" name="214" href="#214">214</a> 
<a class="jxr_linenumber" name="215" href="#215">215</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="216" href="#216">216</a>     }
<a class="jxr_linenumber" name="217" href="#217">217</a> 
<a class="jxr_linenumber" name="218" href="#218">218</a>     <strong class="jxr_keyword">protected</strong> String getRelationshipTestTypeId() {
<a class="jxr_linenumber" name="219" href="#219">219</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_RELATIONSHIP_TYPE);
<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="221" href="#221">221</a>             objectTypeId = TestParameters.DEFAULT_RELATIONSHIP_TYPE_VALUE;
<a class="jxr_linenumber" name="222" href="#222">222</a>         }
<a class="jxr_linenumber" name="223" href="#223">223</a> 
<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="225" href="#225">225</a>     }
<a class="jxr_linenumber" name="226" href="#226">226</a> 
<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">protected</strong> String getPolicyTestTypeId() {
<a class="jxr_linenumber" name="228" href="#228">228</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_POLICY_TYPE);
<a class="jxr_linenumber" name="229" href="#229">229</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="230" href="#230">230</a>             objectTypeId = TestParameters.DEFAULT_POLICY_TYPE_VALUE;
<a class="jxr_linenumber" name="231" href="#231">231</a>         }
<a class="jxr_linenumber" name="232" href="#232">232</a> 
<a class="jxr_linenumber" name="233" href="#233">233</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="234" href="#234">234</a>     }
<a class="jxr_linenumber" name="235" href="#235">235</a> 
<a class="jxr_linenumber" name="236" href="#236">236</a>     <strong class="jxr_keyword">protected</strong> String getItemTestTypeId() {
<a class="jxr_linenumber" name="237" href="#237">237</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_ITEM_TYPE);
<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="239" href="#239">239</a>             objectTypeId = TestParameters.DEFAULT_ITEM_TYPE_VALUE;
<a class="jxr_linenumber" name="240" href="#240">240</a>         }
<a class="jxr_linenumber" name="241" href="#241">241</a> 
<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="243" href="#243">243</a>     }
<a class="jxr_linenumber" name="244" href="#244">244</a> 
<a class="jxr_linenumber" name="245" href="#245">245</a>     <strong class="jxr_keyword">protected</strong> String getSecondaryTestTypeId() {
<a class="jxr_linenumber" name="246" href="#246">246</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_SECONDARY_TYPE);
<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="248" href="#248">248</a>             objectTypeId = TestParameters.DEFAULT_SECONDARY_TYPE_VALUE;
<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>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="252" href="#252">252</a>     }
<a class="jxr_linenumber" name="253" href="#253">253</a> 
<a class="jxr_linenumber" name="254" href="#254">254</a>     <em class="jxr_comment">// --- helpers ---</em>
<a class="jxr_linenumber" name="255" href="#255">255</a> 
<a class="jxr_linenumber" name="256" href="#256">256</a>     <strong class="jxr_keyword">protected</strong> String[] getAllProperties(CmisObject object) {
<a class="jxr_linenumber" name="257" href="#257">257</a>         String[] propertiesk = <strong class="jxr_keyword">new</strong> String[object.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="258" href="#258">258</a> 
<a class="jxr_linenumber" name="259" href="#259">259</a>         <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">for</strong> (String propId : object.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="261" href="#261">261</a>             propertiesk[i++] = propId;
<a class="jxr_linenumber" name="262" href="#262">262</a>         }
<a class="jxr_linenumber" name="263" href="#263">263</a> 
<a class="jxr_linenumber" name="264" href="#264">264</a>         <strong class="jxr_keyword">return</strong> propertiesk;
<a class="jxr_linenumber" name="265" href="#265">265</a>     }
<a class="jxr_linenumber" name="266" href="#266">266</a> 
<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">protected</strong> String getStringFromContentStream(ContentStream contentStream) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="268" href="#268">268</a>         <strong class="jxr_keyword">if</strong> (contentStream == <strong class="jxr_keyword">null</strong> || contentStream.getStream() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="269" href="#269">269</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="270" href="#270">270</a>         }
<a class="jxr_linenumber" name="271" href="#271">271</a> 
<a class="jxr_linenumber" name="272" href="#272">272</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(4096);
<a class="jxr_linenumber" name="273" href="#273">273</a>         Reader reader = <strong class="jxr_keyword">new</strong> InputStreamReader(contentStream.getStream(), IOUtils.UTF8);
<a class="jxr_linenumber" name="274" href="#274">274</a> 
<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="276" href="#276">276</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong>[] buffer = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[64 * 1024];
<a class="jxr_linenumber" name="277" href="#277">277</a>             <strong class="jxr_keyword">int</strong> b;
<a class="jxr_linenumber" name="278" href="#278">278</a>             <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a class="jxr_linenumber" name="279" href="#279">279</a>                 b = reader.read(buffer, 0, buffer.length);
<a class="jxr_linenumber" name="280" href="#280">280</a>                 <strong class="jxr_keyword">if</strong> (b &gt; 0) {
<a class="jxr_linenumber" name="281" href="#281">281</a>                     sb.append(buffer, 0, b);
<a class="jxr_linenumber" name="282" href="#282">282</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (b == -1) {
<a class="jxr_linenumber" name="283" href="#283">283</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="284" href="#284">284</a>                 }
<a class="jxr_linenumber" name="285" href="#285">285</a>             }
<a class="jxr_linenumber" name="286" href="#286">286</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="287" href="#287">287</a>             reader.close();
<a class="jxr_linenumber" name="288" href="#288">288</a>         }
<a class="jxr_linenumber" name="289" href="#289">289</a> 
<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a class="jxr_linenumber" name="291" href="#291">291</a>     }
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>     <em class="jxr_comment">// --- handy create and delete methods ---</em>
<a class="jxr_linenumber" name="294" href="#294">294</a> 
<a class="jxr_linenumber" name="295" href="#295">295</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="296" href="#296">296</a> <em class="jxr_javadoccomment">     * Creates a folder.</em>
<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="298" href="#298">298</a>     <strong class="jxr_keyword">protected</strong> Folder createFolder(Session session, Folder parent, String name) {
<a class="jxr_linenumber" name="299" href="#299">299</a>         <strong class="jxr_keyword">return</strong> createFolder(session, parent, name, getFolderTestTypeId());
<a class="jxr_linenumber" name="300" href="#300">300</a>     }
<a class="jxr_linenumber" name="301" href="#301">301</a> 
<a class="jxr_linenumber" name="302" href="#302">302</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="303" href="#303">303</a> <em class="jxr_javadoccomment">     * Creates a folder.</em>
<a class="jxr_linenumber" name="304" href="#304">304</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="305" href="#305">305</a>     <strong class="jxr_keyword">protected</strong> Folder createFolder(Session session, Folder parent, String name, String objectTypeId) {
<a class="jxr_linenumber" name="306" href="#306">306</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="307" href="#307">307</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Parent is not set!"</span>);
<a class="jxr_linenumber" name="308" href="#308">308</a>         }
<a class="jxr_linenumber" name="309" href="#309">309</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="310" href="#310">310</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Name is not set!"</span>);
<a class="jxr_linenumber" name="311" href="#311">311</a>         }
<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="313" href="#313">313</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Object Type ID is not set!"</span>);
<a class="jxr_linenumber" name="314" href="#314">314</a>         }
<a class="jxr_linenumber" name="315" href="#315">315</a> 
<a class="jxr_linenumber" name="316" href="#316">316</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="317" href="#317">317</a>         ObjectType type;
<a class="jxr_linenumber" name="318" href="#318">318</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="319" href="#319">319</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="320" href="#320">320</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="321" href="#321">321</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="322" href="#322">322</a>                     <span class="jxr_string">"Folder type '"</span> + objectTypeId + <span class="jxr_string">"' is not available: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="323" href="#323">323</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="324" href="#324">324</a>         }
<a class="jxr_linenumber" name="325" href="#325">325</a> 
<a class="jxr_linenumber" name="326" href="#326">326</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="327" href="#327">327</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"Folder type '"</span> + objectTypeId + <span class="jxr_string">"' is not creatable!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="328" href="#328">328</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="329" href="#329">329</a>         }
<a class="jxr_linenumber" name="330" href="#330">330</a> 
<a class="jxr_linenumber" name="331" href="#331">331</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="332" href="#332">332</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="333" href="#333">333</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="334" href="#334">334</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="335" href="#335">335</a> 
<a class="jxr_linenumber" name="336" href="#336">336</a>         Folder result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="337" href="#337">337</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="338" href="#338">338</a>             <em class="jxr_comment">// create the folder</em>
<a class="jxr_linenumber" name="339" href="#339">339</a>             result = parent.createFolder(properties, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="340" href="#340">340</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="341" href="#341">341</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Folder could not be created! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="342" href="#342">342</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="343" href="#343">343</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="344" href="#344">344</a>         }
<a class="jxr_linenumber" name="345" href="#345">345</a> 
<a class="jxr_linenumber" name="346" href="#346">346</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="347" href="#347">347</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="348" href="#348">348</a> 
<a class="jxr_linenumber" name="349" href="#349">349</a>             <em class="jxr_comment">// check folder name</em>
<a class="jxr_linenumber" name="350" href="#350">350</a>             f = createResult(FAILURE, <span class="jxr_string">"Folder name does not match!"</span>, false);
<a class="jxr_linenumber" name="351" href="#351">351</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="352" href="#352">352</a> 
<a class="jxr_linenumber" name="353" href="#353">353</a>             <em class="jxr_comment">// check the new folder</em>
<a class="jxr_linenumber" name="354" href="#354">354</a>             String[] propertiesToCheck = <strong class="jxr_keyword">new</strong> String[result.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="355" href="#355">355</a> 
<a class="jxr_linenumber" name="356" href="#356">356</a>             <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="357" href="#357">357</a>             <strong class="jxr_keyword">for</strong> (String propId : result.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="358" href="#358">358</a>                 propertiesToCheck[i++] = propId;
<a class="jxr_linenumber" name="359" href="#359">359</a>             }
<a class="jxr_linenumber" name="360" href="#360">360</a> 
<a class="jxr_linenumber" name="361" href="#361">361</a>             addResult(checkObject(session, result, propertiesToCheck, <span class="jxr_string">"New folder object spec compliance"</span>));
<a class="jxr_linenumber" name="362" href="#362">362</a> 
<a class="jxr_linenumber" name="363" href="#363">363</a>             <em class="jxr_comment">// check object parents</em>
<a class="jxr_linenumber" name="364" href="#364">364</a>             List&lt;Folder&gt; objectParents = result.getParents();
<a class="jxr_linenumber" name="365" href="#365">365</a> 
<a class="jxr_linenumber" name="366" href="#366">366</a>             f = createResult(FAILURE, <span class="jxr_string">"Newly created folder has no or more than one parent! ID: "</span> + result.getId(),
<a class="jxr_linenumber" name="367" href="#367">367</a>                     <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="368" href="#368">368</a>             addResult(assertEquals(1, objectParents.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="369" href="#369">369</a> 
<a class="jxr_linenumber" name="370" href="#370">370</a>             f = createResult(FAILURE, <span class="jxr_string">"First object parent of the newly created folder does not match parent! ID: "</span>
<a class="jxr_linenumber" name="371" href="#371">371</a>                     + result.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="372" href="#372">372</a>             assertShallowEquals(parent, objectParents.get(0), <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="373" href="#373">373</a> 
<a class="jxr_linenumber" name="374" href="#374">374</a>             <em class="jxr_comment">// check folder parent</em>
<a class="jxr_linenumber" name="375" href="#375">375</a>             Folder folderParent = result.getFolderParent();
<a class="jxr_linenumber" name="376" href="#376">376</a>             f = createResult(FAILURE, <span class="jxr_string">"Newly created folder has no folder parent! ID: "</span> + result.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="377" href="#377">377</a>             addResult(assertNotNull(folderParent, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="378" href="#378">378</a> 
<a class="jxr_linenumber" name="379" href="#379">379</a>             f = createResult(FAILURE,
<a class="jxr_linenumber" name="380" href="#380">380</a>                     <span class="jxr_string">"Folder parent of the newly created folder does not match parent! ID: "</span> + result.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="381" href="#381">381</a>             assertShallowEquals(parent, folderParent, <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>             <em class="jxr_comment">// check children of parent</em>
<a class="jxr_linenumber" name="384" href="#384">384</a>             <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="385" href="#385">385</a>             <strong class="jxr_keyword">for</strong> (CmisObject child : parent.getChildren(SELECT_ALL_NO_CACHE_OC)) {
<a class="jxr_linenumber" name="386" href="#386">386</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="387" href="#387">387</a>                     addResult(createResult(FAILURE, <span class="jxr_string">"Parent folder contains a null child!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="388" href="#388">388</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="389" href="#389">389</a>                     <strong class="jxr_keyword">if</strong> (result.getId().equals(child.getId())) {
<a class="jxr_linenumber" name="390" href="#390">390</a>                         found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="391" href="#391">391</a> 
<a class="jxr_linenumber" name="392" href="#392">392</a>                         f = createResult(FAILURE, <span class="jxr_string">"Folder and parent child don't match! ID: "</span> + result.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="393" href="#393">393</a>                         assertShallowEquals(result, child, <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="394" href="#394">394</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="395" href="#395">395</a>                     }
<a class="jxr_linenumber" name="396" href="#396">396</a>                 }
<a class="jxr_linenumber" name="397" href="#397">397</a>             }
<a class="jxr_linenumber" name="398" href="#398">398</a> 
<a class="jxr_linenumber" name="399" href="#399">399</a>             <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="400" href="#400">400</a>                 addResult(createResult(FAILURE, <span class="jxr_string">"Folder is not a child of the parent folder! ID: "</span> + result.getId(),
<a class="jxr_linenumber" name="401" href="#401">401</a>                         <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="402" href="#402">402</a>             }
<a class="jxr_linenumber" name="403" href="#403">403</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="404" href="#404">404</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="405" href="#405">405</a>                     <span class="jxr_string">"Newly created folder is invalid! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="406" href="#406">406</a>         }
<a class="jxr_linenumber" name="407" href="#407">407</a> 
<a class="jxr_linenumber" name="408" href="#408">408</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="409" href="#409">409</a>     }
<a class="jxr_linenumber" name="410" href="#410">410</a> 
<a class="jxr_linenumber" name="411" href="#411">411</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * Counts the children in a folder.</em>
<a class="jxr_linenumber" name="413" href="#413">413</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="414" href="#414">414</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> countFolderChildren(Folder folder) {
<a class="jxr_linenumber" name="415" href="#415">415</a>         <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="416" href="#416">416</a> 
<a class="jxr_linenumber" name="417" href="#417">417</a>         <strong class="jxr_keyword">for</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a class="jxr_linenumber" name="418" href="#418">418</a>         CmisObject object : folder.getChildren()) {
<a class="jxr_linenumber" name="419" href="#419">419</a>             count++;
<a class="jxr_linenumber" name="420" href="#420">420</a>         }
<a class="jxr_linenumber" name="421" href="#421">421</a> 
<a class="jxr_linenumber" name="422" href="#422">422</a>         <strong class="jxr_keyword">return</strong> count;
<a class="jxr_linenumber" name="423" href="#423">423</a>     }
<a class="jxr_linenumber" name="424" href="#424">424</a> 
<a class="jxr_linenumber" name="425" href="#425">425</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="426" href="#426">426</a> <em class="jxr_javadoccomment">     * Creates a document.</em>
<a class="jxr_linenumber" name="427" href="#427">427</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="428" href="#428">428</a>     <strong class="jxr_keyword">protected</strong> Document createDocument(Session session, Folder parent, String name, String content) {
<a class="jxr_linenumber" name="429" href="#429">429</a>         <strong class="jxr_keyword">return</strong> createDocument(session, parent, name, getDocumentTestTypeId(), <strong class="jxr_keyword">null</strong>, content);
<a class="jxr_linenumber" name="430" href="#430">430</a>     }
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="433" href="#433">433</a> <em class="jxr_javadoccomment">     * Creates a document.</em>
<a class="jxr_linenumber" name="434" href="#434">434</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="435" href="#435">435</a>     <strong class="jxr_keyword">protected</strong> Document createDocument(Session session, Folder parent, String name, String objectTypeId,
<a class="jxr_linenumber" name="436" href="#436">436</a>             String[] secondaryTypeIds, String content) {
<a class="jxr_linenumber" name="437" href="#437">437</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="438" href="#438">438</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Parent is not set!"</span>);
<a class="jxr_linenumber" name="439" href="#439">439</a>         }
<a class="jxr_linenumber" name="440" href="#440">440</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="441" href="#441">441</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Name is not set!"</span>);
<a class="jxr_linenumber" name="442" href="#442">442</a>         }
<a class="jxr_linenumber" name="443" href="#443">443</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="444" href="#444">444</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Object Type ID is not set!"</span>);
<a class="jxr_linenumber" name="445" href="#445">445</a>         }
<a class="jxr_linenumber" name="446" href="#446">446</a> 
<a class="jxr_linenumber" name="447" href="#447">447</a>         <strong class="jxr_keyword">if</strong> (content == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="448" href="#448">448</a>             content = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="449" href="#449">449</a>         }
<a class="jxr_linenumber" name="450" href="#450">450</a> 
<a class="jxr_linenumber" name="451" href="#451">451</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="452" href="#452">452</a>         ObjectType type;
<a class="jxr_linenumber" name="453" href="#453">453</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="454" href="#454">454</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="455" href="#455">455</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="456" href="#456">456</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="457" href="#457">457</a>                     <span class="jxr_string">"Document type '"</span> + objectTypeId + <span class="jxr_string">"' is not available: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="458" href="#458">458</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="459" href="#459">459</a>         }
<a class="jxr_linenumber" name="460" href="#460">460</a> 
<a class="jxr_linenumber" name="461" href="#461">461</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="462" href="#462">462</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"Document type '"</span> + objectTypeId + <span class="jxr_string">"' is not creatable!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="463" href="#463">463</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="464" href="#464">464</a>         }
<a class="jxr_linenumber" name="465" href="#465">465</a> 
<a class="jxr_linenumber" name="466" href="#466">466</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="467" href="#467">467</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="468" href="#468">468</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="469" href="#469">469</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="470" href="#470">470</a> 
<a class="jxr_linenumber" name="471" href="#471">471</a>         <strong class="jxr_keyword">if</strong> (secondaryTypeIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="472" href="#472">472</a>             properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, Arrays.asList(secondaryTypeIds));
<a class="jxr_linenumber" name="473" href="#473">473</a>         }
<a class="jxr_linenumber" name="474" href="#474">474</a> 
<a class="jxr_linenumber" name="475" href="#475">475</a>         type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="476" href="#476">476</a>         <strong class="jxr_keyword">if</strong> (!(type instanceof DocumentTypeDefinition)) {
<a class="jxr_linenumber" name="477" href="#477">477</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Type is not a document type! Type: "</span> + objectTypeId, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="478" href="#478">478</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="479" href="#479">479</a>         }
<a class="jxr_linenumber" name="480" href="#480">480</a> 
<a class="jxr_linenumber" name="481" href="#481">481</a>         DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
<a class="jxr_linenumber" name="482" href="#482">482</a>         VersioningState versioningState = (Boolean.TRUE.equals(docType.isVersionable()) ? VersioningState.MAJOR
<a class="jxr_linenumber" name="483" href="#483">483</a>                 : VersioningState.NONE);
<a class="jxr_linenumber" name="484" href="#484">484</a> 
<a class="jxr_linenumber" name="485" href="#485">485</a>         byte[] contentBytes = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="486" href="#486">486</a>         Document result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="487" href="#487">487</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="488" href="#488">488</a>             contentBytes = IOUtils.toUTF8Bytes(content);
<a class="jxr_linenumber" name="489" href="#489">489</a>             ContentStream contentStream = <strong class="jxr_keyword">new</strong> ContentStreamImpl(name, BigInteger.valueOf(contentBytes.length),
<a class="jxr_linenumber" name="490" href="#490">490</a>                     <span class="jxr_string">"text/plain"</span>, <strong class="jxr_keyword">new</strong> ByteArrayInputStream(contentBytes));
<a class="jxr_linenumber" name="491" href="#491">491</a> 
<a class="jxr_linenumber" name="492" href="#492">492</a>             <em class="jxr_comment">// create the document</em>
<a class="jxr_linenumber" name="493" href="#493">493</a>             result = parent.createDocument(properties, contentStream, versioningState, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="494" href="#494">494</a>                     SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="495" href="#495">495</a> 
<a class="jxr_linenumber" name="496" href="#496">496</a>             contentStream.getStream().close();
<a class="jxr_linenumber" name="497" href="#497">497</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="498" href="#498">498</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Document could not be created! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="499" href="#499">499</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="500" href="#500">500</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="501" href="#501">501</a>         }
<a class="jxr_linenumber" name="502" href="#502">502</a> 
<a class="jxr_linenumber" name="503" href="#503">503</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="504" href="#504">504</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="505" href="#505">505</a> 
<a class="jxr_linenumber" name="506" href="#506">506</a>             <em class="jxr_comment">// check document name</em>
<a class="jxr_linenumber" name="507" href="#507">507</a>             f = createResult(FAILURE, <span class="jxr_string">"Document name does not match!"</span>, false);
<a class="jxr_linenumber" name="508" href="#508">508</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="509" href="#509">509</a> 
<a class="jxr_linenumber" name="510" href="#510">510</a>             <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="511" href="#511">511</a>             f = createResult(WARNING, <span class="jxr_string">"Content length does not match!"</span>, false);
<a class="jxr_linenumber" name="512" href="#512">512</a>             addResult(assertEquals((<strong class="jxr_keyword">long</strong>) contentBytes.length, result.getContentStreamLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="513" href="#513">513</a> 
<a class="jxr_linenumber" name="514" href="#514">514</a>             <em class="jxr_comment">// check the new document</em>
<a class="jxr_linenumber" name="515" href="#515">515</a>             addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New document object spec compliance"</span>));
<a class="jxr_linenumber" name="516" href="#516">516</a> 
<a class="jxr_linenumber" name="517" href="#517">517</a>             <em class="jxr_comment">// check content</em>
<a class="jxr_linenumber" name="518" href="#518">518</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="519" href="#519">519</a>                 ContentStream contentStream = result.getContentStream();
<a class="jxr_linenumber" name="520" href="#520">520</a> 
<a class="jxr_linenumber" name="521" href="#521">521</a>                 f = createResult(WARNING, <span class="jxr_string">"Document filename and the filename of the content stream do not match!"</span>,
<a class="jxr_linenumber" name="522" href="#522">522</a>                         false);
<a class="jxr_linenumber" name="523" href="#523">523</a>                 addResult(assertEquals(name, contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="524" href="#524">524</a> 
<a class="jxr_linenumber" name="525" href="#525">525</a>                 f = createResult(WARNING,
<a class="jxr_linenumber" name="526" href="#526">526</a>                         <span class="jxr_string">"cmis:contentStreamFileName and the filename of the content stream do not match!"</span>, false);
<a class="jxr_linenumber" name="527" href="#527">527</a>                 addResult(assertEquals(result.getContentStreamFileName(), contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="528" href="#528">528</a> 
<a class="jxr_linenumber" name="529" href="#529">529</a>                 String fetchedContent = getStringFromContentStream(result.getContentStream());
<a class="jxr_linenumber" name="530" href="#530">530</a>                 <strong class="jxr_keyword">if</strong> (!content.equals(fetchedContent)) {
<a class="jxr_linenumber" name="531" href="#531">531</a>                     addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="532" href="#532">532</a>                             <span class="jxr_string">"Content of newly created document doesn't match the orign content!"</span>));
<a class="jxr_linenumber" name="533" href="#533">533</a>                 }
<a class="jxr_linenumber" name="534" href="#534">534</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="535" href="#535">535</a>                 addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="536" href="#536">536</a>                         <span class="jxr_string">"Content of newly created document couldn't be read! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="537" href="#537">537</a>             }
<a class="jxr_linenumber" name="538" href="#538">538</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="539" href="#539">539</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="540" href="#540">540</a>                     <span class="jxr_string">"Newly created document is invalid! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="541" href="#541">541</a>         }
<a class="jxr_linenumber" name="542" href="#542">542</a> 
<a class="jxr_linenumber" name="543" href="#543">543</a>         <em class="jxr_comment">// check parents</em>
<a class="jxr_linenumber" name="544" href="#544">544</a>         List&lt;Folder&gt; parents = result.getParents(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="545" href="#545">545</a>         <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="546" href="#546">546</a>         <strong class="jxr_keyword">for</strong> (Folder folder : parents) {
<a class="jxr_linenumber" name="547" href="#547">547</a>             <strong class="jxr_keyword">if</strong> (parent.getId().equals(folder.getId())) {
<a class="jxr_linenumber" name="548" href="#548">548</a>                 found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="549" href="#549">549</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="550" href="#550">550</a>             }
<a class="jxr_linenumber" name="551" href="#551">551</a>         }
<a class="jxr_linenumber" name="552" href="#552">552</a> 
<a class="jxr_linenumber" name="553" href="#553">553</a>         <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="554" href="#554">554</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="555" href="#555">555</a>                     <span class="jxr_string">"The folder the document has been created in is not in the list of the document parents!"</span>));
<a class="jxr_linenumber" name="556" href="#556">556</a>         }
<a class="jxr_linenumber" name="557" href="#557">557</a> 
<a class="jxr_linenumber" name="558" href="#558">558</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="559" href="#559">559</a>     }
<a class="jxr_linenumber" name="560" href="#560">560</a> 
<a class="jxr_linenumber" name="561" href="#561">561</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="562" href="#562">562</a> <em class="jxr_javadoccomment">     * Creates a relationship.</em>
<a class="jxr_linenumber" name="563" href="#563">563</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="564" href="#564">564</a>     <strong class="jxr_keyword">protected</strong> Relationship createRelationship(Session session, String name, ObjectId source, ObjectId target) {
<a class="jxr_linenumber" name="565" href="#565">565</a>         String objectTypeId = getRelationshipTestTypeId();
<a class="jxr_linenumber" name="566" href="#566">566</a>         <strong class="jxr_keyword">return</strong> createRelationship(session, name, source, target, objectTypeId);
<a class="jxr_linenumber" name="567" href="#567">567</a>     }
<a class="jxr_linenumber" name="568" href="#568">568</a> 
<a class="jxr_linenumber" name="569" href="#569">569</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="570" href="#570">570</a> <em class="jxr_javadoccomment">     * Creates a relationship.</em>
<a class="jxr_linenumber" name="571" href="#571">571</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="572" href="#572">572</a>     <strong class="jxr_keyword">protected</strong> Relationship createRelationship(Session session, String name, ObjectId source, ObjectId target,
<a class="jxr_linenumber" name="573" href="#573">573</a>             String objectTypeId) {
<a class="jxr_linenumber" name="574" href="#574">574</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="575" href="#575">575</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Name is not set!"</span>);
<a class="jxr_linenumber" name="576" href="#576">576</a>         }
<a class="jxr_linenumber" name="577" href="#577">577</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="578" href="#578">578</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Object Type ID is not set!"</span>);
<a class="jxr_linenumber" name="579" href="#579">579</a>         }
<a class="jxr_linenumber" name="580" href="#580">580</a> 
<a class="jxr_linenumber" name="581" href="#581">581</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="582" href="#582">582</a>         ObjectType type;
<a class="jxr_linenumber" name="583" href="#583">583</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="584" href="#584">584</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="585" href="#585">585</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="586" href="#586">586</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Relationship type '"</span> + objectTypeId + <span class="jxr_string">"' is not available: "</span>
<a class="jxr_linenumber" name="587" href="#587">587</a>                     + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="588" href="#588">588</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="589" href="#589">589</a>         }
<a class="jxr_linenumber" name="590" href="#590">590</a> 
<a class="jxr_linenumber" name="591" href="#591">591</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="592" href="#592">592</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"Relationship type '"</span> + objectTypeId + <span class="jxr_string">"' is not creatable!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="593" href="#593">593</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="594" href="#594">594</a>         }
<a class="jxr_linenumber" name="595" href="#595">595</a> 
<a class="jxr_linenumber" name="596" href="#596">596</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="597" href="#597">597</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="598" href="#598">598</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="599" href="#599">599</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="600" href="#600">600</a>         properties.put(PropertyIds.SOURCE_ID, source.getId());
<a class="jxr_linenumber" name="601" href="#601">601</a>         properties.put(PropertyIds.TARGET_ID, target.getId());
<a class="jxr_linenumber" name="602" href="#602">602</a> 
<a class="jxr_linenumber" name="603" href="#603">603</a>         ObjectId relId;
<a class="jxr_linenumber" name="604" href="#604">604</a>         Relationship result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="605" href="#605">605</a> 
<a class="jxr_linenumber" name="606" href="#606">606</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="607" href="#607">607</a>             relId = session.createRelationship(properties);
<a class="jxr_linenumber" name="608" href="#608">608</a>             result = (Relationship) session.getObject(relId, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="609" href="#609">609</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="610" href="#610">610</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="611" href="#611">611</a>                     <span class="jxr_string">"Relationship could not be created! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="612" href="#612">612</a>         }
<a class="jxr_linenumber" name="613" href="#613">613</a> 
<a class="jxr_linenumber" name="614" href="#614">614</a>         <strong class="jxr_keyword">if</strong> (result != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="615" href="#615">615</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="616" href="#616">616</a>                 <em class="jxr_comment">// check the new relationship</em>
<a class="jxr_linenumber" name="617" href="#617">617</a>                 addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New document object spec compliance"</span>));
<a class="jxr_linenumber" name="618" href="#618">618</a>             } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="619" href="#619">619</a>                 addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="620" href="#620">620</a>                         <span class="jxr_string">"Newly created document is invalid! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="621" href="#621">621</a>             }
<a class="jxr_linenumber" name="622" href="#622">622</a>         }
<a class="jxr_linenumber" name="623" href="#623">623</a> 
<a class="jxr_linenumber" name="624" href="#624">624</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="625" href="#625">625</a>     }
<a class="jxr_linenumber" name="626" href="#626">626</a> 
<a class="jxr_linenumber" name="627" href="#627">627</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="628" href="#628">628</a> <em class="jxr_javadoccomment">     * Creates a policy.</em>
<a class="jxr_linenumber" name="629" href="#629">629</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="630" href="#630">630</a>     <strong class="jxr_keyword">protected</strong> Policy createPolicy(Session session, Folder parent, String name, String policyText) {
<a class="jxr_linenumber" name="631" href="#631">631</a>         <strong class="jxr_keyword">return</strong> createPolicy(session, parent, name, policyText, getPolicyTestTypeId());
<a class="jxr_linenumber" name="632" href="#632">632</a>     }
<a class="jxr_linenumber" name="633" href="#633">633</a> 
<a class="jxr_linenumber" name="634" href="#634">634</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="635" href="#635">635</a> <em class="jxr_javadoccomment">     * Creates a policy.</em>
<a class="jxr_linenumber" name="636" href="#636">636</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="637" href="#637">637</a>     <strong class="jxr_keyword">protected</strong> Policy createPolicy(Session session, Folder parent, String name, String policyText, String objectTypeId) {
<a class="jxr_linenumber" name="638" href="#638">638</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="639" href="#639">639</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Parent is not set!"</span>);
<a class="jxr_linenumber" name="640" href="#640">640</a>         }
<a class="jxr_linenumber" name="641" href="#641">641</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="642" href="#642">642</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Name is not set!"</span>);
<a class="jxr_linenumber" name="643" href="#643">643</a>         }
<a class="jxr_linenumber" name="644" href="#644">644</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="645" href="#645">645</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Object Type ID is not set!"</span>);
<a class="jxr_linenumber" name="646" href="#646">646</a>         }
<a class="jxr_linenumber" name="647" href="#647">647</a> 
<a class="jxr_linenumber" name="648" href="#648">648</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="649" href="#649">649</a>         ObjectType type;
<a class="jxr_linenumber" name="650" href="#650">650</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="651" href="#651">651</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="652" href="#652">652</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="653" href="#653">653</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="654" href="#654">654</a>                     <span class="jxr_string">"Policy type '"</span> + objectTypeId + <span class="jxr_string">"' is not available: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="655" href="#655">655</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="656" href="#656">656</a>         }
<a class="jxr_linenumber" name="657" href="#657">657</a> 
<a class="jxr_linenumber" name="658" href="#658">658</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="659" href="#659">659</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"Policy type '"</span> + objectTypeId + <span class="jxr_string">"' is not creatable!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="660" href="#660">660</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="661" href="#661">661</a>         }
<a class="jxr_linenumber" name="662" href="#662">662</a> 
<a class="jxr_linenumber" name="663" href="#663">663</a>         <strong class="jxr_keyword">boolean</strong> isFilable = Boolean.TRUE.equals(type.isFileable());
<a class="jxr_linenumber" name="664" href="#664">664</a> 
<a class="jxr_linenumber" name="665" href="#665">665</a>         addResult(createResult(INFO, <span class="jxr_string">"Policy type '"</span> + objectTypeId + <span class="jxr_string">"' is "</span> + (isFilable ? <span class="jxr_string">""</span> : <span class="jxr_string">"not "</span>) + <span class="jxr_string">"filable."</span>));
<a class="jxr_linenumber" name="666" href="#666">666</a> 
<a class="jxr_linenumber" name="667" href="#667">667</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="668" href="#668">668</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="669" href="#669">669</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="670" href="#670">670</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="671" href="#671">671</a>         <strong class="jxr_keyword">if</strong> (policyText != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="672" href="#672">672</a>             properties.put(PropertyIds.POLICY_TEXT, policyText);
<a class="jxr_linenumber" name="673" href="#673">673</a>         }
<a class="jxr_linenumber" name="674" href="#674">674</a> 
<a class="jxr_linenumber" name="675" href="#675">675</a>         Policy result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="676" href="#676">676</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="677" href="#677">677</a>             <em class="jxr_comment">// create the item</em>
<a class="jxr_linenumber" name="678" href="#678">678</a>             <strong class="jxr_keyword">if</strong> (isFilable) {
<a class="jxr_linenumber" name="679" href="#679">679</a>                 result = parent.createPolicy(properties, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="680" href="#680">680</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="681" href="#681">681</a>                 ObjectId policyId = session.createPolicy(properties, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="682" href="#682">682</a>                 result = (Policy) session.getObject(policyId, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="683" href="#683">683</a>             }
<a class="jxr_linenumber" name="684" href="#684">684</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="685" href="#685">685</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Policy could not be created! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="686" href="#686">686</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="687" href="#687">687</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="688" href="#688">688</a>         }
<a class="jxr_linenumber" name="689" href="#689">689</a> 
<a class="jxr_linenumber" name="690" href="#690">690</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="691" href="#691">691</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="692" href="#692">692</a>             <em class="jxr_comment">// check item name</em>
<a class="jxr_linenumber" name="693" href="#693">693</a>             f = createResult(FAILURE, <span class="jxr_string">"Policy name does not match!"</span>, false);
<a class="jxr_linenumber" name="694" href="#694">694</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="695" href="#695">695</a> 
<a class="jxr_linenumber" name="696" href="#696">696</a>             addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New policy object spec compliance"</span>));
<a class="jxr_linenumber" name="697" href="#697">697</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="698" href="#698">698</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="699" href="#699">699</a>                     <span class="jxr_string">"Newly created policy is invalid! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="700" href="#700">700</a>         }
<a class="jxr_linenumber" name="701" href="#701">701</a> 
<a class="jxr_linenumber" name="702" href="#702">702</a>         <em class="jxr_comment">// check parents</em>
<a class="jxr_linenumber" name="703" href="#703">703</a>         List&lt;Folder&gt; parents = result.getParents(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="704" href="#704">704</a> 
<a class="jxr_linenumber" name="705" href="#705">705</a>         <strong class="jxr_keyword">if</strong> (isFilable) {
<a class="jxr_linenumber" name="706" href="#706">706</a>             <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="707" href="#707">707</a>             <strong class="jxr_keyword">for</strong> (Folder folder : parents) {
<a class="jxr_linenumber" name="708" href="#708">708</a>                 <strong class="jxr_keyword">if</strong> (parent.getId().equals(folder.getId())) {
<a class="jxr_linenumber" name="709" href="#709">709</a>                     found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="710" href="#710">710</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="711" href="#711">711</a>                 }
<a class="jxr_linenumber" name="712" href="#712">712</a>             }
<a class="jxr_linenumber" name="713" href="#713">713</a> 
<a class="jxr_linenumber" name="714" href="#714">714</a>             <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="715" href="#715">715</a>                 addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="716" href="#716">716</a>                         <span class="jxr_string">"The folder the item has been created in is not in the list of the item parents!"</span>));
<a class="jxr_linenumber" name="717" href="#717">717</a>             }
<a class="jxr_linenumber" name="718" href="#718">718</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="719" href="#719">719</a>             f = createResult(FAILURE, <span class="jxr_string">"Policy is not filable but has a parent!"</span>, false);
<a class="jxr_linenumber" name="720" href="#720">720</a>             addResult(assertIsTrue(parents.isEmpty(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="721" href="#721">721</a>         }
<a class="jxr_linenumber" name="722" href="#722">722</a> 
<a class="jxr_linenumber" name="723" href="#723">723</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="724" href="#724">724</a>     }
<a class="jxr_linenumber" name="725" href="#725">725</a> 
<a class="jxr_linenumber" name="726" href="#726">726</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="727" href="#727">727</a> <em class="jxr_javadoccomment">     * Creates a item.</em>
<a class="jxr_linenumber" name="728" href="#728">728</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="729" href="#729">729</a>     <strong class="jxr_keyword">protected</strong> Item createItem(Session session, Folder parent, String name) {
<a class="jxr_linenumber" name="730" href="#730">730</a>         <strong class="jxr_keyword">return</strong> createItem(session, parent, name, getItemTestTypeId());
<a class="jxr_linenumber" name="731" href="#731">731</a>     }
<a class="jxr_linenumber" name="732" href="#732">732</a> 
<a class="jxr_linenumber" name="733" href="#733">733</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="734" href="#734">734</a> <em class="jxr_javadoccomment">     * Creates a item.</em>
<a class="jxr_linenumber" name="735" href="#735">735</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="736" href="#736">736</a>     <strong class="jxr_keyword">protected</strong> Item createItem(Session session, Folder parent, String name, String objectTypeId) {
<a class="jxr_linenumber" name="737" href="#737">737</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="738" href="#738">738</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Parent is not set!"</span>);
<a class="jxr_linenumber" name="739" href="#739">739</a>         }
<a class="jxr_linenumber" name="740" href="#740">740</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="741" href="#741">741</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Name is not set!"</span>);
<a class="jxr_linenumber" name="742" href="#742">742</a>         }
<a class="jxr_linenumber" name="743" href="#743">743</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="744" href="#744">744</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Object Type ID is not set!"</span>);
<a class="jxr_linenumber" name="745" href="#745">745</a>         }
<a class="jxr_linenumber" name="746" href="#746">746</a> 
<a class="jxr_linenumber" name="747" href="#747">747</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="748" href="#748">748</a>         ObjectType type;
<a class="jxr_linenumber" name="749" href="#749">749</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="750" href="#750">750</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="751" href="#751">751</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="752" href="#752">752</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="753" href="#753">753</a>                     <span class="jxr_string">"Item type '"</span> + objectTypeId + <span class="jxr_string">"' is not available: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="754" href="#754">754</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="755" href="#755">755</a>         }
<a class="jxr_linenumber" name="756" href="#756">756</a> 
<a class="jxr_linenumber" name="757" href="#757">757</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="758" href="#758">758</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"Item type '"</span> + objectTypeId + <span class="jxr_string">"' is not creatable!"</span>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="759" href="#759">759</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="760" href="#760">760</a>         }
<a class="jxr_linenumber" name="761" href="#761">761</a> 
<a class="jxr_linenumber" name="762" href="#762">762</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="763" href="#763">763</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="764" href="#764">764</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="765" href="#765">765</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="766" href="#766">766</a> 
<a class="jxr_linenumber" name="767" href="#767">767</a>         Item result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="768" href="#768">768</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="769" href="#769">769</a>             <em class="jxr_comment">// create the item</em>
<a class="jxr_linenumber" name="770" href="#770">770</a>             result = parent.createItem(properties, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="771" href="#771">771</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="772" href="#772">772</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Item could not be created! Exception: "</span> + e.getMessage(), e,
<a class="jxr_linenumber" name="773" href="#773">773</a>                     <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="774" href="#774">774</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="775" href="#775">775</a>         }
<a class="jxr_linenumber" name="776" href="#776">776</a> 
<a class="jxr_linenumber" name="777" href="#777">777</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="778" href="#778">778</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="779" href="#779">779</a> 
<a class="jxr_linenumber" name="780" href="#780">780</a>             <em class="jxr_comment">// check item name</em>
<a class="jxr_linenumber" name="781" href="#781">781</a>             f = createResult(FAILURE, <span class="jxr_string">"Item name does not match!"</span>, false);
<a class="jxr_linenumber" name="782" href="#782">782</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="783" href="#783">783</a> 
<a class="jxr_linenumber" name="784" href="#784">784</a>             addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New item object spec compliance"</span>));
<a class="jxr_linenumber" name="785" href="#785">785</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="786" href="#786">786</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Newly created item is invalid! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="787" href="#787">787</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="788" href="#788">788</a>         }
<a class="jxr_linenumber" name="789" href="#789">789</a> 
<a class="jxr_linenumber" name="790" href="#790">790</a>         <em class="jxr_comment">// check parents</em>
<a class="jxr_linenumber" name="791" href="#791">791</a>         List&lt;Folder&gt; parents = result.getParents(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="792" href="#792">792</a>         <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="793" href="#793">793</a>         <strong class="jxr_keyword">for</strong> (Folder folder : parents) {
<a class="jxr_linenumber" name="794" href="#794">794</a>             <strong class="jxr_keyword">if</strong> (parent.getId().equals(folder.getId())) {
<a class="jxr_linenumber" name="795" href="#795">795</a>                 found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="796" href="#796">796</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="797" href="#797">797</a>             }
<a class="jxr_linenumber" name="798" href="#798">798</a>         }
<a class="jxr_linenumber" name="799" href="#799">799</a> 
<a class="jxr_linenumber" name="800" href="#800">800</a>         <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="801" href="#801">801</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="802" href="#802">802</a>                     <span class="jxr_string">"The folder the item has been created in is not in the list of the item parents!"</span>));
<a class="jxr_linenumber" name="803" href="#803">803</a>         }
<a class="jxr_linenumber" name="804" href="#804">804</a> 
<a class="jxr_linenumber" name="805" href="#805">805</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="806" href="#806">806</a>     }
<a class="jxr_linenumber" name="807" href="#807">807</a> 
<a class="jxr_linenumber" name="808" href="#808">808</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="809" href="#809">809</a> <em class="jxr_javadoccomment">     * Deletes an object and checks if it is deleted.</em>
<a class="jxr_linenumber" name="810" href="#810">810</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="811" href="#811">811</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteObject(CmisObject object) {
<a class="jxr_linenumber" name="812" href="#812">812</a>         <strong class="jxr_keyword">if</strong> (object != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="813" href="#813">813</a>             <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="814" href="#814">814</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="815" href="#815">815</a>                     ((Folder) object).deleteTree(<strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="816" href="#816">816</a>                 } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="817" href="#817">817</a>                     addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="818" href="#818">818</a>                             <span class="jxr_string">"Folder could not be deleted! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="819" href="#819">819</a>                 }
<a class="jxr_linenumber" name="820" href="#820">820</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="821" href="#821">821</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="822" href="#822">822</a>                     object.delete(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="823" href="#823">823</a>                 } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="824" href="#824">824</a>                     addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="825" href="#825">825</a>                             <span class="jxr_string">"Object could not be deleted! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="826" href="#826">826</a>                 }
<a class="jxr_linenumber" name="827" href="#827">827</a>             }
<a class="jxr_linenumber" name="828" href="#828">828</a> 
<a class="jxr_linenumber" name="829" href="#829">829</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f = createResult(FAILURE, <span class="jxr_string">"Object should not exist anymore but it is still there! ID: "</span>
<a class="jxr_linenumber" name="830" href="#830">830</a>                     + object.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="831" href="#831">831</a>             addResult(assertIsFalse(exists(object), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="832" href="#832">832</a>         }
<a class="jxr_linenumber" name="833" href="#833">833</a>     }
<a class="jxr_linenumber" name="834" href="#834">834</a> 
<a class="jxr_linenumber" name="835" href="#835">835</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="836" href="#836">836</a> <em class="jxr_javadoccomment">     * Tests if an object exists by refreshing it.</em>
<a class="jxr_linenumber" name="837" href="#837">837</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="838" href="#838">838</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> exists(CmisObject object) {
<a class="jxr_linenumber" name="839" href="#839">839</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="840" href="#840">840</a>             object.refresh();
<a class="jxr_linenumber" name="841" href="#841">841</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="842" href="#842">842</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="843" href="#843">843</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="844" href="#844">844</a>         }
<a class="jxr_linenumber" name="845" href="#845">845</a>     }
<a class="jxr_linenumber" name="846" href="#846">846</a> 
<a class="jxr_linenumber" name="847" href="#847">847</a>     <em class="jxr_comment">// --- type helpers ---</em>
<a class="jxr_linenumber" name="848" href="#848">848</a> 
<a class="jxr_linenumber" name="849" href="#849">849</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="850" href="#850">850</a> <em class="jxr_javadoccomment">     * Creates a new type.</em>
<a class="jxr_linenumber" name="851" href="#851">851</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="852" href="#852">852</a>     <strong class="jxr_keyword">protected</strong> ObjectType createType(Session session, TypeDefinition typeDef) {
<a class="jxr_linenumber" name="853" href="#853">853</a> 
<a class="jxr_linenumber" name="854" href="#854">854</a>         NewTypeSettableAttributes settableAttributes = session.getRepositoryInfo().getCapabilities()
<a class="jxr_linenumber" name="855" href="#855">855</a>                 .getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="856" href="#856">856</a>         <strong class="jxr_keyword">if</strong> (settableAttributes == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="857" href="#857">857</a>             addResult(createResult(WARNING, <span class="jxr_string">"Repository Info does not indicate, which type attributes can be set!"</span>));
<a class="jxr_linenumber" name="858" href="#858">858</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="859" href="#859">859</a>             <em class="jxr_comment">// TODO: add more tests</em>
<a class="jxr_linenumber" name="860" href="#860">860</a>         }
<a class="jxr_linenumber" name="861" href="#861">861</a> 
<a class="jxr_linenumber" name="862" href="#862">862</a>         ObjectType newType = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="863" href="#863">863</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="864" href="#864">864</a>             newType = session.createType(typeDef);
<a class="jxr_linenumber" name="865" href="#865">865</a>             addResult(createInfoResult(<span class="jxr_string">"Created type '"</span> + typeDef.getId()
<a class="jxr_linenumber" name="866" href="#866">866</a>                     + <span class="jxr_string">"'. Repository assigned the following type ID: "</span> + newType.getId()));
<a class="jxr_linenumber" name="867" href="#867">867</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="868" href="#868">868</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Creating type '"</span> + typeDef.getId() + <span class="jxr_string">"' failed: "</span> + e.getMessage(), e,
<a class="jxr_linenumber" name="869" href="#869">869</a>                     false));
<a class="jxr_linenumber" name="870" href="#870">870</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="871" href="#871">871</a>         }
<a class="jxr_linenumber" name="872" href="#872">872</a> 
<a class="jxr_linenumber" name="873" href="#873">873</a>         addResult(checkTypeDefinition(session, newType, <span class="jxr_string">"Newly created type spec compliance."</span>));
<a class="jxr_linenumber" name="874" href="#874">874</a> 
<a class="jxr_linenumber" name="875" href="#875">875</a>         <strong class="jxr_keyword">if</strong> (newType.getTypeMutability() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="876" href="#876">876</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="877" href="#877">877</a>                     <span class="jxr_string">"Newly created type does not provide type mutability data! ID: "</span> + newType.getId()));
<a class="jxr_linenumber" name="878" href="#878">878</a>         }
<a class="jxr_linenumber" name="879" href="#879">879</a> 
<a class="jxr_linenumber" name="880" href="#880">880</a>         <strong class="jxr_keyword">return</strong> newType;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="884" href="#884">884</a> <em class="jxr_javadoccomment">     * Deletes a type.</em>
<a class="jxr_linenumber" name="885" href="#885">885</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="886" href="#886">886</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteType(Session session, String typeId) {
<a class="jxr_linenumber" name="887" href="#887">887</a>         ObjectType type = session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="888" href="#888">888</a> 
<a class="jxr_linenumber" name="889" href="#889">889</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="890" href="#890">890</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Type does not exist and therefore cannot be deleted! ID: "</span> + typeId));
<a class="jxr_linenumber" name="891" href="#891">891</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="892" href="#892">892</a>         }
<a class="jxr_linenumber" name="893" href="#893">893</a> 
<a class="jxr_linenumber" name="894" href="#894">894</a>         <em class="jxr_comment">// check if type can be deleted</em>
<a class="jxr_linenumber" name="895" href="#895">895</a>         <strong class="jxr_keyword">if</strong> (type.getTypeMutability() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="896" href="#896">896</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Type does not provide type mutability data! ID: "</span> + typeId));
<a class="jxr_linenumber" name="897" href="#897">897</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="898" href="#898">898</a>             <strong class="jxr_keyword">if</strong> (!Boolean.TRUE.equals(type.getTypeMutability().canDelete())) {
<a class="jxr_linenumber" name="899" href="#899">899</a>                 addResult(createResult(WARNING, <span class="jxr_string">"Type indicates that it cannot be deleted. Trying it anyway. ID: "</span>
<a class="jxr_linenumber" name="900" href="#900">900</a>                         + typeId));
<a class="jxr_linenumber" name="901" href="#901">901</a>             }
<a class="jxr_linenumber" name="902" href="#902">902</a>         }
<a class="jxr_linenumber" name="903" href="#903">903</a> 
<a class="jxr_linenumber" name="904" href="#904">904</a>         <em class="jxr_comment">// delete it</em>
<a class="jxr_linenumber" name="905" href="#905">905</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="906" href="#906">906</a>             session.deleteType(typeId);
<a class="jxr_linenumber" name="907" href="#907">907</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="908" href="#908">908</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Deleting type '"</span> + typeId + <span class="jxr_string">"' failed: "</span> + e.getMessage(), e, false));
<a class="jxr_linenumber" name="909" href="#909">909</a>             <strong class="jxr_keyword">return</strong>;
<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>         <em class="jxr_comment">// check if the type still exists</em>
<a class="jxr_linenumber" name="913" href="#913">913</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="914" href="#914">914</a>             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="915" href="#915">915</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Type should not exist anymore but it is still there! ID: "</span> + typeId, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="916" href="#916">916</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="917" href="#917">917</a>             <em class="jxr_comment">// expected result</em>
<a class="jxr_linenumber" name="918" href="#918">918</a>         }
<a class="jxr_linenumber" name="919" href="#919">919</a>     }
<a class="jxr_linenumber" name="920" href="#920">920</a> 
<a class="jxr_linenumber" name="921" href="#921">921</a>     <em class="jxr_comment">// --- test folder methods ---</em>
<a class="jxr_linenumber" name="922" href="#922">922</a> 
<a class="jxr_linenumber" name="923" href="#923">923</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="924" href="#924">924</a> <em class="jxr_javadoccomment">     * Creates a test folder.</em>
<a class="jxr_linenumber" name="925" href="#925">925</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="926" href="#926">926</a>     <strong class="jxr_keyword">protected</strong> Folder createTestFolder(Session session) {
<a class="jxr_linenumber" name="927" href="#927">927</a> 
<a class="jxr_linenumber" name="928" href="#928">928</a>         String testFolderParentPath = getParameters().get(TestParameters.DEFAULT_TEST_FOLDER_PARENT);
<a class="jxr_linenumber" name="929" href="#929">929</a>         <strong class="jxr_keyword">if</strong> (testFolderParentPath == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="930" href="#930">930</a>             testFolderParentPath = TestParameters.DEFAULT_TEST_FOLDER_PARENT_VALUE;
<a class="jxr_linenumber" name="931" href="#931">931</a>         }
<a class="jxr_linenumber" name="932" href="#932">932</a> 
<a class="jxr_linenumber" name="933" href="#933">933</a>         String name = <span class="jxr_string">"cmistck"</span> + System.currentTimeMillis() + session.getRepositoryInfo().hashCode();
<a class="jxr_linenumber" name="934" href="#934">934</a> 
<a class="jxr_linenumber" name="935" href="#935">935</a>         Folder parent = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="936" href="#936">936</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="937" href="#937">937</a>             CmisObject parentObject = session.getObjectByPath(testFolderParentPath, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="938" href="#938">938</a>             <strong class="jxr_keyword">if</strong> (!(parentObject instanceof Folder)) {
<a class="jxr_linenumber" name="939" href="#939">939</a>                 addResult(createResult(FAILURE, <span class="jxr_string">"Parent folder of the test folder is actually not a folder! Path: "</span>
<a class="jxr_linenumber" name="940" href="#940">940</a>                         + testFolderParentPath, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="941" href="#941">941</a>             }
<a class="jxr_linenumber" name="942" href="#942">942</a> 
<a class="jxr_linenumber" name="943" href="#943">943</a>             parent = (Folder) parentObject;
<a class="jxr_linenumber" name="944" href="#944">944</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="945" href="#945">945</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="946" href="#946">946</a>                     <span class="jxr_string">"Test folder could not be created! Exception: "</span> + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="947" href="#947">947</a>         }
<a class="jxr_linenumber" name="948" href="#948">948</a> 
<a class="jxr_linenumber" name="949" href="#949">949</a>         <strong class="jxr_keyword">if</strong> (parent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="950" href="#950">950</a>             testFolder = createFolder(session, parent, name);
<a class="jxr_linenumber" name="951" href="#951">951</a>         }
<a class="jxr_linenumber" name="952" href="#952">952</a> 
<a class="jxr_linenumber" name="953" href="#953">953</a>         <strong class="jxr_keyword">return</strong> testFolder;
<a class="jxr_linenumber" name="954" href="#954">954</a>     }
<a class="jxr_linenumber" name="955" href="#955">955</a> 
<a class="jxr_linenumber" name="956" href="#956">956</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="957" href="#957">957</a> <em class="jxr_javadoccomment">     * Get the test folder.</em>
<a class="jxr_linenumber" name="958" href="#958">958</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="959" href="#959">959</a>     <strong class="jxr_keyword">protected</strong> Folder getTestFolder() {
<a class="jxr_linenumber" name="960" href="#960">960</a>         <strong class="jxr_keyword">return</strong> testFolder;
<a class="jxr_linenumber" name="961" href="#961">961</a>     }
<a class="jxr_linenumber" name="962" href="#962">962</a> 
<a class="jxr_linenumber" name="963" href="#963">963</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="964" href="#964">964</a> <em class="jxr_javadoccomment">     * Delete the test folder.</em>
<a class="jxr_linenumber" name="965" href="#965">965</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="966" href="#966">966</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteTestFolder() {
<a class="jxr_linenumber" name="967" href="#967">967</a>         deleteObject(testFolder);
<a class="jxr_linenumber" name="968" href="#968">968</a>     }
<a class="jxr_linenumber" name="969" href="#969">969</a> 
<a class="jxr_linenumber" name="970" href="#970">970</a>     <em class="jxr_comment">// --- reusable checks ----</em>
<a class="jxr_linenumber" name="971" href="#971">971</a> 
<a class="jxr_linenumber" name="972" href="#972">972</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isGetDescendantsSupported(Session session) {
<a class="jxr_linenumber" name="973" href="#973">973</a>         RepositoryCapabilities cap = session.getRepositoryInfo().getCapabilities();
<a class="jxr_linenumber" name="974" href="#974">974</a> 
<a class="jxr_linenumber" name="975" href="#975">975</a>         <strong class="jxr_keyword">if</strong> (cap == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="976" href="#976">976</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="977" href="#977">977</a>         }
<a class="jxr_linenumber" name="978" href="#978">978</a> 
<a class="jxr_linenumber" name="979" href="#979">979</a>         <strong class="jxr_keyword">if</strong> (cap.isGetDescendantsSupported() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="980" href="#980">980</a>             <strong class="jxr_keyword">return</strong> false;
<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>         <strong class="jxr_keyword">return</strong> cap.isGetDescendantsSupported().booleanValue();
<a class="jxr_linenumber" name="984" href="#984">984</a>     }
<a class="jxr_linenumber" name="985" href="#985">985</a> 
<a class="jxr_linenumber" name="986" href="#986">986</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isGetFolderTreeSupported(Session session) {
<a class="jxr_linenumber" name="987" href="#987">987</a>         RepositoryCapabilities cap = session.getRepositoryInfo().getCapabilities();
<a class="jxr_linenumber" name="988" href="#988">988</a> 
<a class="jxr_linenumber" name="989" href="#989">989</a>         <strong class="jxr_keyword">if</strong> (cap == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="990" href="#990">990</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="991" href="#991">991</a>         }
<a class="jxr_linenumber" name="992" href="#992">992</a> 
<a class="jxr_linenumber" name="993" href="#993">993</a>         <strong class="jxr_keyword">if</strong> (cap.isGetFolderTreeSupported() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="994" href="#994">994</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="995" href="#995">995</a>         }
<a class="jxr_linenumber" name="996" href="#996">996</a> 
<a class="jxr_linenumber" name="997" href="#997">997</a>         <strong class="jxr_keyword">return</strong> cap.isGetFolderTreeSupported().booleanValue();
<a class="jxr_linenumber" name="998" href="#998">998</a>     }
<a class="jxr_linenumber" name="999" href="#999">999</a> 
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isOrderByNameSupported(Session session) {
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>         <strong class="jxr_keyword">if</strong> (session.getRepositoryInfo().getCapabilities().getOrderByCapability() == CapabilityOrderBy.NONE) {
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>         }
<a class="jxr_linenumber" name="1004" href="#1004">1004</a> 
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1006" href="#1006">1006</a>     }
<a class="jxr_linenumber" name="1007" href="#1007">1007</a> 
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasRelationships(Session session) {
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>         <strong class="jxr_keyword">if</strong> (supportsRelationships == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>             supportsRelationships = Boolean.FALSE;
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.value().equals(type.getId())) {
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>                     supportsRelationships = Boolean.TRUE;
<a class="jxr_linenumber" name="1014" href="#1014">1014</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>                 }
<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> 
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>         <strong class="jxr_keyword">return</strong> supportsRelationships.booleanValue();
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>     }
<a class="jxr_linenumber" name="1021" href="#1021">1021</a> 
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasPolicies(Session session) {
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>         <strong class="jxr_keyword">if</strong> (supportsPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>             supportsPolicies = Boolean.FALSE;
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.value().equals(type.getId())) {
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>                     supportsPolicies = Boolean.TRUE;
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>                 }
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>             }
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>         }
<a class="jxr_linenumber" name="1032" href="#1032">1032</a> 
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>         <strong class="jxr_keyword">return</strong> supportsPolicies.booleanValue();
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>     }
<a class="jxr_linenumber" name="1035" href="#1035">1035</a> 
<a class="jxr_linenumber" name="1036" href="#1036">1036</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasItems(Session session) {
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>         <strong class="jxr_keyword">if</strong> (supportsItems == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>             supportsItems = Boolean.FALSE;
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_ITEM.value().equals(type.getId())) {
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>                     supportsItems = Boolean.TRUE;
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="1043" href="#1043">1043</a>                 }
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>             }
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>         }
<a class="jxr_linenumber" name="1046" href="#1046">1046</a> 
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>         <strong class="jxr_keyword">return</strong> supportsItems.booleanValue();
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>     }
<a class="jxr_linenumber" name="1049" href="#1049">1049</a> 
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasSecondaries(Session session) {
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>         <strong class="jxr_keyword">if</strong> (supportsSecondaries == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1052" href="#1052">1052</a>             supportsSecondaries = Boolean.FALSE;
<a class="jxr_linenumber" name="1053" href="#1053">1053</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="1054" href="#1054">1054</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_SECONDARY.value().equals(type.getId())) {
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>                     supportsSecondaries = Boolean.TRUE;
<a class="jxr_linenumber" name="1056" href="#1056">1056</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="1057" href="#1057">1057</a>                 }
<a class="jxr_linenumber" name="1058" href="#1058">1058</a>             }
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>         }
<a class="jxr_linenumber" name="1060" href="#1060">1060</a> 
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>         <strong class="jxr_keyword">return</strong> supportsSecondaries.booleanValue();
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>     }
<a class="jxr_linenumber" name="1063" href="#1063">1063</a> 
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkObject(Session session, CmisObject object, String[] properties, String message) {
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1066" href="#1066">1066</a> 
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1068" href="#1068">1068</a> 
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>         f = createResult(FAILURE, <span class="jxr_string">"Object is null!"</span>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>         addResult(results, assertNotNull(object, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1071" href="#1071">1071</a> 
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>         <strong class="jxr_keyword">if</strong> (object != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>             f = createResult(FAILURE, <span class="jxr_string">"Object ID is not set!"</span>);
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>             addResult(results, assertStringNotEmpty(object.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> 
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>             GregorianCalendar creationDate = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>             GregorianCalendar lastModificationDate = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1078" href="#1078">1078</a> 
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>             <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>             <strong class="jxr_keyword">for</strong> (String propId : properties) {
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                 Property&lt;?&gt; prop = object.getProperty(propId);
<a class="jxr_linenumber" name="1082" href="#1082">1082</a> 
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>                 <em class="jxr_comment">// values of non-spec properties are not checked here</em>
<a class="jxr_linenumber" name="1084" href="#1084">1084</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/PropertyCheckEnum.html">PropertyCheckEnum</a> propertyCheck = PropertyCheckEnum.NO_VALUE_CHECK;
<a class="jxr_linenumber" name="1085" href="#1085">1085</a> 
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>                 <em class="jxr_comment">// known properties that are strings and must be set</em>
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.OBJECT_ID.equals(propId) || PropertyIds.BASE_TYPE_ID.equals(propId)
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>                         || PropertyIds.OBJECT_TYPE_ID.equals(propId) || PropertyIds.PATH.equals(propId)
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>                         || PropertyIds.SOURCE_ID.equals(propId) || PropertyIds.TARGET_ID.equals(propId)) {
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>                     propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>                 }
<a class="jxr_linenumber" name="1092" href="#1092">1092</a> 
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof Relationship)) {
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>                     <strong class="jxr_keyword">if</strong> (PropertyIds.CREATED_BY.equals(propId) || PropertyIds.LAST_MODIFIED_BY.equals(propId)) {
<a class="jxr_linenumber" name="1095" href="#1095">1095</a>                         propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>                     }
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>                 }
<a class="jxr_linenumber" name="1098" href="#1098">1098</a> 
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>                 <em class="jxr_comment">// known properties that are strings and should be set</em>
<a class="jxr_linenumber" name="1100" href="#1100">1100</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.NAME.equals(propId) || PropertyIds.POLICY_TEXT.equals(propId)) {
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>                     propertyCheck = PropertyCheckEnum.STRING_SHOULD_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>                 }
<a class="jxr_linenumber" name="1103" href="#1103">1103</a> 
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>                 <em class="jxr_comment">// known properties that are not strings and must be set</em>
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.IS_IMMUTABLE.equals(propId)) {
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>                     propertyCheck = PropertyCheckEnum.MUST_BE_SET;
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>                 }
<a class="jxr_linenumber" name="1108" href="#1108">1108</a> 
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof Relationship)) {
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>                     <strong class="jxr_keyword">if</strong> (PropertyIds.CREATION_DATE.equals(propId) || PropertyIds.LAST_MODIFICATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="1111" href="#1111">1111</a>                         propertyCheck = PropertyCheckEnum.MUST_BE_SET;
<a class="jxr_linenumber" name="1112" href="#1112">1112</a>                     }
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>                 }
<a class="jxr_linenumber" name="1114" href="#1114">1114</a> 
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>                 <em class="jxr_comment">// special case: parent</em>
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.PARENT_ID.equals(propId)) {
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>                     <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>                         <strong class="jxr_keyword">if</strong> (((Folder) object).isRootFolder()) {
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>                             propertyCheck = PropertyCheckEnum.MUST_NOT_BE_SET;
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>                             propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>                         }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>                         addResult(
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>                                 results,
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>                                 createResult(FAILURE, <span class="jxr_string">"Property "</span> + PropertyIds.PARENT_ID
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>                                         + <span class="jxr_string">" is only defined for folders!"</span>));
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>                     }
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>                 }
<a class="jxr_linenumber" name="1130" href="#1130">1130</a> 
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>                 <em class="jxr_comment">// special case: path</em>
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.PATH.equals(propId) &amp;&amp; prop.getFirstValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1133" href="#1133">1133</a>                     Object path = prop.getFirstValue();
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>                     <strong class="jxr_keyword">if</strong> (path instanceof String) {
<a class="jxr_linenumber" name="1135" href="#1135">1135</a>                         f = createResult(FAILURE, <span class="jxr_string">"Path does not start with '/': "</span> + path);
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>                         addResult(results,
<a class="jxr_linenumber" name="1137" href="#1137">1137</a>                                 assertIsTrue(((String) path).length() &gt; 0 &amp;&amp; ((String) path).charAt(0) == '/', <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>                         addResult(results, createResult(FAILURE, <span class="jxr_string">"Property "</span> + PropertyIds.PATH + <span class="jxr_string">" is not a string!"</span>));
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>                     }
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>                 }
<a class="jxr_linenumber" name="1142" href="#1142">1142</a> 
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>                 <em class="jxr_comment">// check property</em>
<a class="jxr_linenumber" name="1144" href="#1144">1144</a>                 addResult(results, checkProperty(prop, <span class="jxr_string">"Property "</span> + propId, propertyCheck));
<a class="jxr_linenumber" name="1145" href="#1145">1145</a> 
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>                 <em class="jxr_comment">// catch creationDate and lastModificationDate</em>
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.CREATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>                     <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1149" href="#1149">1149</a>                         creationDate = (GregorianCalendar) prop.getFirstValue();
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>                     }
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (PropertyIds.LAST_MODIFICATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>                     <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                         lastModificationDate = (GregorianCalendar) prop.getFirstValue();
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>                     }
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>                 }
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>             }
<a class="jxr_linenumber" name="1157" href="#1157">1157</a> 
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>             <em class="jxr_comment">// check creationDate &lt;= lastModificationDate</em>
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>             <strong class="jxr_keyword">if</strong> (creationDate != <strong class="jxr_keyword">null</strong> &amp;&amp; lastModificationDate != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>                 f = createResult(FAILURE, <span class="jxr_string">"Last modification date precedes creation date!"</span>);
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>                 addResult(results,
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>                         assertIsTrue(creationDate.getTimeInMillis() &lt;= lastModificationDate.getTimeInMillis(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1163" href="#1163">1163</a> 
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>                 f = createResult(WARNING, <span class="jxr_string">"Creation date and last modification date have different timezones."</span>);
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>                 addResult(assertIsTrue(creationDate.getTimeZone().hasSameRules(lastModificationDate.getTimeZone()),
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>                         <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>             }
<a class="jxr_linenumber" name="1168" href="#1168">1168</a> 
<a class="jxr_linenumber" name="1169" href="#1169">1169</a>             <em class="jxr_comment">// allowable actions</em>
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>             <strong class="jxr_keyword">if</strong> ((object.getAllowableActions() == <strong class="jxr_keyword">null</strong>) || (object.getAllowableActions().getAllowableActions() == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Object has no allowable actions!"</span>));
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>                 Set&lt;Action&gt; actions = object.getAllowableActions().getAllowableActions();
<a class="jxr_linenumber" name="1174" href="#1174">1174</a> 
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>                 f = createResult(FAILURE, <span class="jxr_string">"Object has no CAN_GET_PROPERTIES allowable action!"</span>);
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>                 addResult(results, assertAllowableAction(object, Action.CAN_GET_PROPERTIES, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1177" href="#1177">1177</a>                 addResult(results, assertIsTrue(object.hasAllowableAction(Action.CAN_GET_PROPERTIES), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1178" href="#1178">1178</a> 
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Document) {
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>                     <strong class="jxr_keyword">if</strong> (actions.contains(Action.CAN_CHECK_OUT) &amp;&amp; actions.contains(Action.CAN_CHECK_IN)) {
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>                         addResult(
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>                                 results,
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="1184" href="#1184">1184</a>                                         <span class="jxr_string">"Document object has CAN_CHECK_OUT and CAN_CHECK_IN allowable actions!"</span>));
<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>                     <strong class="jxr_keyword">if</strong> (actions.contains(Action.CAN_CHECK_OUT) &amp;&amp; actions.contains(Action.CAN_CANCEL_CHECK_OUT)) {
<a class="jxr_linenumber" name="1188" href="#1188">1188</a>                         addResult(
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>                                 results,
<a class="jxr_linenumber" name="1190" href="#1190">1190</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>                                         <span class="jxr_string">"Document object has CAN_CHECK_OUT and CAN_CANCEL_CHECK_OUT allowable actions!"</span>));
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>                     }
<a class="jxr_linenumber" name="1193" href="#1193">1193</a> 
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>                     Document doc = (Document) object;
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>                     DocumentTypeDefinition docType = (DocumentTypeDefinition) doc.getType();
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>                     <strong class="jxr_keyword">if</strong> (doc.isVersionSeriesCheckedOut() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>                         <strong class="jxr_keyword">if</strong> (doc.isVersionSeriesCheckedOut()) {
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>                             f = createResult(WARNING, <span class="jxr_string">"Document is checked out and has CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1200" href="#1200">1200</a> 
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>                             <strong class="jxr_keyword">if</strong> (doc.getVersionSeriesCheckedOutId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>                                 addResult(
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>                                         results,
<a class="jxr_linenumber" name="1204" href="#1204">1204</a>                                         createResult(WARNING,
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>                                                 <span class="jxr_string">"Document is checked out and but the property cmis:versionSeriesCheckedOutId is not set!"</span>));
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>                                 <strong class="jxr_keyword">if</strong> (doc.getVersionSeriesCheckedOutId().equals(object.getId())) {
<a class="jxr_linenumber" name="1208" href="#1208">1208</a>                                     <em class="jxr_comment">// object is PWC</em>
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>                                     f = createResult(FAILURE, <span class="jxr_string">"PWC doesn't have CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>                                     addResult(results, assertAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1211" href="#1211">1211</a> 
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>                                     f = createResult(FAILURE, <span class="jxr_string">"PWC doesn't have CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>                                     addResult(results,
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>                                             assertAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>                                     <em class="jxr_comment">// object is not PWC</em>
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>                                     f = createResult(WARNING, <span class="jxr_string">"Non-PWC has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>                                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1219" href="#1219">1219</a> 
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>                                     f = createResult(WARNING, <span class="jxr_string">"Non-PWC has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>                                     addResult(results,
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>                                             assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>                                 }
<a class="jxr_linenumber" name="1224" href="#1224">1224</a>                             }
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>                                     <span class="jxr_string">"Document is not checked out and has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1229" href="#1229">1229</a> 
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>                                     <span class="jxr_string">"Document is not checked out and has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1233" href="#1233">1233</a> 
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>                             <em class="jxr_comment">// versionable check</em>
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>                             <strong class="jxr_keyword">if</strong> (docType.isVersionable()) {
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>                                 <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isLatestVersion())) {
<a class="jxr_linenumber" name="1237" href="#1237">1237</a>                                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1238" href="#1238">1238</a>                                             <span class="jxr_string">"Document is versionable and not checked but has no CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1239" href="#1239">1239</a>                                     addResult(results, assertAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>                                 }
<a class="jxr_linenumber" name="1241" href="#1241">1241</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1242" href="#1242">1242</a>                                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>                                         <span class="jxr_string">"Document is not versionable but has CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>                                 addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1245" href="#1245">1245</a>                             }
<a class="jxr_linenumber" name="1246" href="#1246">1246</a>                         }
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1248" href="#1248">1248</a>                         addResult(results, createResult(WARNING, <span class="jxr_string">"Property cmis:isVersionSeriesCheckedOut is not set!"</span>));
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>                     }
<a class="jxr_linenumber" name="1250" href="#1250">1250</a> 
<a class="jxr_linenumber" name="1251" href="#1251">1251</a>                     <em class="jxr_comment">// immutable check</em>
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>                     <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isImmutable())) {
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>                                 <span class="jxr_string">"Document is immutable and has CAN_UPDATE_PROPERTIES allowable action!"</span>);
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_UPDATE_PROPERTIES, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1256" href="#1256">1256</a> 
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>                         f = createResult(FAILURE, <span class="jxr_string">"Document is immutable and has CAN_DELETE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>                     }
<a class="jxr_linenumber" name="1260" href="#1260">1260</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1261" href="#1261">1261</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1262" href="#1262">1262</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1263" href="#1263">1263</a> 
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1265" href="#1265">1265</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1266" href="#1266">1266</a> 
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1268" href="#1268">1268</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1269" href="#1269">1269</a> 
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_GET_CONTENT_STREAM allowable action!"</span>);
<a class="jxr_linenumber" name="1271" href="#1271">1271</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_CONTENT_STREAM, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1272" href="#1272">1272</a> 
<a class="jxr_linenumber" name="1273" href="#1273">1273</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_DELETE_CONTENT_STREAM allowable action!"</span>);
<a class="jxr_linenumber" name="1274" href="#1274">1274</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_CONTENT_STREAM, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1275" href="#1275">1275</a> 
<a class="jxr_linenumber" name="1276" href="#1276">1276</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_GET_ALL_VERSIONS allowable action!"</span>);
<a class="jxr_linenumber" name="1277" href="#1277">1277</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_ALL_VERSIONS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1278" href="#1278">1278</a>                 }
<a class="jxr_linenumber" name="1279" href="#1279">1279</a> 
<a class="jxr_linenumber" name="1280" href="#1280">1280</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1281" href="#1281">1281</a>                     Folder folder = (Folder) object;
<a class="jxr_linenumber" name="1282" href="#1282">1282</a>                     <strong class="jxr_keyword">if</strong> (folder.isRootFolder()) {
<a class="jxr_linenumber" name="1283" href="#1283">1283</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_DELETE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1284" href="#1284">1284</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1285" href="#1285">1285</a> 
<a class="jxr_linenumber" name="1286" href="#1286">1286</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1287" href="#1287">1287</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1288" href="#1288">1288</a> 
<a class="jxr_linenumber" name="1289" href="#1289">1289</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_MOVE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1290" href="#1290">1290</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_MOVE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1291" href="#1291">1291</a>                     }
<a class="jxr_linenumber" name="1292" href="#1292">1292</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1293" href="#1293">1293</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_DESCENDANTS allowable action!"</span>);
<a class="jxr_linenumber" name="1294" href="#1294">1294</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_DESCENDANTS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1295" href="#1295">1295</a> 
<a class="jxr_linenumber" name="1296" href="#1296">1296</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1297" href="#1297">1297</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1298" href="#1298">1298</a> 
<a class="jxr_linenumber" name="1299" href="#1299">1299</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_CHILDREN allowable action!"</span>);
<a class="jxr_linenumber" name="1300" href="#1300">1300</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_CHILDREN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1301" href="#1301">1301</a> 
<a class="jxr_linenumber" name="1302" href="#1302">1302</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_DELETE_TREE allowable action!"</span>);
<a class="jxr_linenumber" name="1303" href="#1303">1303</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_TREE, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1304" href="#1304">1304</a> 
<a class="jxr_linenumber" name="1305" href="#1305">1305</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1306" href="#1306">1306</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1307" href="#1307">1307</a> 
<a class="jxr_linenumber" name="1308" href="#1308">1308</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_CREATE_DOCUMENT allowable action!"</span>);
<a class="jxr_linenumber" name="1309" href="#1309">1309</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CREATE_DOCUMENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1310" href="#1310">1310</a> 
<a class="jxr_linenumber" name="1311" href="#1311">1311</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_CREATE_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1312" href="#1312">1312</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CREATE_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1313" href="#1313">1313</a>                 }
<a class="jxr_linenumber" name="1314" href="#1314">1314</a> 
<a class="jxr_linenumber" name="1315" href="#1315">1315</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof FileableCmisObject) || (object instanceof Folder)) {
<a class="jxr_linenumber" name="1316" href="#1316">1316</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1317" href="#1317">1317</a>                             <span class="jxr_string">"Non-Filable object or folder has CAN_ADD_OBJECT_TO_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_ADD_OBJECT_TO_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1319" href="#1319">1319</a> 
<a class="jxr_linenumber" name="1320" href="#1320">1320</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1321" href="#1321">1321</a>                             <span class="jxr_string">"Non-Filable object or folder has CAN_REMOVE_OBJECT_FROM_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_REMOVE_OBJECT_FROM_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>                 }
<a class="jxr_linenumber" name="1324" href="#1324">1324</a> 
<a class="jxr_linenumber" name="1325" href="#1325">1325</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof FileableCmisObject)) {
<a class="jxr_linenumber" name="1326" href="#1326">1326</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Fileable object has CAN_MOVE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1327" href="#1327">1327</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_MOVE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1328" href="#1328">1328</a>                 }
<a class="jxr_linenumber" name="1329" href="#1329">1329</a> 
<a class="jxr_linenumber" name="1330" href="#1330">1330</a>                 <em class="jxr_comment">// get allowable actions again</em>
<a class="jxr_linenumber" name="1331" href="#1331">1331</a>                 AllowableActions allowableActions = session.getBinding().getObjectService()
<a class="jxr_linenumber" name="1332" href="#1332">1332</a>                         .getAllowableActions(session.getRepositoryInfo().getId(), object.getId(), <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1333" href="#1333">1333</a> 
<a class="jxr_linenumber" name="1334" href="#1334">1334</a>                 <strong class="jxr_keyword">if</strong> (allowableActions.getAllowableActions() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1335" href="#1335">1335</a>                     addResult(results,
<a class="jxr_linenumber" name="1336" href="#1336">1336</a>                             createResult(FAILURE, <span class="jxr_string">"getAllowableActions() didn't returned allowable actions!"</span>));
<a class="jxr_linenumber" name="1337" href="#1337">1337</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1338" href="#1338">1338</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1339" href="#1339">1339</a>                             <span class="jxr_string">"Object allowable actions don't match the allowable actions returned by getAllowableActions()!"</span>);
<a class="jxr_linenumber" name="1340" href="#1340">1340</a>                     addResult(
<a class="jxr_linenumber" name="1341" href="#1341">1341</a>                             results,
<a class="jxr_linenumber" name="1342" href="#1342">1342</a>                             assertEqualSet(object.getAllowableActions().getAllowableActions(),
<a class="jxr_linenumber" name="1343" href="#1343">1343</a>                                     allowableActions.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>                 }
<a class="jxr_linenumber" name="1345" href="#1345">1345</a>             }
<a class="jxr_linenumber" name="1346" href="#1346">1346</a> 
<a class="jxr_linenumber" name="1347" href="#1347">1347</a>             <em class="jxr_comment">// check ACL</em>
<a class="jxr_linenumber" name="1348" href="#1348">1348</a>             <strong class="jxr_keyword">if</strong> (object.getAcl() != <strong class="jxr_keyword">null</strong> &amp;&amp; object.getAcl().getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1349" href="#1349">1349</a>                 addResult(results, checkACL(session, object.getAcl(), <strong class="jxr_keyword">true</strong>, <span class="jxr_string">"ACL"</span>));
<a class="jxr_linenumber" name="1350" href="#1350">1350</a>             }
<a class="jxr_linenumber" name="1351" href="#1351">1351</a> 
<a class="jxr_linenumber" name="1352" href="#1352">1352</a>             <em class="jxr_comment">// check policies</em>
<a class="jxr_linenumber" name="1353" href="#1353">1353</a>             <strong class="jxr_keyword">if</strong> (hasPolicies(session)) {
<a class="jxr_linenumber" name="1354" href="#1354">1354</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1355" href="#1355">1355</a>                     List&lt;ObjectData&gt; appliedPolicies = session.getBinding().getPolicyService()
<a class="jxr_linenumber" name="1356" href="#1356">1356</a>                             .getAppliedPolicies(session.getRepositoryInfo().getId(), object.getId(), <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1357" href="#1357">1357</a> 
<a class="jxr_linenumber" name="1358" href="#1358">1358</a>                     <strong class="jxr_keyword">if</strong> (appliedPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>                         appliedPolicies = Collections.emptyList();
<a class="jxr_linenumber" name="1360" href="#1360">1360</a>                     }
<a class="jxr_linenumber" name="1361" href="#1361">1361</a> 
<a class="jxr_linenumber" name="1362" href="#1362">1362</a>                     List&lt;Policy&gt; objectPolicies = object.getPolicies();
<a class="jxr_linenumber" name="1363" href="#1363">1363</a>                     <strong class="jxr_keyword">if</strong> (objectPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1364" href="#1364">1364</a>                         objectPolicies = Collections.emptyList();
<a class="jxr_linenumber" name="1365" href="#1365">1365</a>                     }
<a class="jxr_linenumber" name="1366" href="#1366">1366</a> 
<a class="jxr_linenumber" name="1367" href="#1367">1367</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>                             <span class="jxr_string">"The number of policies returned by getAppliedPolicies() and the number of object policies don't match!"</span>);
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>                     addResult(results, assertEquals(appliedPolicies.size(), objectPolicies.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1370" href="#1370">1370</a>                 } <strong class="jxr_keyword">catch</strong> (CmisNotSupportedException e) {
<a class="jxr_linenumber" name="1371" href="#1371">1371</a>                     addResult(results,
<a class="jxr_linenumber" name="1372" href="#1372">1372</a>                             createResult(WARNING, <span class="jxr_string">"getAppliedPolicies() not supported for object: "</span> + object.getId()));
<a class="jxr_linenumber" name="1373" href="#1373">1373</a>                 }
<a class="jxr_linenumber" name="1374" href="#1374">1374</a>             }
<a class="jxr_linenumber" name="1375" href="#1375">1375</a> 
<a class="jxr_linenumber" name="1376" href="#1376">1376</a>             <em class="jxr_comment">// check relationships</em>
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>             checkRelationships(session, results, object);
<a class="jxr_linenumber" name="1378" href="#1378">1378</a> 
<a class="jxr_linenumber" name="1379" href="#1379">1379</a>             <em class="jxr_comment">// check document content</em>
<a class="jxr_linenumber" name="1380" href="#1380">1380</a>             checkDocumentContent(session, results, object);
<a class="jxr_linenumber" name="1381" href="#1381">1381</a> 
<a class="jxr_linenumber" name="1382" href="#1382">1382</a>             <em class="jxr_comment">// check renditions</em>
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>             <strong class="jxr_keyword">if</strong> (object.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1384" href="#1384">1384</a>                 addResult(results, checkRenditions(session, object, <span class="jxr_string">"Rendition check"</span>));
<a class="jxr_linenumber" name="1385" href="#1385">1385</a>             }
<a class="jxr_linenumber" name="1386" href="#1386">1386</a> 
<a class="jxr_linenumber" name="1387" href="#1387">1387</a>             <em class="jxr_comment">// check allowed child object type ids</em>
<a class="jxr_linenumber" name="1388" href="#1388">1388</a>             <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1389" href="#1389">1389</a>                 List&lt;String&gt; otids = object.getPropertyValue(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS);
<a class="jxr_linenumber" name="1390" href="#1390">1390</a>                 <strong class="jxr_keyword">if</strong> (otids != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1391" href="#1391">1391</a>                     <strong class="jxr_keyword">for</strong> (String otid : otids) {
<a class="jxr_linenumber" name="1392" href="#1392">1392</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1393" href="#1393">1393</a>                             session.getTypeDefinition(otid);
<a class="jxr_linenumber" name="1394" href="#1394">1394</a>                         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>                             addResult(
<a class="jxr_linenumber" name="1396" href="#1396">1396</a>                                     results,
<a class="jxr_linenumber" name="1397" href="#1397">1397</a>                                     createResult(FAILURE,
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>                                             <span class="jxr_string">"The cmis:allowedChildObjectTypeIds property contains the type ID '"</span> + otid
<a class="jxr_linenumber" name="1399" href="#1399">1399</a>                                                     + <span class="jxr_string">"' but the type doesn't exists. Folder ID: "</span> + object.getId()));
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>                         }
<a class="jxr_linenumber" name="1401" href="#1401">1401</a>                     }
<a class="jxr_linenumber" name="1402" href="#1402">1402</a>                 }
<a class="jxr_linenumber" name="1403" href="#1403">1403</a>             }
<a class="jxr_linenumber" name="1404" href="#1404">1404</a> 
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>             <em class="jxr_comment">// check path</em>
<a class="jxr_linenumber" name="1406" href="#1406">1406</a>             <strong class="jxr_keyword">if</strong> (object instanceof FileableCmisObject) {
<a class="jxr_linenumber" name="1407" href="#1407">1407</a>                 List&lt;String&gt; paths = ((FileableCmisObject) object).getPaths();
<a class="jxr_linenumber" name="1408" href="#1408">1408</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>                     f = createResult(FAILURE, <span class="jxr_string">"Folder does not have excatly one path! This is an OpenCMIS bug!"</span>);
<a class="jxr_linenumber" name="1410" href="#1410">1410</a>                     addResult(results, assertEquals(1, paths.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1411" href="#1411">1411</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>                     <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(session.getRepositoryInfo().getCapabilities().isMultifilingSupported())) {
<a class="jxr_linenumber" name="1413" href="#1413">1413</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1414" href="#1414">1414</a>                                 <span class="jxr_string">"Repository does not support multi-filing, but the object has more than one parent!"</span>);
<a class="jxr_linenumber" name="1415" href="#1415">1415</a>                         addResult(results, assertIsTrue(paths.size() &lt; 2, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1416" href="#1416">1416</a>                     }
<a class="jxr_linenumber" name="1417" href="#1417">1417</a>                 }
<a class="jxr_linenumber" name="1418" href="#1418">1418</a>             }
<a class="jxr_linenumber" name="1419" href="#1419">1419</a>         }
<a class="jxr_linenumber" name="1420" href="#1420">1420</a> 
<a class="jxr_linenumber" name="1421" href="#1421">1421</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1422" href="#1422">1422</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1423" href="#1423">1423</a> 
<a class="jxr_linenumber" name="1424" href="#1424">1424</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="1425" href="#1425">1425</a>     }
<a class="jxr_linenumber" name="1426" href="#1426">1426</a> 
<a class="jxr_linenumber" name="1427" href="#1427">1427</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkACL(Session session, Acl acl, <strong class="jxr_keyword">boolean</strong> checkExact, String message) {
<a class="jxr_linenumber" name="1428" href="#1428">1428</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1429" href="#1429">1429</a> 
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1431" href="#1431">1431</a> 
<a class="jxr_linenumber" name="1432" href="#1432">1432</a>         f = createResult(FAILURE, <span class="jxr_string">"ACL is null!"</span>);
<a class="jxr_linenumber" name="1433" href="#1433">1433</a>         addResult(results, assertNotNull(acl, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1434" href="#1434">1434</a> 
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>         <strong class="jxr_keyword">if</strong> (acl != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1436" href="#1436">1436</a> 
<a class="jxr_linenumber" name="1437" href="#1437">1437</a>             f = createResult(FAILURE, <span class="jxr_string">"List of ACEs is null!"</span>);
<a class="jxr_linenumber" name="1438" href="#1438">1438</a>             addResult(results, assertNotNull(acl.getAces(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1439" href="#1439">1439</a> 
<a class="jxr_linenumber" name="1440" href="#1440">1440</a>             <strong class="jxr_keyword">if</strong> (acl.getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1441" href="#1441">1441</a>                 <strong class="jxr_keyword">for</strong> (Ace ace : acl.getAces()) {
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>                     f = createResult(FAILURE, <span class="jxr_string">"ACE with empty principal ID!"</span>);
<a class="jxr_linenumber" name="1443" href="#1443">1443</a>                     addResult(results, assertStringNotEmpty(ace.getPrincipalId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1444" href="#1444">1444</a> 
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>                     f = createResult(FAILURE, <span class="jxr_string">"ACE with empty permission list!"</span>);
<a class="jxr_linenumber" name="1446" href="#1446">1446</a>                     addResult(results, assertListNotEmpty(ace.getPermissions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1447" href="#1447">1447</a> 
<a class="jxr_linenumber" name="1448" href="#1448">1448</a>                     <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1449" href="#1449">1449</a>                         <strong class="jxr_keyword">for</strong> (String permission : ace.getPermissions()) {
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>                             f = createResult(FAILURE, <span class="jxr_string">"ACE with empty permission entry!"</span>);
<a class="jxr_linenumber" name="1451" href="#1451">1451</a>                             addResult(results, assertStringNotEmpty(permission, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1452" href="#1452">1452</a>                         }
<a class="jxr_linenumber" name="1453" href="#1453">1453</a>                     }
<a class="jxr_linenumber" name="1454" href="#1454">1454</a>                 }
<a class="jxr_linenumber" name="1455" href="#1455">1455</a>             }
<a class="jxr_linenumber" name="1456" href="#1456">1456</a> 
<a class="jxr_linenumber" name="1457" href="#1457">1457</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResultStatus.html">CmisTestResultStatus</a> status = checkExact ? WARNING : INFO;
<a class="jxr_linenumber" name="1458" href="#1458">1458</a>             f = createResult(status, <span class="jxr_string">"ACL is provided but the isExact flag is not set!"</span>);
<a class="jxr_linenumber" name="1459" href="#1459">1459</a>             addResult(results, assertNotNull(acl.isExact(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1460" href="#1460">1460</a>         }
<a class="jxr_linenumber" name="1461" href="#1461">1461</a> 
<a class="jxr_linenumber" name="1462" href="#1462">1462</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1464" href="#1464">1464</a> 
<a class="jxr_linenumber" name="1465" href="#1465">1465</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="1466" href="#1466">1466</a>     }
<a class="jxr_linenumber" name="1467" href="#1467">1467</a> 
<a class="jxr_linenumber" name="1468" href="#1468">1468</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkRelationships(Session session, List&lt;CmisTestResult&gt; results, CmisObject object) {
<a class="jxr_linenumber" name="1469" href="#1469">1469</a>         <strong class="jxr_keyword">if</strong> (object instanceof Relationship) {
<a class="jxr_linenumber" name="1470" href="#1470">1470</a>             <strong class="jxr_keyword">if</strong> (isNotEmpty(object.getRelationships())) {
<a class="jxr_linenumber" name="1471" href="#1471">1471</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"A relationship has relationships!"</span>));
<a class="jxr_linenumber" name="1472" href="#1472">1472</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>             }
<a class="jxr_linenumber" name="1474" href="#1474">1474</a>         }
<a class="jxr_linenumber" name="1475" href="#1475">1475</a> 
<a class="jxr_linenumber" name="1476" href="#1476">1476</a>         <strong class="jxr_keyword">if</strong> (object.getRelationships() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>             <strong class="jxr_keyword">for</strong> (Relationship relationship : object.getRelationships()) {
<a class="jxr_linenumber" name="1478" href="#1478">1478</a>                 <strong class="jxr_keyword">if</strong> (relationship == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1479" href="#1479">1479</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"A relationship in the relationship list is null!"</span>));
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1481" href="#1481">1481</a>                 }
<a class="jxr_linenumber" name="1482" href="#1482">1482</a> 
<a class="jxr_linenumber" name="1483" href="#1483">1483</a>                 CmisObject fullRelationshipObject = session.getObject(relationship, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1484" href="#1484">1484</a>                 addResult(
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>                         results,
<a class="jxr_linenumber" name="1486" href="#1486">1486</a>                         checkObject(session, fullRelationshipObject, getAllProperties(fullRelationshipObject),
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>                                 <span class="jxr_string">"Relationship check: "</span> + fullRelationshipObject.getId()));
<a class="jxr_linenumber" name="1488" href="#1488">1488</a>             }
<a class="jxr_linenumber" name="1489" href="#1489">1489</a>         }
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>     }
<a class="jxr_linenumber" name="1491" href="#1491">1491</a> 
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkDocumentContent(Session session, List&lt;CmisTestResult&gt; results, CmisObject object) {
<a class="jxr_linenumber" name="1493" href="#1493">1493</a>         <strong class="jxr_keyword">if</strong> (!(object instanceof Document)) {
<a class="jxr_linenumber" name="1494" href="#1494">1494</a>             <em class="jxr_comment">// only documents have content</em>
<a class="jxr_linenumber" name="1495" href="#1495">1495</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1496" href="#1496">1496</a>         }
<a class="jxr_linenumber" name="1497" href="#1497">1497</a> 
<a class="jxr_linenumber" name="1498" href="#1498">1498</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1499" href="#1499">1499</a> 
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>         Document doc = (Document) object;
<a class="jxr_linenumber" name="1501" href="#1501">1501</a>         DocumentTypeDefinition type = (DocumentTypeDefinition) doc.getType();
<a class="jxr_linenumber" name="1502" href="#1502">1502</a> 
<a class="jxr_linenumber" name="1503" href="#1503">1503</a>         <em class="jxr_comment">// check ContentStreamAllowed flag</em>
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>         <strong class="jxr_keyword">boolean</strong> hasContentProperties = (doc.getContentStreamFileName() != <strong class="jxr_keyword">null</strong>) || (doc.getContentStreamId() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="1505" href="#1505">1505</a>                 || (doc.getContentStreamLength() &gt; -1) || (doc.getContentStreamMimeType() != <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1506" href="#1506">1506</a> 
<a class="jxr_linenumber" name="1507" href="#1507">1507</a>         <strong class="jxr_keyword">if</strong> (hasContentProperties) {
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.NOTALLOWED) {
<a class="jxr_linenumber" name="1509" href="#1509">1509</a>                 addResult(
<a class="jxr_linenumber" name="1510" href="#1510">1510</a>                         results,
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>                         createResult(FAILURE,
<a class="jxr_linenumber" name="1512" href="#1512">1512</a>                                 <span class="jxr_string">"Content properties have values but the document type doesn't allow content!"</span>));
<a class="jxr_linenumber" name="1513" href="#1513">1513</a>             }
<a class="jxr_linenumber" name="1514" href="#1514">1514</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.REQUIRED) {
<a class="jxr_linenumber" name="1516" href="#1516">1516</a>                 addResult(results,
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>                         createResult(FAILURE, <span class="jxr_string">"Content properties are not set but the document type demands content!"</span>));
<a class="jxr_linenumber" name="1518" href="#1518">1518</a>             }
<a class="jxr_linenumber" name="1519" href="#1519">1519</a>         }
<a class="jxr_linenumber" name="1520" href="#1520">1520</a> 
<a class="jxr_linenumber" name="1521" href="#1521">1521</a>         <em class="jxr_comment">// get the content stream</em>
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>         ContentStream contentStream = doc.getContentStream();
<a class="jxr_linenumber" name="1523" href="#1523">1523</a> 
<a class="jxr_linenumber" name="1524" href="#1524">1524</a>         <strong class="jxr_keyword">if</strong> (contentStream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1525" href="#1525">1525</a>             <strong class="jxr_keyword">if</strong> (hasContentProperties &amp;&amp; doc.getContentStreamLength() &gt; 0) {
<a class="jxr_linenumber" name="1526" href="#1526">1526</a>                 addResult(results,
<a class="jxr_linenumber" name="1527" href="#1527">1527</a>                         createResult(FAILURE, <span class="jxr_string">"Content properties have values but the document has no content!"</span>));
<a class="jxr_linenumber" name="1528" href="#1528">1528</a>             }
<a class="jxr_linenumber" name="1529" href="#1529">1529</a> 
<a class="jxr_linenumber" name="1530" href="#1530">1530</a>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.REQUIRED) {
<a class="jxr_linenumber" name="1531" href="#1531">1531</a>                 addResult(results,
<a class="jxr_linenumber" name="1532" href="#1532">1532</a>                         createResult(FAILURE, <span class="jxr_string">"The document type demands content but the document has no content!"</span>));
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>             }
<a class="jxr_linenumber" name="1534" href="#1534">1534</a> 
<a class="jxr_linenumber" name="1535" href="#1535">1535</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>         }
<a class="jxr_linenumber" name="1537" href="#1537">1537</a> 
<a class="jxr_linenumber" name="1538" href="#1538">1538</a>         <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.NOTALLOWED) {
<a class="jxr_linenumber" name="1539" href="#1539">1539</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Document type doesn't allow content but document has content!"</span>));
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>         }
<a class="jxr_linenumber" name="1541" href="#1541">1541</a> 
<a class="jxr_linenumber" name="1542" href="#1542">1542</a>         <em class="jxr_comment">// file name check</em>
<a class="jxr_linenumber" name="1543" href="#1543">1543</a>         f = createResult(FAILURE, <span class="jxr_string">"Content file names don't match!"</span>);
<a class="jxr_linenumber" name="1544" href="#1544">1544</a>         addResult(results, assertEquals(doc.getContentStreamFileName(), contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1545" href="#1545">1545</a> 
<a class="jxr_linenumber" name="1546" href="#1546">1546</a>         <strong class="jxr_keyword">if</strong> (doc.getContentStreamLength() &gt; -1 &amp;&amp; contentStream.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1547" href="#1547">1547</a>             f = createResult(FAILURE, <span class="jxr_string">"Content lengths don't match!"</span>);
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>             addResult(results, assertEquals(doc.getContentStreamLength(), contentStream.getLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1549" href="#1549">1549</a>         }
<a class="jxr_linenumber" name="1550" href="#1550">1550</a> 
<a class="jxr_linenumber" name="1551" href="#1551">1551</a>         <em class="jxr_comment">// MIME type check</em>
<a class="jxr_linenumber" name="1552" href="#1552">1552</a>         String docMimeType = doc.getContentStreamMimeType();
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>         <strong class="jxr_keyword">if</strong> (docMimeType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>             <strong class="jxr_keyword">int</strong> x = docMimeType.indexOf(';');
<a class="jxr_linenumber" name="1555" href="#1555">1555</a>             <strong class="jxr_keyword">if</strong> (x &gt; -1) {
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>                 docMimeType = docMimeType.substring(0, x);
<a class="jxr_linenumber" name="1557" href="#1557">1557</a>             }
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>             docMimeType = docMimeType.trim();
<a class="jxr_linenumber" name="1559" href="#1559">1559</a>         }
<a class="jxr_linenumber" name="1560" href="#1560">1560</a> 
<a class="jxr_linenumber" name="1561" href="#1561">1561</a>         String contentMimeType = contentStream.getMimeType();
<a class="jxr_linenumber" name="1562" href="#1562">1562</a>         <strong class="jxr_keyword">if</strong> (contentMimeType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>             <strong class="jxr_keyword">int</strong> x = contentMimeType.indexOf(';');
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>             <strong class="jxr_keyword">if</strong> (x &gt; -1) {
<a class="jxr_linenumber" name="1565" href="#1565">1565</a>                 contentMimeType = contentMimeType.substring(0, x);
<a class="jxr_linenumber" name="1566" href="#1566">1566</a>             }
<a class="jxr_linenumber" name="1567" href="#1567">1567</a>             contentMimeType = contentMimeType.trim();
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>         }
<a class="jxr_linenumber" name="1569" href="#1569">1569</a> 
<a class="jxr_linenumber" name="1570" href="#1570">1570</a>         f = createResult(FAILURE, <span class="jxr_string">"Content MIME types don't match!"</span>);
<a class="jxr_linenumber" name="1571" href="#1571">1571</a>         addResult(results, assertEquals(docMimeType, contentMimeType, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1572" href="#1572">1572</a> 
<a class="jxr_linenumber" name="1573" href="#1573">1573</a>         <strong class="jxr_keyword">if</strong> (contentStream.getMimeType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1574" href="#1574">1574</a>             <strong class="jxr_keyword">if</strong> (contentMimeType.equals(docMimeType)) {
<a class="jxr_linenumber" name="1575" href="#1575">1575</a>                 f = createResult(WARNING, <span class="jxr_string">"Content MIME types don't match!"</span>);
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>                 addResult(results, assertEquals(doc.getContentStreamMimeType(), contentStream.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1577" href="#1577">1577</a>             }
<a class="jxr_linenumber" name="1578" href="#1578">1578</a> 
<a class="jxr_linenumber" name="1579" href="#1579">1579</a>             f = createResult(FAILURE, <span class="jxr_string">"Content MIME types is invalid: "</span> + contentStream.getMimeType());
<a class="jxr_linenumber" name="1580" href="#1580">1580</a>             addResult(
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>                     results,
<a class="jxr_linenumber" name="1582" href="#1582">1582</a>                     assertIsTrue(contentStream.getMimeType().length() &gt; 2
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>                             &amp;&amp; contentStream.getMimeType().indexOf('/') &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>         }
<a class="jxr_linenumber" name="1585" href="#1585">1585</a> 
<a class="jxr_linenumber" name="1586" href="#1586">1586</a>         <em class="jxr_comment">// check stream</em>
<a class="jxr_linenumber" name="1587" href="#1587">1587</a>         InputStream stream = contentStream.getStream();
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>         <strong class="jxr_keyword">if</strong> (stream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1589" href="#1589">1589</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Docuemnt has no content stream!"</span>));
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>         }
<a class="jxr_linenumber" name="1592" href="#1592">1592</a> 
<a class="jxr_linenumber" name="1593" href="#1593">1593</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1594" href="#1594">1594</a>             <strong class="jxr_keyword">long</strong> bytes = 0;
<a class="jxr_linenumber" name="1595" href="#1595">1595</a>             byte[] buffer = <strong class="jxr_keyword">new</strong> byte[64 * 1024];
<a class="jxr_linenumber" name="1596" href="#1596">1596</a>             <strong class="jxr_keyword">int</strong> b = stream.read(buffer);
<a class="jxr_linenumber" name="1597" href="#1597">1597</a>             <strong class="jxr_keyword">while</strong> (b &gt; -1) {
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>                 bytes += b;
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>                 b = stream.read(buffer);
<a class="jxr_linenumber" name="1600" href="#1600">1600</a>             }
<a class="jxr_linenumber" name="1601" href="#1601">1601</a>             stream.close();
<a class="jxr_linenumber" name="1602" href="#1602">1602</a> 
<a class="jxr_linenumber" name="1603" href="#1603">1603</a>             <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>             <strong class="jxr_keyword">if</strong> (doc.getContentStreamLength() &gt; -1) {
<a class="jxr_linenumber" name="1605" href="#1605">1605</a>                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>                         <span class="jxr_string">"Content stream length property value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1607" href="#1607">1607</a>                 addResult(results, assertEquals(doc.getContentStreamLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1608" href="#1608">1608</a>             }
<a class="jxr_linenumber" name="1609" href="#1609">1609</a> 
<a class="jxr_linenumber" name="1610" href="#1610">1610</a>             <strong class="jxr_keyword">if</strong> (contentStream.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1611" href="#1611">1611</a>                 f = createResult(FAILURE, <span class="jxr_string">"Content length value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1612" href="#1612">1612</a>                 addResult(results, assertEquals(contentStream.getLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1613" href="#1613">1613</a>             }
<a class="jxr_linenumber" name="1614" href="#1614">1614</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Reading content failed: "</span> + e, e, false));
<a class="jxr_linenumber" name="1616" href="#1616">1616</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>             IOUtils.closeQuietly(stream);
<a class="jxr_linenumber" name="1618" href="#1618">1618</a>         }
<a class="jxr_linenumber" name="1619" href="#1619">1619</a>     }
<a class="jxr_linenumber" name="1620" href="#1620">1620</a> 
<a class="jxr_linenumber" name="1621" href="#1621">1621</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkRenditions(Session session, CmisObject object, String message) {
<a class="jxr_linenumber" name="1622" href="#1622">1622</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1623" href="#1623">1623</a> 
<a class="jxr_linenumber" name="1624" href="#1624">1624</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1625" href="#1625">1625</a> 
<a class="jxr_linenumber" name="1626" href="#1626">1626</a>         <strong class="jxr_keyword">if</strong> (object.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1627" href="#1627">1627</a> 
<a class="jxr_linenumber" name="1628" href="#1628">1628</a>             <strong class="jxr_keyword">for</strong> (Rendition rend : object.getRenditions()) {
<a class="jxr_linenumber" name="1629" href="#1629">1629</a>                 f = createResult(FAILURE, <span class="jxr_string">"A rendition in the list of renditions is null!"</span>);
<a class="jxr_linenumber" name="1630" href="#1630">1630</a>                 addResult(results, assertNotNull(rend, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1631" href="#1631">1631</a> 
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>                 <strong class="jxr_keyword">if</strong> (rend != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1633" href="#1633">1633</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has an empty stream ID!"</span>);
<a class="jxr_linenumber" name="1634" href="#1634">1634</a>                     addResult(results, assertStringNotEmpty(rend.getStreamId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1635" href="#1635">1635</a> 
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has an empty kind! Stream ID: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1637" href="#1637">1637</a>                     addResult(results, assertStringNotEmpty(rend.getKind(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1638" href="#1638">1638</a> 
<a class="jxr_linenumber" name="1639" href="#1639">1639</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has an empty MIME type! Stream ID: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>                     addResult(results, assertStringNotEmpty(rend.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1641" href="#1641">1641</a> 
<a class="jxr_linenumber" name="1642" href="#1642">1642</a>                     <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"cmis:thumbnail"</span>.equals(rend.getKind())) {
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>                         f = createResult(WARNING,
<a class="jxr_linenumber" name="1644" href="#1644">1644</a>                                 <span class="jxr_string">"A rendition is of kind 'cmis:thumbnail' but the height is not set or has an invalid value! Stream ID: "</span>
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>                                         + rend.getStreamId());
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>                         addResult(results, assertIsTrue(rend.getHeight() &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1647" href="#1647">1647</a> 
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>                         f = createResult(WARNING,
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>                                 <span class="jxr_string">"A rendition is of kind 'cmis:thumbnail' but the width is not set or has an invalid value! Stream ID: "</span>
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>                                         + rend.getStreamId());
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>                         addResult(results, assertIsTrue(rend.getWidth() &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1652" href="#1652">1652</a>                     }
<a class="jxr_linenumber" name="1653" href="#1653">1653</a> 
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>                     <em class="jxr_comment">// check the content</em>
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>                     ContentStream contentStream = rend.getContentStream();
<a class="jxr_linenumber" name="1656" href="#1656">1656</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has no content stream! Stream ID: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1657" href="#1657">1657</a>                     addResult(results, assertNotNull(contentStream, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1658" href="#1658">1658</a> 
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>                     <strong class="jxr_keyword">if</strong> (contentStream != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1660" href="#1660">1660</a>                         InputStream stream = contentStream.getStream();
<a class="jxr_linenumber" name="1661" href="#1661">1661</a> 
<a class="jxr_linenumber" name="1662" href="#1662">1662</a>                         f = createResult(FAILURE, <span class="jxr_string">"A rendition has no stream! Stream ID: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1663" href="#1663">1663</a>                         addResult(results, assertNotNull(stream, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1664" href="#1664">1664</a> 
<a class="jxr_linenumber" name="1665" href="#1665">1665</a>                         <strong class="jxr_keyword">if</strong> (stream != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1666" href="#1666">1666</a>                             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1667" href="#1667">1667</a>                                 <strong class="jxr_keyword">long</strong> bytes = 0;
<a class="jxr_linenumber" name="1668" href="#1668">1668</a>                                 byte[] buffer = <strong class="jxr_keyword">new</strong> byte[64 * 1024];
<a class="jxr_linenumber" name="1669" href="#1669">1669</a>                                 <strong class="jxr_keyword">int</strong> b = stream.read(buffer);
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>                                 <strong class="jxr_keyword">while</strong> (b &gt; -1) {
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>                                     bytes += b;
<a class="jxr_linenumber" name="1672" href="#1672">1672</a>                                     b = stream.read(buffer);
<a class="jxr_linenumber" name="1673" href="#1673">1673</a>                                 }
<a class="jxr_linenumber" name="1674" href="#1674">1674</a>                                 stream.close();
<a class="jxr_linenumber" name="1675" href="#1675">1675</a> 
<a class="jxr_linenumber" name="1676" href="#1676">1676</a>                                 <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="1677" href="#1677">1677</a>                                 <strong class="jxr_keyword">if</strong> (rend.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1678" href="#1678">1678</a>                                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1679" href="#1679">1679</a>                                             <span class="jxr_string">"Rendition content stream length value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1680" href="#1680">1680</a>                                     addResult(results, assertEquals(rend.getLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>                                 }
<a class="jxr_linenumber" name="1682" href="#1682">1682</a>                             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1683" href="#1683">1683</a>                                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Reading content failed: "</span> + e, e, false));
<a class="jxr_linenumber" name="1684" href="#1684">1684</a>                             } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="1685" href="#1685">1685</a>                                 IOUtils.closeQuietly(stream);
<a class="jxr_linenumber" name="1686" href="#1686">1686</a>                             }
<a class="jxr_linenumber" name="1687" href="#1687">1687</a>                         }
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>                     }
<a class="jxr_linenumber" name="1689" href="#1689">1689</a>                 }
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>             }
<a class="jxr_linenumber" name="1691" href="#1691">1691</a>         }
<a class="jxr_linenumber" name="1692" href="#1692">1692</a> 
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1694" href="#1694">1694</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1695" href="#1695">1695</a> 
<a class="jxr_linenumber" name="1696" href="#1696">1696</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="1697" href="#1697">1697</a>     }
<a class="jxr_linenumber" name="1698" href="#1698">1698</a> 
<a class="jxr_linenumber" name="1699" href="#1699">1699</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkVersionHistory(Session session, CmisObject object, String[] properties, String message) {
<a class="jxr_linenumber" name="1700" href="#1700">1700</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1701" href="#1701">1701</a> 
<a class="jxr_linenumber" name="1702" href="#1702">1702</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1703" href="#1703">1703</a> 
<a class="jxr_linenumber" name="1704" href="#1704">1704</a>         <strong class="jxr_keyword">if</strong> (object.getBaseTypeId() != BaseTypeId.CMIS_DOCUMENT) {
<a class="jxr_linenumber" name="1705" href="#1705">1705</a>             <em class="jxr_comment">// skip non-document objects</em>
<a class="jxr_linenumber" name="1706" href="#1706">1706</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1707" href="#1707">1707</a>         }
<a class="jxr_linenumber" name="1708" href="#1708">1708</a> 
<a class="jxr_linenumber" name="1709" href="#1709">1709</a>         <strong class="jxr_keyword">if</strong> (!Boolean.TRUE.equals(((DocumentTypeDefinition) object.getType()).isVersionable())) {
<a class="jxr_linenumber" name="1710" href="#1710">1710</a>             <em class="jxr_comment">// skip non-versionable types</em>
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1712" href="#1712">1712</a>         }
<a class="jxr_linenumber" name="1713" href="#1713">1713</a> 
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>         Document doc = (Document) object;
<a class="jxr_linenumber" name="1715" href="#1715">1715</a> 
<a class="jxr_linenumber" name="1716" href="#1716">1716</a>         <em class="jxr_comment">// check version series ID</em>
<a class="jxr_linenumber" name="1717" href="#1717">1717</a>         String versionSeriesId = doc.getVersionSeriesId();
<a class="jxr_linenumber" name="1718" href="#1718">1718</a> 
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>         f = createResult(FAILURE, <span class="jxr_string">"Versionable document has no version series ID property!"</span>);
<a class="jxr_linenumber" name="1720" href="#1720">1720</a>         addResult(results, assertStringNotEmpty(versionSeriesId, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>         <strong class="jxr_keyword">if</strong> (versionSeriesId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1722" href="#1722">1722</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1723" href="#1723">1723</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1725" href="#1725">1725</a>         }
<a class="jxr_linenumber" name="1726" href="#1726">1726</a> 
<a class="jxr_linenumber" name="1727" href="#1727">1727</a>         <em class="jxr_comment">// get version history</em>
<a class="jxr_linenumber" name="1728" href="#1728">1728</a>         List&lt;Document&gt; versions = doc.getAllVersions(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1729" href="#1729">1729</a> 
<a class="jxr_linenumber" name="1730" href="#1730">1730</a>         f = createResult(FAILURE, <span class="jxr_string">"Version history is null!"</span>);
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>         addResult(results, assertNotNull(versions, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>         <strong class="jxr_keyword">if</strong> (versions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1733" href="#1733">1733</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1734" href="#1734">1734</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1735" href="#1735">1735</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1736" href="#1736">1736</a>         }
<a class="jxr_linenumber" name="1737" href="#1737">1737</a> 
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>         f = createResult(FAILURE, <span class="jxr_string">"Version history must have at least one version!"</span>);
<a class="jxr_linenumber" name="1739" href="#1739">1739</a>         addResult(results, assertListNotEmpty(versions, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1740" href="#1740">1740</a> 
<a class="jxr_linenumber" name="1741" href="#1741">1741</a>         <strong class="jxr_keyword">if</strong> (!versions.isEmpty()) {
<a class="jxr_linenumber" name="1742" href="#1742">1742</a>             <em class="jxr_comment">// get latest version</em>
<a class="jxr_linenumber" name="1743" href="#1743">1743</a>             Document lastestVersion = doc.getObjectOfLatestVersion(false, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1744" href="#1744">1744</a>             addResult(results,
<a class="jxr_linenumber" name="1745" href="#1745">1745</a>                     checkObject(session, lastestVersion, properties, <span class="jxr_string">"Latest version check: "</span> + lastestVersion.getId()));
<a class="jxr_linenumber" name="1746" href="#1746">1746</a> 
<a class="jxr_linenumber" name="1747" href="#1747">1747</a>             f = createResult(FAILURE, <span class="jxr_string">"Latest version is not flagged as latest version! ID: "</span> + lastestVersion.getId());
<a class="jxr_linenumber" name="1748" href="#1748">1748</a>             addResult(results, assertIsTrue(lastestVersion.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1749" href="#1749">1749</a> 
<a class="jxr_linenumber" name="1750" href="#1750">1750</a>             <em class="jxr_comment">// get latest major version</em>
<a class="jxr_linenumber" name="1751" href="#1751">1751</a>             Document lastestMajorVersion = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1752" href="#1752">1752</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1753" href="#1753">1753</a>                 lastestMajorVersion = doc.getObjectOfLatestVersion(<strong class="jxr_keyword">true</strong>, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1754" href="#1754">1754</a> 
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>                 f = createResult(FAILURE, <span class="jxr_string">"getObjectOfLatestVersion returned an invalid object!"</span>);
<a class="jxr_linenumber" name="1756" href="#1756">1756</a>                 addResult(results, assertNotNull(lastestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>             } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="1758" href="#1758">1758</a>                 <em class="jxr_comment">// no latest major version</em>
<a class="jxr_linenumber" name="1759" href="#1759">1759</a>             }
<a class="jxr_linenumber" name="1760" href="#1760">1760</a>             <strong class="jxr_keyword">if</strong> (lastestMajorVersion != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>                 addResult(
<a class="jxr_linenumber" name="1762" href="#1762">1762</a>                         results,
<a class="jxr_linenumber" name="1763" href="#1763">1763</a>                         checkObject(session, lastestMajorVersion, properties, <span class="jxr_string">"Latest major version check: "</span>
<a class="jxr_linenumber" name="1764" href="#1764">1764</a>                                 + lastestMajorVersion.getId()));
<a class="jxr_linenumber" name="1765" href="#1765">1765</a> 
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>                 f = createResult(FAILURE, <span class="jxr_string">"Latest major version is not flagged as latest major version! ID: "</span>
<a class="jxr_linenumber" name="1767" href="#1767">1767</a>                         + lastestMajorVersion.getId());
<a class="jxr_linenumber" name="1768" href="#1768">1768</a>                 addResult(results, assertIsTrue(lastestMajorVersion.isLatestMajorVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1769" href="#1769">1769</a>             }
<a class="jxr_linenumber" name="1770" href="#1770">1770</a> 
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>             <em class="jxr_comment">// iterate through the version history and test each version</em>
<a class="jxr_linenumber" name="1772" href="#1772">1772</a>             <em class="jxr_comment">// document</em>
<a class="jxr_linenumber" name="1773" href="#1773">1773</a>             <strong class="jxr_keyword">long</strong> creatationDate = Long.MAX_VALUE;
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>             <strong class="jxr_keyword">int</strong> latestVersion = 0;
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>             <strong class="jxr_keyword">int</strong> latestMajorVersion = 0;
<a class="jxr_linenumber" name="1776" href="#1776">1776</a>             <strong class="jxr_keyword">long</strong> latestModificationDate = Long.MAX_VALUE;
<a class="jxr_linenumber" name="1777" href="#1777">1777</a>             <strong class="jxr_keyword">int</strong> latestModifictaionIndex = Integer.MIN_VALUE;
<a class="jxr_linenumber" name="1778" href="#1778">1778</a>             Set&lt;String&gt; versionLabels = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="1779" href="#1779">1779</a>             <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="1780" href="#1780">1780</a>             <strong class="jxr_keyword">boolean</strong> foundLastestVersion = false;
<a class="jxr_linenumber" name="1781" href="#1781">1781</a>             <strong class="jxr_keyword">boolean</strong> foundLastestMajorVersion = false;
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; versions.size(); i++) {
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>                 Document version = versions.get(i);
<a class="jxr_linenumber" name="1784" href="#1784">1784</a> 
<a class="jxr_linenumber" name="1785" href="#1785">1785</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version "</span> + i + <span class="jxr_string">" is null!"</span>);
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>                 addResult(results, assertNotNull(version, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1787" href="#1787">1787</a>                 <strong class="jxr_keyword">if</strong> (version == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1788" href="#1788">1788</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1789" href="#1789">1789</a>                 }
<a class="jxr_linenumber" name="1790" href="#1790">1790</a> 
<a class="jxr_linenumber" name="1791" href="#1791">1791</a>                 addResult(results, checkObject(session, version, properties, <span class="jxr_string">"Version check: "</span> + version.getId()));
<a class="jxr_linenumber" name="1792" href="#1792">1792</a> 
<a class="jxr_linenumber" name="1793" href="#1793">1793</a>                 <em class="jxr_comment">// check first entry</em>
<a class="jxr_linenumber" name="1794" href="#1794">1794</a>                 <strong class="jxr_keyword">if</strong> (i == 0) {
<a class="jxr_linenumber" name="1795" href="#1795">1795</a>                     <strong class="jxr_keyword">if</strong> (version.isVersionSeriesCheckedOut()) {
<a class="jxr_linenumber" name="1796" href="#1796">1796</a>                         f = createResult(
<a class="jxr_linenumber" name="1797" href="#1797">1797</a>                                 WARNING,
<a class="jxr_linenumber" name="1798" href="#1798">1798</a>                                 <span class="jxr_string">"Version series is checked-out and the PWC is not the latest version! ID: "</span>
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>                                         + version.getId()
<a class="jxr_linenumber" name="1800" href="#1800">1800</a>                                         + <span class="jxr_string">" (Note: The words of the CMIS specification define that the PWC is the latest version."</span>
<a class="jxr_linenumber" name="1801" href="#1801">1801</a>                                         + <span class="jxr_string">" But that is not the intention of the spec and will be changed in CMIS 1.1."</span>
<a class="jxr_linenumber" name="1802" href="#1802">1802</a>                                         + <span class="jxr_string">" Thus this a warning, not an error.)"</span>);
<a class="jxr_linenumber" name="1803" href="#1803">1803</a>                         addResult(results, assertIsTrue(version.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1804" href="#1804">1804</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1805" href="#1805">1805</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>                                 <span class="jxr_string">"Version series is not checked-out and first version history entry is not the latest version! ID: "</span>
<a class="jxr_linenumber" name="1807" href="#1807">1807</a>                                         + version.getId());
<a class="jxr_linenumber" name="1808" href="#1808">1808</a>                         addResult(results, assertIsTrue(version.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1809" href="#1809">1809</a>                     }
<a class="jxr_linenumber" name="1810" href="#1810">1810</a>                 }
<a class="jxr_linenumber" name="1811" href="#1811">1811</a> 
<a class="jxr_linenumber" name="1812" href="#1812">1812</a>                 <em class="jxr_comment">// check version ID</em>
<a class="jxr_linenumber" name="1813" href="#1813">1813</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series id does not match! ID: "</span> + version.getId());
<a class="jxr_linenumber" name="1814" href="#1814">1814</a>                 addResult(results, assertEquals(versionSeriesId, version.getVersionSeriesId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1815" href="#1815">1815</a> 
<a class="jxr_linenumber" name="1816" href="#1816">1816</a>                 <em class="jxr_comment">// check creation date</em>
<a class="jxr_linenumber" name="1817" href="#1817">1817</a>                 <strong class="jxr_keyword">if</strong> (creatationDate == version.getCreationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1818" href="#1818">1818</a>                     addResult(results, createResult(WARNING, <span class="jxr_string">"Two or more versions have the same creation date!"</span>));
<a class="jxr_linenumber" name="1819" href="#1819">1819</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1820" href="#1820">1820</a>                     f = createResult(FAILURE, <span class="jxr_string">"Version history order incorrect! Must be sorted bei creation date!"</span>);
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>                     addResult(results,
<a class="jxr_linenumber" name="1822" href="#1822">1822</a>                             assertIsTrue(version.getCreationDate().getTimeInMillis() &lt;= creatationDate, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1823" href="#1823">1823</a>                 }
<a class="jxr_linenumber" name="1824" href="#1824">1824</a> 
<a class="jxr_linenumber" name="1825" href="#1825">1825</a>                 <em class="jxr_comment">// count latest versions and latest major versions</em>
<a class="jxr_linenumber" name="1826" href="#1826">1826</a>                 <strong class="jxr_keyword">if</strong> (version.isLatestVersion()) {
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>                     latestVersion++;
<a class="jxr_linenumber" name="1828" href="#1828">1828</a>                 }
<a class="jxr_linenumber" name="1829" href="#1829">1829</a> 
<a class="jxr_linenumber" name="1830" href="#1830">1830</a>                 <strong class="jxr_keyword">if</strong> (version.isLatestMajorVersion()) {
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>                     latestMajorVersion++;
<a class="jxr_linenumber" name="1832" href="#1832">1832</a>                 }
<a class="jxr_linenumber" name="1833" href="#1833">1833</a> 
<a class="jxr_linenumber" name="1834" href="#1834">1834</a>                 <em class="jxr_comment">// find latest modification date</em>
<a class="jxr_linenumber" name="1835" href="#1835">1835</a>                 <strong class="jxr_keyword">if</strong> (latestModificationDate == version.getLastModificationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1836" href="#1836">1836</a>                     addResult(results,
<a class="jxr_linenumber" name="1837" href="#1837">1837</a>                             createResult(WARNING, <span class="jxr_string">"Two or more versions have the same last modification date!"</span>));
<a class="jxr_linenumber" name="1838" href="#1838">1838</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (latestModificationDate &lt; version.getLastModificationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1839" href="#1839">1839</a>                     latestModificationDate = version.getLastModificationDate().getTimeInMillis();
<a class="jxr_linenumber" name="1840" href="#1840">1840</a>                     latestModifictaionIndex = i;
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>                 }
<a class="jxr_linenumber" name="1842" href="#1842">1842</a> 
<a class="jxr_linenumber" name="1843" href="#1843">1843</a>                 <em class="jxr_comment">// check for version label duplicates</em>
<a class="jxr_linenumber" name="1844" href="#1844">1844</a>                 String versionLabel = version.getVersionLabel();
<a class="jxr_linenumber" name="1845" href="#1845">1845</a>                 f = createResult(WARNING, <span class="jxr_string">"More than one version have this version label: "</span> + versionLabel);
<a class="jxr_linenumber" name="1846" href="#1846">1846</a>                 addResult(results, assertIsFalse(versionLabels.contains(versionLabel), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1847" href="#1847">1847</a> 
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>                 versionLabels.add(versionLabel);
<a class="jxr_linenumber" name="1849" href="#1849">1849</a> 
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>                 <em class="jxr_comment">// check PWC</em>
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(version.getVersionSeriesCheckedOutId())) {
<a class="jxr_linenumber" name="1852" href="#1852">1852</a>                     f = createResult(FAILURE, <span class="jxr_string">"PWC must not be flagged as latest major version! ID: "</span> + version.getId());
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>                     addResult(results, assertIsFalse(version.isLatestMajorVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1854" href="#1854">1854</a>                 }
<a class="jxr_linenumber" name="1855" href="#1855">1855</a> 
<a class="jxr_linenumber" name="1856" href="#1856">1856</a>                 <em class="jxr_comment">// check checked out</em>
<a class="jxr_linenumber" name="1857" href="#1857">1857</a>                 <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isVersionSeriesCheckedOut())) {
<a class="jxr_linenumber" name="1858" href="#1858">1858</a>                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1859" href="#1859">1859</a>                             <span class="jxr_string">"Version series is marked as checked out but cmis:versionSeriesCheckedOutId is not set! ID: "</span>
<a class="jxr_linenumber" name="1860" href="#1860">1860</a>                                     + version.getId());
<a class="jxr_linenumber" name="1861" href="#1861">1861</a>                     addResult(results, assertStringNotEmpty(doc.getVersionSeriesCheckedOutId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1862" href="#1862">1862</a> 
<a class="jxr_linenumber" name="1863" href="#1863">1863</a>                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1864" href="#1864">1864</a>                             <span class="jxr_string">"Version series is marked as checked out but cmis:versionSeriesCheckedOutBy is not set! ID: "</span>
<a class="jxr_linenumber" name="1865" href="#1865">1865</a>                                     + version.getId());
<a class="jxr_linenumber" name="1866" href="#1866">1866</a>                     addResult(results, assertStringNotEmpty(doc.getVersionSeriesCheckedOutBy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1867" href="#1867">1867</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(doc.isVersionSeriesCheckedOut())) {
<a class="jxr_linenumber" name="1868" href="#1868">1868</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1869" href="#1869">1869</a>                             <span class="jxr_string">"Version series is not marked as checked out but cmis:versionSeriesCheckedOutId is set! ID: "</span>
<a class="jxr_linenumber" name="1870" href="#1870">1870</a>                                     + version.getId());
<a class="jxr_linenumber" name="1871" href="#1871">1871</a>                     addResult(results, assertNull(doc.getVersionSeriesCheckedOutId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1872" href="#1872">1872</a> 
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1874" href="#1874">1874</a>                             <span class="jxr_string">"Version series is not marked as checked out but cmis:versionSeriesCheckedOutIdBy is set! ID: "</span>
<a class="jxr_linenumber" name="1875" href="#1875">1875</a>                                     + version.getId());
<a class="jxr_linenumber" name="1876" href="#1876">1876</a>                     addResult(results, assertNull(doc.getVersionSeriesCheckedOutBy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1877" href="#1877">1877</a>                 }
<a class="jxr_linenumber" name="1878" href="#1878">1878</a> 
<a class="jxr_linenumber" name="1879" href="#1879">1879</a>                 <em class="jxr_comment">// found origin object?</em>
<a class="jxr_linenumber" name="1880" href="#1880">1880</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(object.getId())) {
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>                     found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1882" href="#1882">1882</a>                 }
<a class="jxr_linenumber" name="1883" href="#1883">1883</a> 
<a class="jxr_linenumber" name="1884" href="#1884">1884</a>                 <em class="jxr_comment">// found latest version?</em>
<a class="jxr_linenumber" name="1885" href="#1885">1885</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(lastestVersion.getId())) {
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>                     foundLastestVersion = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1887" href="#1887">1887</a>                 }
<a class="jxr_linenumber" name="1888" href="#1888">1888</a> 
<a class="jxr_linenumber" name="1889" href="#1889">1889</a>                 <em class="jxr_comment">// found latest major version?</em>
<a class="jxr_linenumber" name="1890" href="#1890">1890</a>                 <strong class="jxr_keyword">if</strong> (lastestMajorVersion != <strong class="jxr_keyword">null</strong> &amp;&amp; version.getId().equals(lastestMajorVersion.getId())) {
<a class="jxr_linenumber" name="1891" href="#1891">1891</a>                     foundLastestMajorVersion = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1892" href="#1892">1892</a>                 }
<a class="jxr_linenumber" name="1893" href="#1893">1893</a>             }
<a class="jxr_linenumber" name="1894" href="#1894">1894</a> 
<a class="jxr_linenumber" name="1895" href="#1895">1895</a>             <em class="jxr_comment">// check latest versions</em>
<a class="jxr_linenumber" name="1896" href="#1896">1896</a>             f = createResult(FAILURE, <span class="jxr_string">"Version series ID has "</span> + latestVersion
<a class="jxr_linenumber" name="1897" href="#1897">1897</a>                     + <span class="jxr_string">" latest versions! There must be only one!"</span>);
<a class="jxr_linenumber" name="1898" href="#1898">1898</a>             addResult(results, assertEquals(1, latestVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1899" href="#1899">1899</a> 
<a class="jxr_linenumber" name="1900" href="#1900">1900</a>             <strong class="jxr_keyword">if</strong> (!foundLastestVersion) {
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Latest version not found in version history!"</span>));
<a class="jxr_linenumber" name="1902" href="#1902">1902</a>             }
<a class="jxr_linenumber" name="1903" href="#1903">1903</a> 
<a class="jxr_linenumber" name="1904" href="#1904">1904</a>             <em class="jxr_comment">// check latest major versions</em>
<a class="jxr_linenumber" name="1905" href="#1905">1905</a>             <strong class="jxr_keyword">if</strong> (lastestMajorVersion == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1906" href="#1906">1906</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series ID has "</span> + latestMajorVersion
<a class="jxr_linenumber" name="1907" href="#1907">1907</a>                         + <span class="jxr_string">" latest major version(s) but getObjectOfLatestVersion() didn't return a major version!"</span>);
<a class="jxr_linenumber" name="1908" href="#1908">1908</a>                 addResult(results, assertEquals(0, latestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1909" href="#1909">1909</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1910" href="#1910">1910</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series ID has "</span> + latestMajorVersion
<a class="jxr_linenumber" name="1911" href="#1911">1911</a>                         + <span class="jxr_string">" latest major versions but there should be exactly one!"</span>);
<a class="jxr_linenumber" name="1912" href="#1912">1912</a>                 addResult(results, assertEquals(1, latestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1913" href="#1913">1913</a> 
<a class="jxr_linenumber" name="1914" href="#1914">1914</a>                 <strong class="jxr_keyword">if</strong> (!foundLastestMajorVersion) {
<a class="jxr_linenumber" name="1915" href="#1915">1915</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Latest major version not found in version history!"</span>));
<a class="jxr_linenumber" name="1916" href="#1916">1916</a>                 }
<a class="jxr_linenumber" name="1917" href="#1917">1917</a>             }
<a class="jxr_linenumber" name="1918" href="#1918">1918</a> 
<a class="jxr_linenumber" name="1919" href="#1919">1919</a>             <em class="jxr_comment">// check latest version</em>
<a class="jxr_linenumber" name="1920" href="#1920">1920</a>             <strong class="jxr_keyword">if</strong> (latestModifictaionIndex &gt;= 0) {
<a class="jxr_linenumber" name="1921" href="#1921">1921</a>                 f = createResult(
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>                         FAILURE,
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>                         <span class="jxr_string">"Version with the latest modification date is not flagged as latest version! ID: "</span>
<a class="jxr_linenumber" name="1924" href="#1924">1924</a>                                 + versions.get(latestModifictaionIndex));
<a class="jxr_linenumber" name="1925" href="#1925">1925</a>                 addResult(results, assertIsTrue(versions.get(latestModifictaionIndex).isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1926" href="#1926">1926</a>             }
<a class="jxr_linenumber" name="1927" href="#1927">1927</a> 
<a class="jxr_linenumber" name="1928" href="#1928">1928</a>             <em class="jxr_comment">// check if the origin object was found</em>
<a class="jxr_linenumber" name="1929" href="#1929">1929</a>             <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="1930" href="#1930">1930</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Document not found in its version history!"</span>));
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>             }
<a class="jxr_linenumber" name="1932" href="#1932">1932</a>         }
<a class="jxr_linenumber" name="1933" href="#1933">1933</a> 
<a class="jxr_linenumber" name="1934" href="#1934">1934</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1935" href="#1935">1935</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1936" href="#1936">1936</a> 
<a class="jxr_linenumber" name="1937" href="#1937">1937</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="1938" href="#1938">1938</a>     }
<a class="jxr_linenumber" name="1939" href="#1939">1939</a> 
<a class="jxr_linenumber" name="1940" href="#1940">1940</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertAllowableAction(CmisObject object, Action action, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="1941" href="#1941">1941</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="1942" href="#1942">1942</a>         AllowableActions allowableActions = object.getAllowableActions();
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>         <strong class="jxr_keyword">if</strong> (allowableActions != <strong class="jxr_keyword">null</strong> &amp;&amp; allowableActions.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1944" href="#1944">1944</a>             <strong class="jxr_keyword">if</strong> (allowableActions.getAllowableActions().contains(action)) {
<a class="jxr_linenumber" name="1945" href="#1945">1945</a>                 <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="1946" href="#1946">1946</a>             }
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>         }
<a class="jxr_linenumber" name="1948" href="#1948">1948</a> 
<a class="jxr_linenumber" name="1949" href="#1949">1949</a>         <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="1950" href="#1950">1950</a>     }
<a class="jxr_linenumber" name="1951" href="#1951">1951</a> 
<a class="jxr_linenumber" name="1952" href="#1952">1952</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertNotAllowableAction(CmisObject object, Action action, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="1953" href="#1953">1953</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>         AllowableActions allowableActions = object.getAllowableActions();
<a class="jxr_linenumber" name="1955" href="#1955">1955</a>         <strong class="jxr_keyword">if</strong> (allowableActions != <strong class="jxr_keyword">null</strong> &amp;&amp; allowableActions.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1956" href="#1956">1956</a>             <strong class="jxr_keyword">if</strong> (!allowableActions.getAllowableActions().contains(action)) {
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>                 <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>             }
<a class="jxr_linenumber" name="1959" href="#1959">1959</a>         }
<a class="jxr_linenumber" name="1960" href="#1960">1960</a> 
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>         <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="1962" href="#1962">1962</a>     }
<a class="jxr_linenumber" name="1963" href="#1963">1963</a> 
<a class="jxr_linenumber" name="1964" href="#1964">1964</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkProperty(Property&lt;?&gt; property, String message, <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/PropertyCheckEnum.html">PropertyCheckEnum</a> propertyCheck) {
<a class="jxr_linenumber" name="1965" href="#1965">1965</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1966" href="#1966">1966</a> 
<a class="jxr_linenumber" name="1967" href="#1967">1967</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1968" href="#1968">1968</a> 
<a class="jxr_linenumber" name="1969" href="#1969">1969</a>         f = createResult(FAILURE, <span class="jxr_string">"Property is not included in response!"</span>);
<a class="jxr_linenumber" name="1970" href="#1970">1970</a>         addResult(results, assertNotNull(property, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1971" href="#1971">1971</a> 
<a class="jxr_linenumber" name="1972" href="#1972">1972</a>         <strong class="jxr_keyword">if</strong> (property != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1973" href="#1973">1973</a>             f = createResult(FAILURE, <span class="jxr_string">"Property ID is not set or empty!"</span>);
<a class="jxr_linenumber" name="1974" href="#1974">1974</a>             addResult(results, assertStringNotEmpty(property.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1975" href="#1975">1975</a> 
<a class="jxr_linenumber" name="1976" href="#1976">1976</a>             f = createResult(WARNING, <span class="jxr_string">"Display name is not set!"</span>);
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>             addResult(results, assertNotNull(property.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1978" href="#1978">1978</a> 
<a class="jxr_linenumber" name="1979" href="#1979">1979</a>             f = createResult(WARNING, <span class="jxr_string">"Query name is not set!"</span>);
<a class="jxr_linenumber" name="1980" href="#1980">1980</a>             addResult(results, assertNotNull(property.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1981" href="#1981">1981</a> 
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>             f = createResult(WARNING, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="1983" href="#1983">1983</a>             addResult(results, assertNotNull(property.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1984" href="#1984">1984</a> 
<a class="jxr_linenumber" name="1985" href="#1985">1985</a>             <strong class="jxr_keyword">if</strong> ((propertyCheck == PropertyCheckEnum.MUST_BE_SET)
<a class="jxr_linenumber" name="1986" href="#1986">1986</a>                     || (propertyCheck == PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY)) {
<a class="jxr_linenumber" name="1987" href="#1987">1987</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property has no value!"</span>);
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>                 addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.STRING_SHOULD_NOT_BE_EMPTY) {
<a class="jxr_linenumber" name="1990" href="#1990">1990</a>                 f = createResult(WARNING, <span class="jxr_string">"Property has no value!"</span>);
<a class="jxr_linenumber" name="1991" href="#1991">1991</a>                 addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1992" href="#1992">1992</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.MUST_NOT_BE_SET) {
<a class="jxr_linenumber" name="1993" href="#1993">1993</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property has a value!"</span>);
<a class="jxr_linenumber" name="1994" href="#1994">1994</a>                 addResult(results, assertIsTrue(property.getValues().isEmpty(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1995" href="#1995">1995</a>             }
<a class="jxr_linenumber" name="1996" href="#1996">1996</a> 
<a class="jxr_linenumber" name="1997" href="#1997">1997</a>             <strong class="jxr_keyword">boolean</strong> isString = ((property.getDefinition().getPropertyType() == PropertyType.STRING)
<a class="jxr_linenumber" name="1998" href="#1998">1998</a>                     || (property.getDefinition().getPropertyType() == PropertyType.ID)
<a class="jxr_linenumber" name="1999" href="#1999">1999</a>                     || (property.getDefinition().getPropertyType() == PropertyType.URI) || (property.getDefinition()
<a class="jxr_linenumber" name="2000" href="#2000">2000</a>                     .getPropertyType() == PropertyType.HTML));
<a class="jxr_linenumber" name="2001" href="#2001">2001</a>             <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>                 <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Property values contain a null value!"</span>));
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isString) {
<a class="jxr_linenumber" name="2006" href="#2006">2006</a>                     <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY) {
<a class="jxr_linenumber" name="2007" href="#2007">2007</a>                         f = createResult(FAILURE, <span class="jxr_string">"Property values contain an empty string!"</span>);
<a class="jxr_linenumber" name="2008" href="#2008">2008</a>                         addResult(results, assertStringNotEmpty(value.toString(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.STRING_SHOULD_NOT_BE_EMPTY) {
<a class="jxr_linenumber" name="2010" href="#2010">2010</a>                         f = createResult(WARNING, <span class="jxr_string">"Property values contain an empty string!"</span>);
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>                         addResult(results, assertStringNotEmpty(value.toString(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2012" href="#2012">2012</a>                     }
<a class="jxr_linenumber" name="2013" href="#2013">2013</a>                 }
<a class="jxr_linenumber" name="2014" href="#2014">2014</a>             }
<a class="jxr_linenumber" name="2015" href="#2015">2015</a> 
<a class="jxr_linenumber" name="2016" href="#2016">2016</a>             <strong class="jxr_keyword">if</strong> (property.getDefinition().getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="2017" href="#2017">2017</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property cardinality is SINGLE but property has more than one value!"</span>);
<a class="jxr_linenumber" name="2018" href="#2018">2018</a>                 addResult(results, assertIsTrue(property.getValues().size() &lt;= 1, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2019" href="#2019">2019</a>             }
<a class="jxr_linenumber" name="2020" href="#2020">2020</a> 
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>             <strong class="jxr_keyword">if</strong> (property.getDefinition().isRequired() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definition doesn't contain the required flag!"</span>));
<a class="jxr_linenumber" name="2023" href="#2023">2023</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2024" href="#2024">2024</a>                 <strong class="jxr_keyword">if</strong> (property.getDefinition().isRequired().booleanValue()) {
<a class="jxr_linenumber" name="2025" href="#2025">2025</a>                     f = createResult(FAILURE, <span class="jxr_string">"Property is required but has no value!"</span>);
<a class="jxr_linenumber" name="2026" href="#2026">2026</a>                     addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2027" href="#2027">2027</a>                 }
<a class="jxr_linenumber" name="2028" href="#2028">2028</a>             }
<a class="jxr_linenumber" name="2029" href="#2029">2029</a>         }
<a class="jxr_linenumber" name="2030" href="#2030">2030</a> 
<a class="jxr_linenumber" name="2031" href="#2031">2031</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2032" href="#2032">2032</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2033" href="#2033">2033</a> 
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="2035" href="#2035">2035</a>     }
<a class="jxr_linenumber" name="2036" href="#2036">2036</a> 
<a class="jxr_linenumber" name="2037" href="#2037">2037</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkChildren(Session session, Folder folder, String message) {
<a class="jxr_linenumber" name="2038" href="#2038">2038</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2039" href="#2039">2039</a> 
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2041" href="#2041">2041</a> 
<a class="jxr_linenumber" name="2042" href="#2042">2042</a>         <strong class="jxr_keyword">if</strong> (folder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2043" href="#2043">2043</a>             <strong class="jxr_keyword">return</strong> createResult(FAILURE, <span class="jxr_string">"Folder is null!"</span>);
<a class="jxr_linenumber" name="2044" href="#2044">2044</a>         }
<a class="jxr_linenumber" name="2045" href="#2045">2045</a> 
<a class="jxr_linenumber" name="2046" href="#2046">2046</a>         <em class="jxr_comment">// getChildren</em>
<a class="jxr_linenumber" name="2047" href="#2047">2047</a> 
<a class="jxr_linenumber" name="2048" href="#2048">2048</a>         <strong class="jxr_keyword">boolean</strong> supportsOrderByName = isOrderByNameSupported(session);
<a class="jxr_linenumber" name="2049" href="#2049">2049</a>         OperationContext orderContext = (supportsOrderByName ? SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME
<a class="jxr_linenumber" name="2050" href="#2050">2050</a>                 : SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2051" href="#2051">2051</a> 
<a class="jxr_linenumber" name="2052" href="#2052">2052</a>         <strong class="jxr_keyword">long</strong> childrenCount = 0;
<a class="jxr_linenumber" name="2053" href="#2053">2053</a>         <strong class="jxr_keyword">long</strong> childrenFolderCount = 0;
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>         ItemIterable&lt;CmisObject&gt; children = folder.getChildren(orderContext);
<a class="jxr_linenumber" name="2055" href="#2055">2055</a> 
<a class="jxr_linenumber" name="2056" href="#2056">2056</a>         <strong class="jxr_keyword">int</strong> orderByNameIssues = 0;
<a class="jxr_linenumber" name="2057" href="#2057">2057</a>         String lastName = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2058" href="#2058">2058</a> 
<a class="jxr_linenumber" name="2059" href="#2059">2059</a>         <strong class="jxr_keyword">for</strong> (CmisObject child : children) {
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>             childrenCount++;
<a class="jxr_linenumber" name="2061" href="#2061">2061</a>             <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="2062" href="#2062">2062</a>                 childrenFolderCount++;
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>             }
<a class="jxr_linenumber" name="2064" href="#2064">2064</a> 
<a class="jxr_linenumber" name="2065" href="#2065">2065</a>             checkChild(session, results, folder, child);
<a class="jxr_linenumber" name="2066" href="#2066">2066</a> 
<a class="jxr_linenumber" name="2067" href="#2067">2067</a>             <strong class="jxr_keyword">if</strong> (lastName != <strong class="jxr_keyword">null</strong> &amp;&amp; child.getName() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>                 <strong class="jxr_keyword">if</strong> (child.getName().compareToIgnoreCase(lastName) &lt; 0) {
<a class="jxr_linenumber" name="2069" href="#2069">2069</a>                     orderByNameIssues++;
<a class="jxr_linenumber" name="2070" href="#2070">2070</a>                 }
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>             }
<a class="jxr_linenumber" name="2072" href="#2072">2072</a> 
<a class="jxr_linenumber" name="2073" href="#2073">2073</a>             lastName = child.getName();
<a class="jxr_linenumber" name="2074" href="#2074">2074</a>         }
<a class="jxr_linenumber" name="2075" href="#2075">2075</a> 
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>         <strong class="jxr_keyword">if</strong> (children.getTotalNumItems() &gt;= 0) {
<a class="jxr_linenumber" name="2077" href="#2077">2077</a>             f = createResult(WARNING, <span class="jxr_string">"Number of children doesn't match the reported total number of items!"</span>);
<a class="jxr_linenumber" name="2078" href="#2078">2078</a>             addResult(results, assertEquals(childrenCount, children.getTotalNumItems(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2079" href="#2079">2079</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2080" href="#2080">2080</a>             addResult(results, createResult(WARNING, <span class="jxr_string">"getChildren did not report the total number of items!"</span>));
<a class="jxr_linenumber" name="2081" href="#2081">2081</a>         }
<a class="jxr_linenumber" name="2082" href="#2082">2082</a> 
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>         <strong class="jxr_keyword">if</strong> (supportsOrderByName) {
<a class="jxr_linenumber" name="2084" href="#2084">2084</a>             f = createResult(WARNING,
<a class="jxr_linenumber" name="2085" href="#2085">2085</a>                     <span class="jxr_string">"Children should be ordered by cmis:name, but they are not! (It might be a collation mismtach.)"</span>);
<a class="jxr_linenumber" name="2086" href="#2086">2086</a>             addResult(results, assertEquals(0, orderByNameIssues, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2087" href="#2087">2087</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2088" href="#2088">2088</a>             addResult(results, createResult(INFO, <span class="jxr_string">"Repository doesn't support Order By for getChildren()."</span>));
<a class="jxr_linenumber" name="2089" href="#2089">2089</a>         }
<a class="jxr_linenumber" name="2090" href="#2090">2090</a> 
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>         <em class="jxr_comment">// test path segments</em>
<a class="jxr_linenumber" name="2092" href="#2092">2092</a> 
<a class="jxr_linenumber" name="2093" href="#2093">2093</a>         ObjectInFolderList pathSegementChildren = session
<a class="jxr_linenumber" name="2094" href="#2094">2094</a>                 .getBinding()
<a class="jxr_linenumber" name="2095" href="#2095">2095</a>                 .getNavigationService()
<a class="jxr_linenumber" name="2096" href="#2096">2096</a>                 .getChildren(session.getRepositoryInfo().getId(), folder.getId(), <span class="jxr_string">"cmis:objectId,cmis:name"</span>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2097" href="#2097">2097</a>                         <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, Boolean.TRUE, BigInteger.valueOf(10), BigInteger.ZERO, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2098" href="#2098">2098</a> 
<a class="jxr_linenumber" name="2099" href="#2099">2099</a>         <strong class="jxr_keyword">if</strong> (pathSegementChildren != <strong class="jxr_keyword">null</strong> &amp;&amp; pathSegementChildren.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2100" href="#2100">2100</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData objectInFolder : pathSegementChildren.getObjects()) {
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>                 String pathSegement = objectInFolder.getPathSegment();
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>                 String objectId = (String) objectInFolder.getObject().getProperties().getProperties()
<a class="jxr_linenumber" name="2103" href="#2103">2103</a>                         .get(PropertyIds.OBJECT_ID).getFirstValue();
<a class="jxr_linenumber" name="2104" href="#2104">2104</a> 
<a class="jxr_linenumber" name="2105" href="#2105">2105</a>                 <strong class="jxr_keyword">if</strong> (pathSegement == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2106" href="#2106">2106</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"getChildren omitted path segement! ID: "</span> + objectId));
<a class="jxr_linenumber" name="2107" href="#2107">2107</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2108" href="#2108">2108</a>                     CmisObject pathSegementChild = session.getObjectByPath(folder.getPath(), pathSegement);
<a class="jxr_linenumber" name="2109" href="#2109">2109</a> 
<a class="jxr_linenumber" name="2110" href="#2110">2110</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="2111" href="#2111">2111</a>                             <span class="jxr_string">"Combining the path of the parent folder and the path segement of a child returns a different object! ID: "</span>
<a class="jxr_linenumber" name="2112" href="#2112">2112</a>                                     + objectId);
<a class="jxr_linenumber" name="2113" href="#2113">2113</a>                     addResult(results, assertEquals(objectId, pathSegementChild.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>                 }
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>             }
<a class="jxr_linenumber" name="2116" href="#2116">2116</a>         }
<a class="jxr_linenumber" name="2117" href="#2117">2117</a> 
<a class="jxr_linenumber" name="2118" href="#2118">2118</a>         <em class="jxr_comment">// getDescendants</em>
<a class="jxr_linenumber" name="2119" href="#2119">2119</a> 
<a class="jxr_linenumber" name="2120" href="#2120">2120</a>         <strong class="jxr_keyword">if</strong> (isGetDescendantsSupported(session)) {
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>             <strong class="jxr_keyword">long</strong> descendantsCount = 0;
<a class="jxr_linenumber" name="2122" href="#2122">2122</a>             List&lt;Tree&lt;FileableCmisObject&gt;&gt; descendants = folder.getDescendants(1, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2123" href="#2123">2123</a> 
<a class="jxr_linenumber" name="2124" href="#2124">2124</a>             <strong class="jxr_keyword">for</strong> (Tree&lt;FileableCmisObject&gt; child : descendants) {
<a class="jxr_linenumber" name="2125" href="#2125">2125</a>                 descendantsCount++;
<a class="jxr_linenumber" name="2126" href="#2126">2126</a> 
<a class="jxr_linenumber" name="2127" href="#2127">2127</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder descendants contain a null tree!"</span>));
<a class="jxr_linenumber" name="2129" href="#2129">2129</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2130" href="#2130">2130</a>                     checkChild(session, results, folder, child.getItem());
<a class="jxr_linenumber" name="2131" href="#2131">2131</a>                 }
<a class="jxr_linenumber" name="2132" href="#2132">2132</a>             }
<a class="jxr_linenumber" name="2133" href="#2133">2133</a> 
<a class="jxr_linenumber" name="2134" href="#2134">2134</a>             f = createResult(FAILURE,
<a class="jxr_linenumber" name="2135" href="#2135">2135</a>                     <span class="jxr_string">"Number of descendants doesn't match the number of children returned by getChildren!"</span>);
<a class="jxr_linenumber" name="2136" href="#2136">2136</a>             addResult(results, assertEquals(childrenCount, descendantsCount, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2138" href="#2138">2138</a>             addResult(results, createResult(SKIPPED, <span class="jxr_string">"getDescendants is not supported."</span>));
<a class="jxr_linenumber" name="2139" href="#2139">2139</a>         }
<a class="jxr_linenumber" name="2140" href="#2140">2140</a> 
<a class="jxr_linenumber" name="2141" href="#2141">2141</a>         <em class="jxr_comment">// getFolderTree</em>
<a class="jxr_linenumber" name="2142" href="#2142">2142</a> 
<a class="jxr_linenumber" name="2143" href="#2143">2143</a>         <strong class="jxr_keyword">if</strong> (isGetFolderTreeSupported(session)) {
<a class="jxr_linenumber" name="2144" href="#2144">2144</a>             <strong class="jxr_keyword">long</strong> folderTreeCount = 0;
<a class="jxr_linenumber" name="2145" href="#2145">2145</a>             List&lt;Tree&lt;FileableCmisObject&gt;&gt; folderTree = folder.getFolderTree(1, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2146" href="#2146">2146</a> 
<a class="jxr_linenumber" name="2147" href="#2147">2147</a>             <strong class="jxr_keyword">for</strong> (Tree&lt;FileableCmisObject&gt; child : folderTree) {
<a class="jxr_linenumber" name="2148" href="#2148">2148</a>                 folderTreeCount++;
<a class="jxr_linenumber" name="2149" href="#2149">2149</a> 
<a class="jxr_linenumber" name="2150" href="#2150">2150</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2151" href="#2151">2151</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder tree contains a null tree!"</span>));
<a class="jxr_linenumber" name="2152" href="#2152">2152</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2153" href="#2153">2153</a>                     checkChild(session, results, folder, child.getItem());
<a class="jxr_linenumber" name="2154" href="#2154">2154</a>                 }
<a class="jxr_linenumber" name="2155" href="#2155">2155</a>             }
<a class="jxr_linenumber" name="2156" href="#2156">2156</a> 
<a class="jxr_linenumber" name="2157" href="#2157">2157</a>             f = createResult(FAILURE, <span class="jxr_string">"Number of folders doesn't match the number of folders returned by getChildren!"</span>);
<a class="jxr_linenumber" name="2158" href="#2158">2158</a>             addResult(results, assertEquals(childrenFolderCount, folderTreeCount, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>             addResult(results, createResult(SKIPPED, <span class="jxr_string">"getFolderTree is not supported."</span>));
<a class="jxr_linenumber" name="2161" href="#2161">2161</a>         }
<a class="jxr_linenumber" name="2162" href="#2162">2162</a> 
<a class="jxr_linenumber" name="2163" href="#2163">2163</a>         <em class="jxr_comment">// --- wrap up ---</em>
<a class="jxr_linenumber" name="2164" href="#2164">2164</a> 
<a class="jxr_linenumber" name="2165" href="#2165">2165</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2166" href="#2166">2166</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2167" href="#2167">2167</a> 
<a class="jxr_linenumber" name="2168" href="#2168">2168</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="2169" href="#2169">2169</a>     }
<a class="jxr_linenumber" name="2170" href="#2170">2170</a> 
<a class="jxr_linenumber" name="2171" href="#2171">2171</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkChild(Session session, List&lt;CmisTestResult&gt; results, Folder folder, CmisObject child) {
<a class="jxr_linenumber" name="2172" href="#2172">2172</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2173" href="#2173">2173</a> 
<a class="jxr_linenumber" name="2174" href="#2174">2174</a>         <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder contains a null child!"</span>));
<a class="jxr_linenumber" name="2176" href="#2176">2176</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2177" href="#2177">2177</a>             String[] propertiesToCheck = <strong class="jxr_keyword">new</strong> String[child.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="2178" href="#2178">2178</a> 
<a class="jxr_linenumber" name="2179" href="#2179">2179</a>             <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="2180" href="#2180">2180</a>             <strong class="jxr_keyword">for</strong> (String propId : child.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="2181" href="#2181">2181</a>                 propertiesToCheck[i++] = propId;
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>             }
<a class="jxr_linenumber" name="2183" href="#2183">2183</a> 
<a class="jxr_linenumber" name="2184" href="#2184">2184</a>             addResult(results, checkObject(session, child, propertiesToCheck, <span class="jxr_string">"Child check: "</span> + child.getId()));
<a class="jxr_linenumber" name="2185" href="#2185">2185</a>             addResult(
<a class="jxr_linenumber" name="2186" href="#2186">2186</a>                     results,
<a class="jxr_linenumber" name="2187" href="#2187">2187</a>                     checkVersionHistory(session, child, propertiesToCheck,
<a class="jxr_linenumber" name="2188" href="#2188">2188</a>                             <span class="jxr_string">"Child version history check: "</span> + child.getId()));
<a class="jxr_linenumber" name="2189" href="#2189">2189</a> 
<a class="jxr_linenumber" name="2190" href="#2190">2190</a>             f = createResult(FAILURE, <span class="jxr_string">"Child is not fileable! ID: "</span> + child.getId() + <span class="jxr_string">" / Type: "</span>
<a class="jxr_linenumber" name="2191" href="#2191">2191</a>                     + child.getType().getId());
<a class="jxr_linenumber" name="2192" href="#2192">2192</a>             addResult(results, assertIsTrue(child instanceof FileableCmisObject, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2193" href="#2193">2193</a> 
<a class="jxr_linenumber" name="2194" href="#2194">2194</a>             <strong class="jxr_keyword">if</strong> (child instanceof FileableCmisObject) {
<a class="jxr_linenumber" name="2195" href="#2195">2195</a>                 FileableCmisObject fileableChild = (FileableCmisObject) child;
<a class="jxr_linenumber" name="2196" href="#2196">2196</a> 
<a class="jxr_linenumber" name="2197" href="#2197">2197</a>                 Set&lt;Action&gt; actions = fileableChild.getAllowableActions().getAllowableActions();
<a class="jxr_linenumber" name="2198" href="#2198">2198</a>                 <strong class="jxr_keyword">boolean</strong> hasObjectParentsAction = actions.contains(Action.CAN_GET_OBJECT_PARENTS);
<a class="jxr_linenumber" name="2199" href="#2199">2199</a>                 <strong class="jxr_keyword">boolean</strong> hasFolderParentAction = actions.contains(Action.CAN_GET_FOLDER_PARENT);
<a class="jxr_linenumber" name="2200" href="#2200">2200</a> 
<a class="jxr_linenumber" name="2201" href="#2201">2201</a>                 <strong class="jxr_keyword">if</strong> (hasObjectParentsAction || hasFolderParentAction) {
<a class="jxr_linenumber" name="2202" href="#2202">2202</a>                     List&lt;Folder&gt; parents = fileableChild.getParents();
<a class="jxr_linenumber" name="2203" href="#2203">2203</a> 
<a class="jxr_linenumber" name="2204" href="#2204">2204</a>                     f = createResult(FAILURE, <span class="jxr_string">"Child has no parents! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>                     addResult(results, assertListNotEmpty(parents, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2206" href="#2206">2206</a> 
<a class="jxr_linenumber" name="2207" href="#2207">2207</a>                     <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="2209" href="#2209">2209</a>                                 <span class="jxr_string">"Child is a folder and has more than one parent! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2210" href="#2210">2210</a>                         addResult(results, assertIsFalse(parents.size() &gt; 1, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2211" href="#2211">2211</a> 
<a class="jxr_linenumber" name="2212" href="#2212">2212</a>                         Folder folderParent = ((Folder) child).getFolderParent();
<a class="jxr_linenumber" name="2213" href="#2213">2213</a>                         <strong class="jxr_keyword">if</strong> (folderParent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2214" href="#2214">2214</a>                             addResult(
<a class="jxr_linenumber" name="2215" href="#2215">2215</a>                                     results,
<a class="jxr_linenumber" name="2216" href="#2216">2216</a>                                     createResult(
<a class="jxr_linenumber" name="2217" href="#2217">2217</a>                                             FAILURE,
<a class="jxr_linenumber" name="2218" href="#2218">2218</a>                                             <span class="jxr_string">"getFolderParent() returns null for a non-root folder object! ID: "</span>
<a class="jxr_linenumber" name="2219" href="#2219">2219</a>                                                     + child.getId()));
<a class="jxr_linenumber" name="2220" href="#2220">2220</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2221" href="#2221">2221</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="2222" href="#2222">2222</a>                                     <span class="jxr_string">"getFolderParent() returns wrong parent object! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>                             addResult(results, assertEquals(folder.getId(), folderParent.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2224" href="#2224">2224</a> 
<a class="jxr_linenumber" name="2225" href="#2225">2225</a>                             <strong class="jxr_keyword">if</strong> (parents.size() &gt; 0 &amp;&amp; parents.get(0) != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>                                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="2227" href="#2227">2227</a>                                         <span class="jxr_string">"getFolderParent() and getParents() return different parents for a folder object! ID: "</span>
<a class="jxr_linenumber" name="2228" href="#2228">2228</a>                                                 + child.getId());
<a class="jxr_linenumber" name="2229" href="#2229">2229</a>                                 addResult(results, assertEquals(parents.get(0).getId(), folderParent.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2230" href="#2230">2230</a>                             }
<a class="jxr_linenumber" name="2231" href="#2231">2231</a>                         }
<a class="jxr_linenumber" name="2232" href="#2232">2232</a>                     }
<a class="jxr_linenumber" name="2233" href="#2233">2233</a> 
<a class="jxr_linenumber" name="2234" href="#2234">2234</a>                     <strong class="jxr_keyword">boolean</strong> foundParent = false;
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>                     <strong class="jxr_keyword">for</strong> (Folder parent : parents) {
<a class="jxr_linenumber" name="2236" href="#2236">2236</a>                         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2237" href="#2237">2237</a>                             f = createResult(FAILURE, <span class="jxr_string">"One of childs parents is null! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>                             addResult(results, assertListNotEmpty(parents, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2239" href="#2239">2239</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (folder.getId().equals(parent.getId())) {
<a class="jxr_linenumber" name="2240" href="#2240">2240</a>                             foundParent = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2241" href="#2241">2241</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2242" href="#2242">2242</a>                         }
<a class="jxr_linenumber" name="2243" href="#2243">2243</a>                     }
<a class="jxr_linenumber" name="2244" href="#2244">2244</a> 
<a class="jxr_linenumber" name="2245" href="#2245">2245</a>                     <strong class="jxr_keyword">if</strong> (!foundParent) {
<a class="jxr_linenumber" name="2246" href="#2246">2246</a>                         addResult(
<a class="jxr_linenumber" name="2247" href="#2247">2247</a>                                 results,
<a class="jxr_linenumber" name="2248" href="#2248">2248</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="2249" href="#2249">2249</a>                                         <span class="jxr_string">"Parent folder is not in parents of the child! ID: "</span> + child.getId()));
<a class="jxr_linenumber" name="2250" href="#2250">2250</a>                     }
<a class="jxr_linenumber" name="2251" href="#2251">2251</a>                 }
<a class="jxr_linenumber" name="2252" href="#2252">2252</a> 
<a class="jxr_linenumber" name="2253" href="#2253">2253</a>                 <em class="jxr_comment">// get object by ID and compare</em>
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>                 CmisObject objectById = session.getObject(child.getId(), SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2255" href="#2255">2255</a> 
<a class="jxr_linenumber" name="2256" href="#2256">2256</a>                 f = createResult(FAILURE, <span class="jxr_string">"Child and object fetched by ID don't match! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>                 addResult(results, assertEquals(child, objectById, <strong class="jxr_keyword">null</strong>, f, false, false));
<a class="jxr_linenumber" name="2258" href="#2258">2258</a> 
<a class="jxr_linenumber" name="2259" href="#2259">2259</a>                 <em class="jxr_comment">// get object by path and compare</em>
<a class="jxr_linenumber" name="2260" href="#2260">2260</a>                 List&lt;String&gt; paths = ((FileableCmisObject) child).getPaths();
<a class="jxr_linenumber" name="2261" href="#2261">2261</a> 
<a class="jxr_linenumber" name="2262" href="#2262">2262</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(paths)) {
<a class="jxr_linenumber" name="2263" href="#2263">2263</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Child has no path! "</span> + child.getId()));
<a class="jxr_linenumber" name="2264" href="#2264">2264</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2265" href="#2265">2265</a>                     <strong class="jxr_keyword">for</strong> (String path : paths) {
<a class="jxr_linenumber" name="2266" href="#2266">2266</a>                         CmisObject objectByPath = session.getObjectByPath(path, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2267" href="#2267">2267</a> 
<a class="jxr_linenumber" name="2268" href="#2268">2268</a>                         f = createResult(FAILURE, <span class="jxr_string">"Child and object fetched by path don't match! ID: "</span> + child.getId()
<a class="jxr_linenumber" name="2269" href="#2269">2269</a>                                 + <span class="jxr_string">" / Path: "</span> + path);
<a class="jxr_linenumber" name="2270" href="#2270">2270</a>                         addResult(results, assertEquals(child, objectByPath, <strong class="jxr_keyword">null</strong>, f, false, false));
<a class="jxr_linenumber" name="2271" href="#2271">2271</a> 
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>                         f = createResult(FAILURE, <span class="jxr_string">"Object fetched by id and object fetched by path don't match! ID: "</span>
<a class="jxr_linenumber" name="2273" href="#2273">2273</a>                                 + child.getId() + <span class="jxr_string">" / Path: "</span> + path);
<a class="jxr_linenumber" name="2274" href="#2274">2274</a>                         addResult(results, assertEquals(objectById, objectByPath, <strong class="jxr_keyword">null</strong>, f, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>                     }
<a class="jxr_linenumber" name="2276" href="#2276">2276</a>                 }
<a class="jxr_linenumber" name="2277" href="#2277">2277</a>             }
<a class="jxr_linenumber" name="2278" href="#2278">2278</a> 
<a class="jxr_linenumber" name="2279" href="#2279">2279</a>             <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="2280" href="#2280">2280</a>                 f = createResult(WARNING, <span class="jxr_string">"Child has no CAN_GET_FOLDER_PARENT allowable action! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2281" href="#2281">2281</a>                 addResult(results, assertAllowableAction(child, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2282" href="#2282">2282</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2283" href="#2283">2283</a>                 f = createResult(WARNING, <span class="jxr_string">"Child has no CAN_GET_OBJECT_PARENTS allowable action! ID: "</span> + child.getId());
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>                 addResult(results, assertAllowableAction(child, Action.CAN_GET_OBJECT_PARENTS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2285" href="#2285">2285</a>             }
<a class="jxr_linenumber" name="2286" href="#2286">2286</a>         }
<a class="jxr_linenumber" name="2287" href="#2287">2287</a>     }
<a class="jxr_linenumber" name="2288" href="#2288">2288</a> 
<a class="jxr_linenumber" name="2289" href="#2289">2289</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertShallowEquals(CmisObject expected, CmisObject actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2291" href="#2291">2291</a> 
<a class="jxr_linenumber" name="2292" href="#2292">2292</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2293" href="#2293">2293</a> 
<a class="jxr_linenumber" name="2294" href="#2294">2294</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2295" href="#2295">2295</a> 
<a class="jxr_linenumber" name="2296" href="#2296">2296</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2297" href="#2297">2297</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2298" href="#2298">2298</a>         }
<a class="jxr_linenumber" name="2299" href="#2299">2299</a> 
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected object is null, but actual object is not!"</span>);
<a class="jxr_linenumber" name="2302" href="#2302">2302</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2303" href="#2303">2303</a> 
<a class="jxr_linenumber" name="2304" href="#2304">2304</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2305" href="#2305">2305</a>         }
<a class="jxr_linenumber" name="2306" href="#2306">2306</a> 
<a class="jxr_linenumber" name="2307" href="#2307">2307</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2308" href="#2308">2308</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="2309" href="#2309">2309</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2310" href="#2310">2310</a> 
<a class="jxr_linenumber" name="2311" href="#2311">2311</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2312" href="#2312">2312</a>         }
<a class="jxr_linenumber" name="2313" href="#2313">2313</a> 
<a class="jxr_linenumber" name="2314" href="#2314">2314</a>         f = createResult(FAILURE, <span class="jxr_string">"Ids don't match!"</span>);
<a class="jxr_linenumber" name="2315" href="#2315">2315</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2316" href="#2316">2316</a> 
<a class="jxr_linenumber" name="2317" href="#2317">2317</a>         f = createResult(FAILURE, <span class="jxr_string">"Base types don't match!"</span>);
<a class="jxr_linenumber" name="2318" href="#2318">2318</a>         addResult(results, assertEquals(expected.getBaseTypeId(), actual.getBaseTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2319" href="#2319">2319</a> 
<a class="jxr_linenumber" name="2320" href="#2320">2320</a>         f = createResult(FAILURE, <span class="jxr_string">"Types don't match!"</span>);
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>         addResult(results, assertEquals(expected.getType().getId(), actual.getType().getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2322" href="#2322">2322</a> 
<a class="jxr_linenumber" name="2323" href="#2323">2323</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2325" href="#2325">2325</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2326" href="#2326">2326</a>             }
<a class="jxr_linenumber" name="2327" href="#2327">2327</a> 
<a class="jxr_linenumber" name="2328" href="#2328">2328</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2329" href="#2329">2329</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2330" href="#2330">2330</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2331" href="#2331">2331</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2332" href="#2332">2332</a>             }
<a class="jxr_linenumber" name="2333" href="#2333">2333</a> 
<a class="jxr_linenumber" name="2334" href="#2334">2334</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2335" href="#2335">2335</a>         }
<a class="jxr_linenumber" name="2336" href="#2336">2336</a>     }
<a class="jxr_linenumber" name="2337" href="#2337">2337</a> 
<a class="jxr_linenumber" name="2338" href="#2338">2338</a>     <em class="jxr_comment">// --- type checks ---</em>
<a class="jxr_linenumber" name="2339" href="#2339">2339</a> 
<a class="jxr_linenumber" name="2340" href="#2340">2340</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkQueryName(String queryName, <strong class="jxr_keyword">boolean</strong> isRequired, String message) {
<a class="jxr_linenumber" name="2341" href="#2341">2341</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2342" href="#2342">2342</a> 
<a class="jxr_linenumber" name="2343" href="#2343">2343</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2344" href="#2344">2344</a> 
<a class="jxr_linenumber" name="2345" href="#2345">2345</a>         <strong class="jxr_keyword">if</strong> (queryName == <strong class="jxr_keyword">null</strong> || queryName.length() == 0) {
<a class="jxr_linenumber" name="2346" href="#2346">2346</a>             addResult(results, createResult(isRequired ? FAILURE : WARNING, <span class="jxr_string">"Query name is not set!"</span>));
<a class="jxr_linenumber" name="2347" href="#2347">2347</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ' '"</span>);
<a class="jxr_linenumber" name="2349" href="#2349">2349</a>             addResult(results, assertIsTrue(queryName.indexOf(' ') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2350" href="#2350">2350</a> 
<a class="jxr_linenumber" name="2351" href="#2351">2351</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ','"</span>);
<a class="jxr_linenumber" name="2352" href="#2352">2352</a>             addResult(results, assertIsTrue(queryName.indexOf(',') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2353" href="#2353">2353</a> 
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '\&quot;'"</span>);
<a class="jxr_linenumber" name="2355" href="#2355">2355</a>             addResult(results, assertIsTrue(queryName.indexOf('&quot;') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2356" href="#2356">2356</a> 
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '''"</span>);
<a class="jxr_linenumber" name="2358" href="#2358">2358</a>             addResult(results, assertIsTrue(queryName.indexOf('\'') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2359" href="#2359">2359</a> 
<a class="jxr_linenumber" name="2360" href="#2360">2360</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;'"</span>);
<a class="jxr_linenumber" name="2361" href="#2361">2361</a>             addResult(results, assertIsTrue(queryName.indexOf('&#92;&#92;') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2362" href="#2362">2362</a> 
<a class="jxr_linenumber" name="2363" href="#2363">2363</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '.'"</span>);
<a class="jxr_linenumber" name="2364" href="#2364">2364</a>             addResult(results, assertIsTrue(queryName.indexOf('.') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2365" href="#2365">2365</a> 
<a class="jxr_linenumber" name="2366" href="#2366">2366</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '('"</span>);
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>             addResult(results, assertIsTrue(queryName.indexOf('(') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2368" href="#2368">2368</a> 
<a class="jxr_linenumber" name="2369" href="#2369">2369</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ')'"</span>);
<a class="jxr_linenumber" name="2370" href="#2370">2370</a>             addResult(results, assertIsTrue(queryName.indexOf(')') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2371" href="#2371">2371</a> 
<a class="jxr_linenumber" name="2372" href="#2372">2372</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;t'"</span>);
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>             addResult(results, assertIsTrue(queryName.indexOf('\t') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2374" href="#2374">2374</a> 
<a class="jxr_linenumber" name="2375" href="#2375">2375</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;n'"</span>);
<a class="jxr_linenumber" name="2376" href="#2376">2376</a>             addResult(results, assertIsTrue(queryName.indexOf('\n') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2377" href="#2377">2377</a> 
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;r'"</span>);
<a class="jxr_linenumber" name="2379" href="#2379">2379</a>             addResult(results, assertIsTrue(queryName.indexOf('\r') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2380" href="#2380">2380</a>         }
<a class="jxr_linenumber" name="2381" href="#2381">2381</a> 
<a class="jxr_linenumber" name="2382" href="#2382">2382</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2384" href="#2384">2384</a> 
<a class="jxr_linenumber" name="2385" href="#2385">2385</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="2386" href="#2386">2386</a>     }
<a class="jxr_linenumber" name="2387" href="#2387">2387</a> 
<a class="jxr_linenumber" name="2388" href="#2388">2388</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkTypeDefinition(Session session, TypeDefinition type, String message) {
<a class="jxr_linenumber" name="2389" href="#2389">2389</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2390" href="#2390">2390</a> 
<a class="jxr_linenumber" name="2391" href="#2391">2391</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2392" href="#2392">2392</a> 
<a class="jxr_linenumber" name="2393" href="#2393">2393</a>         f = createResult(FAILURE, <span class="jxr_string">"Type is null!"</span>);
<a class="jxr_linenumber" name="2394" href="#2394">2394</a>         addResult(results, assertNotNull(type, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2395" href="#2395">2395</a> 
<a class="jxr_linenumber" name="2396" href="#2396">2396</a>         <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2397" href="#2397">2397</a>             f = createResult(FAILURE, <span class="jxr_string">"Type ID is not set!"</span>);
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>             addResult(results, assertStringNotEmpty(type.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2399" href="#2399">2399</a> 
<a class="jxr_linenumber" name="2400" href="#2400">2400</a>             f = createResult(FAILURE, <span class="jxr_string">"Base type ID is not set!"</span>);
<a class="jxr_linenumber" name="2401" href="#2401">2401</a>             addResult(results, assertNotNull(type.getBaseTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2402" href="#2402">2402</a> 
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>             f = createResult(FAILURE, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>             addResult(results, assertStringNotEmpty(type.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2405" href="#2405">2405</a> 
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>             <em class="jxr_comment">// f = createResult(FAILURE, "Local namespace is not set!");</em>
<a class="jxr_linenumber" name="2407" href="#2407">2407</a>             <em class="jxr_comment">// addResult(results, assertStringNotEmpty(type.(), null, f));</em>
<a class="jxr_linenumber" name="2408" href="#2408">2408</a> 
<a class="jxr_linenumber" name="2409" href="#2409">2409</a>             <strong class="jxr_keyword">boolean</strong> isQueryNameRequired = Boolean.TRUE.equals(type.isQueryable());
<a class="jxr_linenumber" name="2410" href="#2410">2410</a>             addResult(results,
<a class="jxr_linenumber" name="2411" href="#2411">2411</a>                     checkQueryName(type.getQueryName(), isQueryNameRequired, <span class="jxr_string">"Type Query Name: "</span> + type.getQueryName()));
<a class="jxr_linenumber" name="2412" href="#2412">2412</a> 
<a class="jxr_linenumber" name="2413" href="#2413">2413</a>             <strong class="jxr_keyword">if</strong> ((type.getId() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (type.getBaseTypeId() != <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>                 <strong class="jxr_keyword">if</strong> (type.getBaseTypeId().value().equals(type.getId())) {
<a class="jxr_linenumber" name="2415" href="#2415">2415</a>                     f = createResult(FAILURE, <span class="jxr_string">"Base type has parent type!"</span>);
<a class="jxr_linenumber" name="2416" href="#2416">2416</a>                     addResult(results, assertStringNullOrEmpty(type.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2417" href="#2417">2417</a> 
<a class="jxr_linenumber" name="2418" href="#2418">2418</a>                     f = createResult(FAILURE, <span class="jxr_string">"Query name of base type is wrong!"</span>);
<a class="jxr_linenumber" name="2419" href="#2419">2419</a>                     addResult(results, assertEquals(type.getId(), type.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2420" href="#2420">2420</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2421" href="#2421">2421</a>                     f = createResult(FAILURE, <span class="jxr_string">"Parent type is not set!"</span>);
<a class="jxr_linenumber" name="2422" href="#2422">2422</a>                     addResult(results, assertStringNotEmpty(type.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2423" href="#2423">2423</a>                 }
<a class="jxr_linenumber" name="2424" href="#2424">2424</a>             }
<a class="jxr_linenumber" name="2425" href="#2425">2425</a> 
<a class="jxr_linenumber" name="2426" href="#2426">2426</a>             f = createResult(FAILURE, <span class="jxr_string">"Creatable flag is not set!"</span>);
<a class="jxr_linenumber" name="2427" href="#2427">2427</a>             addResult(results, assertNotNull(type.isCreatable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2428" href="#2428">2428</a> 
<a class="jxr_linenumber" name="2429" href="#2429">2429</a>             f = createResult(FAILURE, <span class="jxr_string">"Fileable flag is not set!"</span>);
<a class="jxr_linenumber" name="2430" href="#2430">2430</a>             addResult(results, assertNotNull(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2431" href="#2431">2431</a> 
<a class="jxr_linenumber" name="2432" href="#2432">2432</a>             f = createResult(FAILURE, <span class="jxr_string">"Controllable ACL flag is not set!"</span>);
<a class="jxr_linenumber" name="2433" href="#2433">2433</a>             addResult(results, assertNotNull(type.isControllableAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2434" href="#2434">2434</a> 
<a class="jxr_linenumber" name="2435" href="#2435">2435</a>             f = createResult(FAILURE, <span class="jxr_string">"Controllable Policy flag is not set!"</span>);
<a class="jxr_linenumber" name="2436" href="#2436">2436</a>             addResult(results, assertNotNull(type.isControllablePolicy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2437" href="#2437">2437</a> 
<a class="jxr_linenumber" name="2438" href="#2438">2438</a>             f = createResult(FAILURE, <span class="jxr_string">"Fulltext indexed flag is not set!"</span>);
<a class="jxr_linenumber" name="2439" href="#2439">2439</a>             addResult(results, assertNotNull(type.isFulltextIndexed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2440" href="#2440">2440</a> 
<a class="jxr_linenumber" name="2441" href="#2441">2441</a>             f = createResult(FAILURE, <span class="jxr_string">"Included in super type flag is not set!"</span>);
<a class="jxr_linenumber" name="2442" href="#2442">2442</a>             addResult(results, assertNotNull(type.isIncludedInSupertypeQuery(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2443" href="#2443">2443</a> 
<a class="jxr_linenumber" name="2444" href="#2444">2444</a>             f = createResult(FAILURE, <span class="jxr_string">"Queryable flag is not set!"</span>);
<a class="jxr_linenumber" name="2445" href="#2445">2445</a>             addResult(results, assertNotNull(type.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2446" href="#2446">2446</a> 
<a class="jxr_linenumber" name="2447" href="#2447">2447</a>             f = createResult(WARNING, <span class="jxr_string">"Type display name is not set!"</span>);
<a class="jxr_linenumber" name="2448" href="#2448">2448</a>             addResult(results, assertStringNotEmpty(type.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2449" href="#2449">2449</a> 
<a class="jxr_linenumber" name="2450" href="#2450">2450</a>             f = createResult(WARNING, <span class="jxr_string">"Type description is not set!"</span>);
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>             addResult(results, assertStringNotEmpty(type.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2452" href="#2452">2452</a> 
<a class="jxr_linenumber" name="2453" href="#2453">2453</a>             <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>                 DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
<a class="jxr_linenumber" name="2455" href="#2455">2455</a> 
<a class="jxr_linenumber" name="2456" href="#2456">2456</a>                 f = createResult(FAILURE, <span class="jxr_string">"Versionable flag is not set!"</span>);
<a class="jxr_linenumber" name="2457" href="#2457">2457</a>                 addResult(results, assertNotNull(docType.isVersionable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2458" href="#2458">2458</a> 
<a class="jxr_linenumber" name="2459" href="#2459">2459</a>                 f = createResult(FAILURE, <span class="jxr_string">"Content stream allowed flag is not set!"</span>);
<a class="jxr_linenumber" name="2460" href="#2460">2460</a>                 addResult(results, assertNotNull(docType.getContentStreamAllowed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2461" href="#2461">2461</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2462" href="#2462">2462</a>                 <strong class="jxr_keyword">if</strong> (type.isFileable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2463" href="#2463">2463</a>                     f = createResult(FAILURE, <span class="jxr_string">"Folder types must be fileable!"</span>);
<a class="jxr_linenumber" name="2464" href="#2464">2464</a>                     addResult(results, assertIsTrue(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2465" href="#2465">2465</a>                 }
<a class="jxr_linenumber" name="2466" href="#2466">2466</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2467" href="#2467">2467</a>                 RelationshipTypeDefinition relType = (RelationshipTypeDefinition) type;
<a class="jxr_linenumber" name="2468" href="#2468">2468</a> 
<a class="jxr_linenumber" name="2469" href="#2469">2469</a>                 f = createResult(FAILURE, <span class="jxr_string">"Allowed Source Type IDs are not set!"</span>);
<a class="jxr_linenumber" name="2470" href="#2470">2470</a>                 addResult(results, assertNotNull(relType.getAllowedSourceTypeIds(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2471" href="#2471">2471</a> 
<a class="jxr_linenumber" name="2472" href="#2472">2472</a>                 <strong class="jxr_keyword">if</strong> (relType.getAllowedSourceTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>                     <strong class="jxr_keyword">for</strong> (String typeId : relType.getAllowedSourceTypeIds()) {
<a class="jxr_linenumber" name="2474" href="#2474">2474</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2475" href="#2475">2475</a>                             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="2476" href="#2476">2476</a>                         } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="2477" href="#2477">2477</a>                             addResult(
<a class="jxr_linenumber" name="2478" href="#2478">2478</a>                                     results,
<a class="jxr_linenumber" name="2479" href="#2479">2479</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2480" href="#2480">2480</a>                                             <span class="jxr_string">"Allowed Source Type IDs contain a type ID that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2481" href="#2481">2481</a>                         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="2482" href="#2482">2482</a>                             addResult(
<a class="jxr_linenumber" name="2483" href="#2483">2483</a>                                     results,
<a class="jxr_linenumber" name="2484" href="#2484">2484</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2485" href="#2485">2485</a>                                             <span class="jxr_string">"Allowed Source Type IDs contain a type ID that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2486" href="#2486">2486</a>                         }
<a class="jxr_linenumber" name="2487" href="#2487">2487</a>                     }
<a class="jxr_linenumber" name="2488" href="#2488">2488</a>                 }
<a class="jxr_linenumber" name="2489" href="#2489">2489</a> 
<a class="jxr_linenumber" name="2490" href="#2490">2490</a>                 f = createResult(FAILURE, <span class="jxr_string">"Allowed Target Type IDs are not set!"</span>);
<a class="jxr_linenumber" name="2491" href="#2491">2491</a>                 addResult(results, assertNotNull(relType.getAllowedTargetTypeIds(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2492" href="#2492">2492</a> 
<a class="jxr_linenumber" name="2493" href="#2493">2493</a>                 <strong class="jxr_keyword">if</strong> (relType.getAllowedTargetTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2494" href="#2494">2494</a>                     <strong class="jxr_keyword">for</strong> (String typeId : relType.getAllowedTargetTypeIds()) {
<a class="jxr_linenumber" name="2495" href="#2495">2495</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2496" href="#2496">2496</a>                             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="2497" href="#2497">2497</a>                         } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="2498" href="#2498">2498</a>                             addResult(
<a class="jxr_linenumber" name="2499" href="#2499">2499</a>                                     results,
<a class="jxr_linenumber" name="2500" href="#2500">2500</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2501" href="#2501">2501</a>                                             <span class="jxr_string">"Allowed Target Type IDs contain a type ID that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2502" href="#2502">2502</a>                         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="2503" href="#2503">2503</a>                             addResult(
<a class="jxr_linenumber" name="2504" href="#2504">2504</a>                                     results,
<a class="jxr_linenumber" name="2505" href="#2505">2505</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2506" href="#2506">2506</a>                                             <span class="jxr_string">"Allowed Target Type IDs contain a type ID that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2507" href="#2507">2507</a>                         }
<a class="jxr_linenumber" name="2508" href="#2508">2508</a>                     }
<a class="jxr_linenumber" name="2509" href="#2509">2509</a>                 }
<a class="jxr_linenumber" name="2510" href="#2510">2510</a> 
<a class="jxr_linenumber" name="2511" href="#2511">2511</a>                 <strong class="jxr_keyword">if</strong> (type.isFileable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>                     f = createResult(FAILURE, <span class="jxr_string">"Relationship types must not be fileable!"</span>);
<a class="jxr_linenumber" name="2513" href="#2513">2513</a>                     addResult(results, assertIsFalse(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2514" href="#2514">2514</a>                 }
<a class="jxr_linenumber" name="2515" href="#2515">2515</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2516" href="#2516">2516</a>                 <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="2517" href="#2517">2517</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_SECONDARY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2518" href="#2518">2518</a>                 <strong class="jxr_keyword">if</strong> (type.isCreatable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2519" href="#2519">2519</a>                     f = createResult(FAILURE, <span class="jxr_string">"Secondary types must not be creatable!"</span>);
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>                     addResult(results, assertIsFalse(type.isCreatable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2521" href="#2521">2521</a>                 }
<a class="jxr_linenumber" name="2522" href="#2522">2522</a> 
<a class="jxr_linenumber" name="2523" href="#2523">2523</a>                 <strong class="jxr_keyword">if</strong> (type.isFileable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2524" href="#2524">2524</a>                     f = createResult(FAILURE, <span class="jxr_string">"Secondary types must not be fileable!"</span>);
<a class="jxr_linenumber" name="2525" href="#2525">2525</a>                     addResult(results, assertIsFalse(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2526" href="#2526">2526</a>                 }
<a class="jxr_linenumber" name="2527" href="#2527">2527</a> 
<a class="jxr_linenumber" name="2528" href="#2528">2528</a>                 <strong class="jxr_keyword">if</strong> (type.isControllableAcl() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2529" href="#2529">2529</a>                     f = createResult(FAILURE, <span class="jxr_string">"The controllable ACL flag must be false for secondary types!"</span>);
<a class="jxr_linenumber" name="2530" href="#2530">2530</a>                     addResult(results, assertIsFalse(type.isControllableAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2531" href="#2531">2531</a>                 }
<a class="jxr_linenumber" name="2532" href="#2532">2532</a> 
<a class="jxr_linenumber" name="2533" href="#2533">2533</a>                 <strong class="jxr_keyword">if</strong> (type.isControllablePolicy() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2534" href="#2534">2534</a>                     f = createResult(FAILURE, <span class="jxr_string">"The controllable policy flag must be false for secondary types!"</span>);
<a class="jxr_linenumber" name="2535" href="#2535">2535</a>                     addResult(results, assertIsFalse(type.isControllablePolicy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2536" href="#2536">2536</a>                 }
<a class="jxr_linenumber" name="2537" href="#2537">2537</a>             }
<a class="jxr_linenumber" name="2538" href="#2538">2538</a> 
<a class="jxr_linenumber" name="2539" href="#2539">2539</a>             <em class="jxr_comment">// check properties</em>
<a class="jxr_linenumber" name="2540" href="#2540">2540</a>             <strong class="jxr_keyword">if</strong> (!BaseTypeId.CMIS_SECONDARY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2541" href="#2541">2541</a> 
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>                 f = createResult(FAILURE, <span class="jxr_string">"Type has no property definitions!"</span>);
<a class="jxr_linenumber" name="2543" href="#2543">2543</a>                 addResult(results, assertNotNull(type.getPropertyDefinitions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2544" href="#2544">2544</a> 
<a class="jxr_linenumber" name="2545" href="#2545">2545</a>                 <strong class="jxr_keyword">if</strong> (type.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2546" href="#2546">2546</a>                     <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : type.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="2547" href="#2547">2547</a>                         <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2548" href="#2548">2548</a>                             addResult(results, createResult(FAILURE, <span class="jxr_string">"A property definition is null!"</span>));
<a class="jxr_linenumber" name="2549" href="#2549">2549</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef.getId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2550" href="#2550">2550</a>                             addResult(results, createResult(FAILURE, <span class="jxr_string">"A property definition ID is null!"</span>));
<a class="jxr_linenumber" name="2551" href="#2551">2551</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2552" href="#2552">2552</a>                             addResult(results,
<a class="jxr_linenumber" name="2553" href="#2553">2553</a>                                     checkPropertyDefinition(propDef, <span class="jxr_string">"Property definition: "</span> + propDef.getId()));
<a class="jxr_linenumber" name="2554" href="#2554">2554</a>                         }
<a class="jxr_linenumber" name="2555" href="#2555">2555</a>                     }
<a class="jxr_linenumber" name="2556" href="#2556">2556</a>                 }
<a class="jxr_linenumber" name="2557" href="#2557">2557</a> 
<a class="jxr_linenumber" name="2558" href="#2558">2558</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a> cpd;
<a class="jxr_linenumber" name="2559" href="#2559">2559</a> 
<a class="jxr_linenumber" name="2560" href="#2560">2560</a>                 <em class="jxr_comment">// cmis:name</em>
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.NAME, <strong class="jxr_keyword">null</strong>, PropertyType.STRING, Cardinality.SINGLE, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2562" href="#2562">2562</a>                         <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2563" href="#2563">2563</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2564" href="#2564">2564</a> 
<a class="jxr_linenumber" name="2565" href="#2565">2565</a>                 <em class="jxr_comment">// cmis:objectId</em>
<a class="jxr_linenumber" name="2566" href="#2566">2566</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.OBJECT_ID, false, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2567" href="#2567">2567</a>                         Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2568" href="#2568">2568</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2569" href="#2569">2569</a> 
<a class="jxr_linenumber" name="2570" href="#2570">2570</a>                 <em class="jxr_comment">// cmis:baseTypeId</em>
<a class="jxr_linenumber" name="2571" href="#2571">2571</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.BASE_TYPE_ID, false, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2572" href="#2572">2572</a>                         Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2573" href="#2573">2573</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2574" href="#2574">2574</a> 
<a class="jxr_linenumber" name="2575" href="#2575">2575</a>                 <em class="jxr_comment">// cmis:objectTypeId</em>
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.OBJECT_TYPE_ID, <strong class="jxr_keyword">true</strong>, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2577" href="#2577">2577</a>                         Updatability.ONCREATE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2578" href="#2578">2578</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2579" href="#2579">2579</a> 
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>                 <em class="jxr_comment">// cmis:createdBy</em>
<a class="jxr_linenumber" name="2581" href="#2581">2581</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CREATED_BY, false, PropertyType.STRING, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2582" href="#2582">2582</a>                         Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2583" href="#2583">2583</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2584" href="#2584">2584</a> 
<a class="jxr_linenumber" name="2585" href="#2585">2585</a>                 <em class="jxr_comment">// cmis:creationDate</em>
<a class="jxr_linenumber" name="2586" href="#2586">2586</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CREATION_DATE, false, PropertyType.DATETIME,
<a class="jxr_linenumber" name="2587" href="#2587">2587</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2588" href="#2588">2588</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2589" href="#2589">2589</a> 
<a class="jxr_linenumber" name="2590" href="#2590">2590</a>                 <em class="jxr_comment">// cmis:lastModifiedBy</em>
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.LAST_MODIFIED_BY, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2593" href="#2593">2593</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2594" href="#2594">2594</a> 
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>                 <em class="jxr_comment">// cmis:lastModificationDate</em>
<a class="jxr_linenumber" name="2596" href="#2596">2596</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.LAST_MODIFICATION_DATE, false, PropertyType.DATETIME,
<a class="jxr_linenumber" name="2597" href="#2597">2597</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2598" href="#2598">2598</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2599" href="#2599">2599</a> 
<a class="jxr_linenumber" name="2600" href="#2600">2600</a>                 <em class="jxr_comment">// cmis:changeToken</em>
<a class="jxr_linenumber" name="2601" href="#2601">2601</a>                 cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CHANGE_TOKEN, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2603" href="#2603">2603</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2604" href="#2604">2604</a> 
<a class="jxr_linenumber" name="2605" href="#2605">2605</a>                 <em class="jxr_comment">// CMIS 1.1 properties</em>
<a class="jxr_linenumber" name="2606" href="#2606">2606</a>                 <strong class="jxr_keyword">if</strong> (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_1) {
<a class="jxr_linenumber" name="2607" href="#2607">2607</a>                     <em class="jxr_comment">// cmis:description</em>
<a class="jxr_linenumber" name="2608" href="#2608">2608</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.DESCRIPTION, <strong class="jxr_keyword">null</strong>, PropertyType.STRING,
<a class="jxr_linenumber" name="2609" href="#2609">2609</a>                             Cardinality.SINGLE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2610" href="#2610">2610</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2611" href="#2611">2611</a> 
<a class="jxr_linenumber" name="2612" href="#2612">2612</a>                     <em class="jxr_comment">// cmis:secondaryObjectTypeIds</em>
<a class="jxr_linenumber" name="2613" href="#2613">2613</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, false, PropertyType.ID,
<a class="jxr_linenumber" name="2614" href="#2614">2614</a>                             Cardinality.MULTI, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, false);
<a class="jxr_linenumber" name="2615" href="#2615">2615</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2616" href="#2616">2616</a> 
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>                     <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2618" href="#2618">2618</a>                         <em class="jxr_comment">// cmis:isPrivateWorkingCopy</em>
<a class="jxr_linenumber" name="2619" href="#2619">2619</a>                         cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_PRIVATE_WORKING_COPY, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2620" href="#2620">2620</a>                                 PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2621" href="#2621">2621</a>                         addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2622" href="#2622">2622</a>                     }
<a class="jxr_linenumber" name="2623" href="#2623">2623</a>                 }
<a class="jxr_linenumber" name="2624" href="#2624">2624</a> 
<a class="jxr_linenumber" name="2625" href="#2625">2625</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2626" href="#2626">2626</a>                     <em class="jxr_comment">// cmis:isImmutable</em>
<a class="jxr_linenumber" name="2627" href="#2627">2627</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_IMMUTABLE, false, PropertyType.BOOLEAN,
<a class="jxr_linenumber" name="2628" href="#2628">2628</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2629" href="#2629">2629</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2630" href="#2630">2630</a> 
<a class="jxr_linenumber" name="2631" href="#2631">2631</a>                     <em class="jxr_comment">// cmis:isLatestVersion</em>
<a class="jxr_linenumber" name="2632" href="#2632">2632</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_LATEST_VERSION, false, PropertyType.BOOLEAN,
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2634" href="#2634">2634</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2635" href="#2635">2635</a> 
<a class="jxr_linenumber" name="2636" href="#2636">2636</a>                     <em class="jxr_comment">// cmis:isMajorVersion</em>
<a class="jxr_linenumber" name="2637" href="#2637">2637</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_MAJOR_VERSION, false, PropertyType.BOOLEAN,
<a class="jxr_linenumber" name="2638" href="#2638">2638</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2639" href="#2639">2639</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2640" href="#2640">2640</a> 
<a class="jxr_linenumber" name="2641" href="#2641">2641</a>                     <em class="jxr_comment">// cmis:isLatestMajorVersion</em>
<a class="jxr_linenumber" name="2642" href="#2642">2642</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_LATEST_MAJOR_VERSION, false, PropertyType.BOOLEAN,
<a class="jxr_linenumber" name="2643" href="#2643">2643</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2644" href="#2644">2644</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2645" href="#2645">2645</a> 
<a class="jxr_linenumber" name="2646" href="#2646">2646</a>                     <em class="jxr_comment">// cmis:versionLabel</em>
<a class="jxr_linenumber" name="2647" href="#2647">2647</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.VERSION_LABEL, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2648" href="#2648">2648</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2649" href="#2649">2649</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2650" href="#2650">2650</a> 
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>                     <em class="jxr_comment">// cmis:versionSeriesId</em>
<a class="jxr_linenumber" name="2652" href="#2652">2652</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.VERSION_SERIES_ID, false, PropertyType.ID,
<a class="jxr_linenumber" name="2653" href="#2653">2653</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2654" href="#2654">2654</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2655" href="#2655">2655</a> 
<a class="jxr_linenumber" name="2656" href="#2656">2656</a>                     <em class="jxr_comment">// cmis:isVersionSeriesCheckedOut</em>
<a class="jxr_linenumber" name="2657" href="#2657">2657</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT, false,
<a class="jxr_linenumber" name="2658" href="#2658">2658</a>                             PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2659" href="#2659">2659</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2660" href="#2660">2660</a> 
<a class="jxr_linenumber" name="2661" href="#2661">2661</a>                     <em class="jxr_comment">// cmis:versionSeriesCheckedOutBy</em>
<a class="jxr_linenumber" name="2662" href="#2662">2662</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY, false,
<a class="jxr_linenumber" name="2663" href="#2663">2663</a>                             PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2664" href="#2664">2664</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2665" href="#2665">2665</a> 
<a class="jxr_linenumber" name="2666" href="#2666">2666</a>                     <em class="jxr_comment">// cmis:versionSeriesCheckedOutId</em>
<a class="jxr_linenumber" name="2667" href="#2667">2667</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID, false, PropertyType.ID,
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2669" href="#2669">2669</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2670" href="#2670">2670</a> 
<a class="jxr_linenumber" name="2671" href="#2671">2671</a>                     <em class="jxr_comment">// cmis:checkinComment</em>
<a class="jxr_linenumber" name="2672" href="#2672">2672</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CHECKIN_COMMENT, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2673" href="#2673">2673</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2674" href="#2674">2674</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2675" href="#2675">2675</a> 
<a class="jxr_linenumber" name="2676" href="#2676">2676</a>                     <em class="jxr_comment">// cmis:contentStreamLength</em>
<a class="jxr_linenumber" name="2677" href="#2677">2677</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CONTENT_STREAM_LENGTH, false, PropertyType.INTEGER,
<a class="jxr_linenumber" name="2678" href="#2678">2678</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2679" href="#2679">2679</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2680" href="#2680">2680</a> 
<a class="jxr_linenumber" name="2681" href="#2681">2681</a>                     <em class="jxr_comment">// cmis:contentStreamMimeType</em>
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CONTENT_STREAM_MIME_TYPE, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2683" href="#2683">2683</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2684" href="#2684">2684</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2685" href="#2685">2685</a> 
<a class="jxr_linenumber" name="2686" href="#2686">2686</a>                     <em class="jxr_comment">// cmis:contentStreamFileName</em>
<a class="jxr_linenumber" name="2687" href="#2687">2687</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CONTENT_STREAM_FILE_NAME, false, PropertyType.STRING,
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2690" href="#2690">2690</a> 
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>                     <em class="jxr_comment">// cmis:contentStreamId</em>
<a class="jxr_linenumber" name="2692" href="#2692">2692</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.CONTENT_STREAM_ID, false, PropertyType.ID,
<a class="jxr_linenumber" name="2693" href="#2693">2693</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2694" href="#2694">2694</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2696" href="#2696">2696</a>                     <em class="jxr_comment">// cmis:parentId</em>
<a class="jxr_linenumber" name="2697" href="#2697">2697</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.PARENT_ID, false, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2698" href="#2698">2698</a>                             Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2699" href="#2699">2699</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2700" href="#2700">2700</a> 
<a class="jxr_linenumber" name="2701" href="#2701">2701</a>                     <em class="jxr_comment">// cmis:path</em>
<a class="jxr_linenumber" name="2702" href="#2702">2702</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.PATH, false, PropertyType.STRING, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2703" href="#2703">2703</a>                             Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2704" href="#2704">2704</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2705" href="#2705">2705</a> 
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>                     <em class="jxr_comment">// cmis:allowedChildObjectTypeIds</em>
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS, false, PropertyType.ID,
<a class="jxr_linenumber" name="2708" href="#2708">2708</a>                             Cardinality.MULTI, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, false);
<a class="jxr_linenumber" name="2709" href="#2709">2709</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2710" href="#2710">2710</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2711" href="#2711">2711</a>                     <em class="jxr_comment">// cmis:sourceId</em>
<a class="jxr_linenumber" name="2712" href="#2712">2712</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.SOURCE_ID, <strong class="jxr_keyword">true</strong>, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2713" href="#2713">2713</a>                             <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2714" href="#2714">2714</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2715" href="#2715">2715</a> 
<a class="jxr_linenumber" name="2716" href="#2716">2716</a>                     <em class="jxr_comment">// cmis:targetId</em>
<a class="jxr_linenumber" name="2717" href="#2717">2717</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.TARGET_ID, <strong class="jxr_keyword">true</strong>, PropertyType.ID, Cardinality.SINGLE,
<a class="jxr_linenumber" name="2718" href="#2718">2718</a>                             <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2719" href="#2719">2719</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2720" href="#2720">2720</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>                     <em class="jxr_comment">// cmis:policyText</em>
<a class="jxr_linenumber" name="2722" href="#2722">2722</a>                     cpd = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(PropertyIds.POLICY_TEXT, <strong class="jxr_keyword">null</strong>, PropertyType.STRING,
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>                             Cardinality.SINGLE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2724" href="#2724">2724</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2725" href="#2725">2725</a>                 }
<a class="jxr_linenumber" name="2726" href="#2726">2726</a>             }
<a class="jxr_linenumber" name="2727" href="#2727">2727</a>         }
<a class="jxr_linenumber" name="2728" href="#2728">2728</a> 
<a class="jxr_linenumber" name="2729" href="#2729">2729</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2730" href="#2730">2730</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2731" href="#2731">2731</a> 
<a class="jxr_linenumber" name="2732" href="#2732">2732</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="2733" href="#2733">2733</a>     }
<a class="jxr_linenumber" name="2734" href="#2734">2734</a> 
<a class="jxr_linenumber" name="2735" href="#2735">2735</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> checkPropertyDefinition(PropertyDefinition&lt;?&gt; propDef, String message) {
<a class="jxr_linenumber" name="2736" href="#2736">2736</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2737" href="#2737">2737</a> 
<a class="jxr_linenumber" name="2738" href="#2738">2738</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2739" href="#2739">2739</a> 
<a class="jxr_linenumber" name="2740" href="#2740">2740</a>         f = createResult(FAILURE, <span class="jxr_string">"Property definition is null!"</span>);
<a class="jxr_linenumber" name="2741" href="#2741">2741</a>         addResult(results, assertNotNull(propDef, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2742" href="#2742">2742</a> 
<a class="jxr_linenumber" name="2743" href="#2743">2743</a>         <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2744" href="#2744">2744</a>             f = createResult(FAILURE, <span class="jxr_string">"Property ID is not set!"</span>);
<a class="jxr_linenumber" name="2745" href="#2745">2745</a>             addResult(results, assertStringNotEmpty(propDef.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2746" href="#2746">2746</a> 
<a class="jxr_linenumber" name="2747" href="#2747">2747</a>             f = createResult(WARNING, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="2748" href="#2748">2748</a>             addResult(results, assertStringNotEmpty(propDef.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2749" href="#2749">2749</a> 
<a class="jxr_linenumber" name="2750" href="#2750">2750</a>             <em class="jxr_comment">// f = createResult(WARNING, "Local namespace is not set!");</em>
<a class="jxr_linenumber" name="2751" href="#2751">2751</a>             <em class="jxr_comment">// addResult(results,</em>
<a class="jxr_linenumber" name="2752" href="#2752">2752</a>             <em class="jxr_comment">// assertStringNotEmpty(propDef.getLocalNamespace(), null, f));</em>
<a class="jxr_linenumber" name="2753" href="#2753">2753</a> 
<a class="jxr_linenumber" name="2754" href="#2754">2754</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name is not set!"</span>);
<a class="jxr_linenumber" name="2755" href="#2755">2755</a>             addResult(results, assertStringNotEmpty(propDef.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2756" href="#2756">2756</a> 
<a class="jxr_linenumber" name="2757" href="#2757">2757</a>             f = createResult(WARNING, <span class="jxr_string">"Display name is not set!"</span>);
<a class="jxr_linenumber" name="2758" href="#2758">2758</a>             addResult(results, assertStringNotEmpty(propDef.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2759" href="#2759">2759</a> 
<a class="jxr_linenumber" name="2760" href="#2760">2760</a>             f = createResult(WARNING, <span class="jxr_string">"Description is not set!"</span>);
<a class="jxr_linenumber" name="2761" href="#2761">2761</a>             addResult(results, assertStringNotEmpty(propDef.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2762" href="#2762">2762</a> 
<a class="jxr_linenumber" name="2763" href="#2763">2763</a>             f = createResult(FAILURE, <span class="jxr_string">"Property type is not set!"</span>);
<a class="jxr_linenumber" name="2764" href="#2764">2764</a>             addResult(results, assertNotNull(propDef.getPropertyType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2765" href="#2765">2765</a> 
<a class="jxr_linenumber" name="2766" href="#2766">2766</a>             f = createResult(FAILURE, <span class="jxr_string">"Cardinality is not set!"</span>);
<a class="jxr_linenumber" name="2767" href="#2767">2767</a>             addResult(results, assertNotNull(propDef.getCardinality(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2768" href="#2768">2768</a> 
<a class="jxr_linenumber" name="2769" href="#2769">2769</a>             f = createResult(FAILURE, <span class="jxr_string">"Updatability is not set!"</span>);
<a class="jxr_linenumber" name="2770" href="#2770">2770</a>             addResult(results, assertNotNull(propDef.getUpdatability(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2771" href="#2771">2771</a> 
<a class="jxr_linenumber" name="2772" href="#2772">2772</a>             f = createResult(FAILURE, <span class="jxr_string">"Inherited flag is not set!"</span>);
<a class="jxr_linenumber" name="2773" href="#2773">2773</a>             addResult(results, assertNotNull(propDef.isInherited(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2774" href="#2774">2774</a> 
<a class="jxr_linenumber" name="2775" href="#2775">2775</a>             f = createResult(FAILURE, <span class="jxr_string">"Required flag is not set!"</span>);
<a class="jxr_linenumber" name="2776" href="#2776">2776</a>             addResult(results, assertNotNull(propDef.isRequired(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2777" href="#2777">2777</a> 
<a class="jxr_linenumber" name="2778" href="#2778">2778</a>             f = createResult(FAILURE, <span class="jxr_string">"Queryable flag is not set!"</span>);
<a class="jxr_linenumber" name="2779" href="#2779">2779</a>             addResult(results, assertNotNull(propDef.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2780" href="#2780">2780</a> 
<a class="jxr_linenumber" name="2781" href="#2781">2781</a>             f = createResult(FAILURE, <span class="jxr_string">"Orderable flag is not set!"</span>);
<a class="jxr_linenumber" name="2782" href="#2782">2782</a>             addResult(results, assertNotNull(propDef.isOrderable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2783" href="#2783">2783</a>         }
<a class="jxr_linenumber" name="2784" href="#2784">2784</a> 
<a class="jxr_linenumber" name="2785" href="#2785">2785</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2786" href="#2786">2786</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2787" href="#2787">2787</a> 
<a class="jxr_linenumber" name="2788" href="#2788">2788</a>         <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="2789" href="#2789">2789</a>     }
<a class="jxr_linenumber" name="2790" href="#2790">2790</a> 
<a class="jxr_linenumber" name="2791" href="#2791">2791</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(TypeDefinition expected, TypeDefinition actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="2792" href="#2792">2792</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2793" href="#2793">2793</a> 
<a class="jxr_linenumber" name="2794" href="#2794">2794</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2795" href="#2795">2795</a> 
<a class="jxr_linenumber" name="2796" href="#2796">2796</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2797" href="#2797">2797</a> 
<a class="jxr_linenumber" name="2798" href="#2798">2798</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2799" href="#2799">2799</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2800" href="#2800">2800</a>         }
<a class="jxr_linenumber" name="2801" href="#2801">2801</a> 
<a class="jxr_linenumber" name="2802" href="#2802">2802</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2803" href="#2803">2803</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected type defintion is null, but actual type defintion is not!"</span>);
<a class="jxr_linenumber" name="2804" href="#2804">2804</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2805" href="#2805">2805</a> 
<a class="jxr_linenumber" name="2806" href="#2806">2806</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2807" href="#2807">2807</a>         }
<a class="jxr_linenumber" name="2808" href="#2808">2808</a> 
<a class="jxr_linenumber" name="2809" href="#2809">2809</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2810" href="#2810">2810</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual type defintion is null, but expected type defintion is not!"</span>);
<a class="jxr_linenumber" name="2811" href="#2811">2811</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2812" href="#2812">2812</a> 
<a class="jxr_linenumber" name="2813" href="#2813">2813</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2814" href="#2814">2814</a>         }
<a class="jxr_linenumber" name="2815" href="#2815">2815</a> 
<a class="jxr_linenumber" name="2816" href="#2816">2816</a>         f = createResult(FAILURE, <span class="jxr_string">"Type IDs don't match!"</span>);
<a class="jxr_linenumber" name="2817" href="#2817">2817</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2818" href="#2818">2818</a> 
<a class="jxr_linenumber" name="2819" href="#2819">2819</a>         f = createResult(FAILURE, <span class="jxr_string">"Base type IDs don't match!"</span>);
<a class="jxr_linenumber" name="2820" href="#2820">2820</a>         addResult(results, assertEquals(expected.getBaseTypeId(), actual.getBaseTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2821" href="#2821">2821</a> 
<a class="jxr_linenumber" name="2822" href="#2822">2822</a>         f = createResult(FAILURE, <span class="jxr_string">"Parent type IDs don't match!"</span>);
<a class="jxr_linenumber" name="2823" href="#2823">2823</a>         addResult(results, assertEquals(expected.getParentTypeId(), actual.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2824" href="#2824">2824</a> 
<a class="jxr_linenumber" name="2825" href="#2825">2825</a>         f = createResult(FAILURE, <span class="jxr_string">"Query names don't match!"</span>);
<a class="jxr_linenumber" name="2826" href="#2826">2826</a>         addResult(results, assertEquals(expected.getQueryName(), actual.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2827" href="#2827">2827</a> 
<a class="jxr_linenumber" name="2828" href="#2828">2828</a>         f = createResult(FAILURE, <span class="jxr_string">"Local names don't match!"</span>);
<a class="jxr_linenumber" name="2829" href="#2829">2829</a>         addResult(results, assertEquals(expected.getLocalName(), actual.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2830" href="#2830">2830</a> 
<a class="jxr_linenumber" name="2831" href="#2831">2831</a>         f = createResult(FAILURE, <span class="jxr_string">"Local namespaces don't match!"</span>);
<a class="jxr_linenumber" name="2832" href="#2832">2832</a>         addResult(results, assertEquals(expected.getLocalNamespace(), actual.getLocalNamespace(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2833" href="#2833">2833</a> 
<a class="jxr_linenumber" name="2834" href="#2834">2834</a>         f = createResult(FAILURE, <span class="jxr_string">"Display names don't match!"</span>);
<a class="jxr_linenumber" name="2835" href="#2835">2835</a>         addResult(results, assertEquals(expected.getDisplayName(), actual.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2836" href="#2836">2836</a> 
<a class="jxr_linenumber" name="2837" href="#2837">2837</a>         f = createResult(FAILURE, <span class="jxr_string">"Descriptions don't match!"</span>);
<a class="jxr_linenumber" name="2838" href="#2838">2838</a>         addResult(results, assertEquals(expected.getDescription(), actual.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2839" href="#2839">2839</a> 
<a class="jxr_linenumber" name="2840" href="#2840">2840</a>         f = createResult(FAILURE, <span class="jxr_string">"Controllable ACl flags don't match!"</span>);
<a class="jxr_linenumber" name="2841" href="#2841">2841</a>         addResult(results, assertEquals(expected.isControllableAcl(), actual.isControllableAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2842" href="#2842">2842</a> 
<a class="jxr_linenumber" name="2843" href="#2843">2843</a>         f = createResult(FAILURE, <span class="jxr_string">"Controllable Policy flags don't match!"</span>);
<a class="jxr_linenumber" name="2844" href="#2844">2844</a>         addResult(results, assertEquals(expected.isControllablePolicy(), actual.isControllablePolicy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2845" href="#2845">2845</a> 
<a class="jxr_linenumber" name="2846" href="#2846">2846</a>         f = createResult(FAILURE, <span class="jxr_string">"Creatable flags don't match!"</span>);
<a class="jxr_linenumber" name="2847" href="#2847">2847</a>         addResult(results, assertEquals(expected.isCreatable(), actual.isCreatable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2848" href="#2848">2848</a> 
<a class="jxr_linenumber" name="2849" href="#2849">2849</a>         f = createResult(FAILURE, <span class="jxr_string">"Fileable flags don't match!"</span>);
<a class="jxr_linenumber" name="2850" href="#2850">2850</a>         addResult(results, assertEquals(expected.isFileable(), actual.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2851" href="#2851">2851</a> 
<a class="jxr_linenumber" name="2852" href="#2852">2852</a>         f = createResult(FAILURE, <span class="jxr_string">"Fulltext indexed flags don't match!"</span>);
<a class="jxr_linenumber" name="2853" href="#2853">2853</a>         addResult(results, assertEquals(expected.isFulltextIndexed(), actual.isFulltextIndexed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2854" href="#2854">2854</a> 
<a class="jxr_linenumber" name="2855" href="#2855">2855</a>         f = createResult(FAILURE, <span class="jxr_string">"Queryable flags don't match!"</span>);
<a class="jxr_linenumber" name="2856" href="#2856">2856</a>         addResult(results, assertEquals(expected.isQueryable(), actual.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2857" href="#2857">2857</a> 
<a class="jxr_linenumber" name="2858" href="#2858">2858</a>         f = createResult(FAILURE, <span class="jxr_string">"Included in supertype query flags don't match!"</span>);
<a class="jxr_linenumber" name="2859" href="#2859">2859</a>         addResult(results,
<a class="jxr_linenumber" name="2860" href="#2860">2860</a>                 assertEquals(expected.isIncludedInSupertypeQuery(), actual.isIncludedInSupertypeQuery(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2861" href="#2861">2861</a> 
<a class="jxr_linenumber" name="2862" href="#2862">2862</a>         <strong class="jxr_keyword">if</strong> (expected.getTypeMutability() != <strong class="jxr_keyword">null</strong> &amp;&amp; actual.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2863" href="#2863">2863</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: Create flags don't match!"</span>);
<a class="jxr_linenumber" name="2864" href="#2864">2864</a>             addResult(
<a class="jxr_linenumber" name="2865" href="#2865">2865</a>                     results,
<a class="jxr_linenumber" name="2866" href="#2866">2866</a>                     assertEquals(expected.getTypeMutability().canCreate(), actual.getTypeMutability().canCreate(),
<a class="jxr_linenumber" name="2867" href="#2867">2867</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2868" href="#2868">2868</a> 
<a class="jxr_linenumber" name="2869" href="#2869">2869</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: update flags don't match!"</span>);
<a class="jxr_linenumber" name="2870" href="#2870">2870</a>             addResult(
<a class="jxr_linenumber" name="2871" href="#2871">2871</a>                     results,
<a class="jxr_linenumber" name="2872" href="#2872">2872</a>                     assertEquals(expected.getTypeMutability().canUpdate(), actual.getTypeMutability().canUpdate(),
<a class="jxr_linenumber" name="2873" href="#2873">2873</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2874" href="#2874">2874</a> 
<a class="jxr_linenumber" name="2875" href="#2875">2875</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: delete flags don't match!"</span>);
<a class="jxr_linenumber" name="2876" href="#2876">2876</a>             addResult(
<a class="jxr_linenumber" name="2877" href="#2877">2877</a>                     results,
<a class="jxr_linenumber" name="2878" href="#2878">2878</a>                     assertEquals(expected.getTypeMutability().canDelete(), actual.getTypeMutability().canDelete(),
<a class="jxr_linenumber" name="2879" href="#2879">2879</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2880" href="#2880">2880</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2881" href="#2881">2881</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability infos don't match!"</span>);
<a class="jxr_linenumber" name="2882" href="#2882">2882</a>             addResult(results, assertEquals(expected.getTypeMutability(), actual.getTypeMutability(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2883" href="#2883">2883</a>         }
<a class="jxr_linenumber" name="2884" href="#2884">2884</a> 
<a class="jxr_linenumber" name="2885" href="#2885">2885</a>         <strong class="jxr_keyword">if</strong> ((expected.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2886" href="#2886">2886</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; epd = expected.getPropertyDefinitions();
<a class="jxr_linenumber" name="2887" href="#2887">2887</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; apd = actual.getPropertyDefinitions();
<a class="jxr_linenumber" name="2888" href="#2888">2888</a> 
<a class="jxr_linenumber" name="2889" href="#2889">2889</a>             f = createResult(FAILURE, <span class="jxr_string">"Different number of property defintions!"</span>);
<a class="jxr_linenumber" name="2890" href="#2890">2890</a>             addResult(results, assertEquals(epd.size(), apd.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2891" href="#2891">2891</a> 
<a class="jxr_linenumber" name="2892" href="#2892">2892</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; pd : epd.values()) {
<a class="jxr_linenumber" name="2893" href="#2893">2893</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property definition mismatch: "</span> + pd.getId());
<a class="jxr_linenumber" name="2894" href="#2894">2894</a>                 addResult(results, assertEquals(pd, apd.get(pd.getId()), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2895" href="#2895">2895</a>             }
<a class="jxr_linenumber" name="2896" href="#2896">2896</a>         }
<a class="jxr_linenumber" name="2897" href="#2897">2897</a> 
<a class="jxr_linenumber" name="2898" href="#2898">2898</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2899" href="#2899">2899</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2900" href="#2900">2900</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2901" href="#2901">2901</a>             }
<a class="jxr_linenumber" name="2902" href="#2902">2902</a> 
<a class="jxr_linenumber" name="2903" href="#2903">2903</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2904" href="#2904">2904</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2905" href="#2905">2905</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2906" href="#2906">2906</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2907" href="#2907">2907</a>             }
<a class="jxr_linenumber" name="2908" href="#2908">2908</a> 
<a class="jxr_linenumber" name="2909" href="#2909">2909</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2910" href="#2910">2910</a>         }
<a class="jxr_linenumber" name="2911" href="#2911">2911</a>     }
<a class="jxr_linenumber" name="2912" href="#2912">2912</a> 
<a class="jxr_linenumber" name="2913" href="#2913">2913</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(PropertyDefinition&lt;?&gt; expected, PropertyDefinition&lt;?&gt; actual,
<a class="jxr_linenumber" name="2914" href="#2914">2914</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2915" href="#2915">2915</a> 
<a class="jxr_linenumber" name="2916" href="#2916">2916</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2917" href="#2917">2917</a> 
<a class="jxr_linenumber" name="2918" href="#2918">2918</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2919" href="#2919">2919</a> 
<a class="jxr_linenumber" name="2920" href="#2920">2920</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2921" href="#2921">2921</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2922" href="#2922">2922</a>         }
<a class="jxr_linenumber" name="2923" href="#2923">2923</a> 
<a class="jxr_linenumber" name="2924" href="#2924">2924</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2925" href="#2925">2925</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected property defintion is null, but actual property defintion is not!"</span>);
<a class="jxr_linenumber" name="2926" href="#2926">2926</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2927" href="#2927">2927</a> 
<a class="jxr_linenumber" name="2928" href="#2928">2928</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2929" href="#2929">2929</a>         }
<a class="jxr_linenumber" name="2930" href="#2930">2930</a> 
<a class="jxr_linenumber" name="2931" href="#2931">2931</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2932" href="#2932">2932</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual property defintion is null, but expected property defintion is not!"</span>);
<a class="jxr_linenumber" name="2933" href="#2933">2933</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2934" href="#2934">2934</a> 
<a class="jxr_linenumber" name="2935" href="#2935">2935</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2936" href="#2936">2936</a>         }
<a class="jxr_linenumber" name="2937" href="#2937">2937</a> 
<a class="jxr_linenumber" name="2938" href="#2938">2938</a>         f = createResult(FAILURE, <span class="jxr_string">"Property IDs don't match!"</span>);
<a class="jxr_linenumber" name="2939" href="#2939">2939</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2940" href="#2940">2940</a> 
<a class="jxr_linenumber" name="2941" href="#2941">2941</a>         f = createResult(FAILURE, <span class="jxr_string">"Local names don't match!"</span>);
<a class="jxr_linenumber" name="2942" href="#2942">2942</a>         addResult(results, assertEquals(expected.getLocalName(), actual.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2943" href="#2943">2943</a> 
<a class="jxr_linenumber" name="2944" href="#2944">2944</a>         f = createResult(FAILURE, <span class="jxr_string">"Local namespaces don't match!"</span>);
<a class="jxr_linenumber" name="2945" href="#2945">2945</a>         addResult(results, assertEquals(expected.getLocalNamespace(), actual.getLocalNamespace(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2946" href="#2946">2946</a> 
<a class="jxr_linenumber" name="2947" href="#2947">2947</a>         f = createResult(FAILURE, <span class="jxr_string">"Display names don't match!"</span>);
<a class="jxr_linenumber" name="2948" href="#2948">2948</a>         addResult(results, assertEquals(expected.getDisplayName(), actual.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2949" href="#2949">2949</a> 
<a class="jxr_linenumber" name="2950" href="#2950">2950</a>         f = createResult(FAILURE, <span class="jxr_string">"Query names don't match!"</span>);
<a class="jxr_linenumber" name="2951" href="#2951">2951</a>         addResult(results, assertEquals(expected.getQueryName(), actual.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2952" href="#2952">2952</a> 
<a class="jxr_linenumber" name="2953" href="#2953">2953</a>         f = createResult(FAILURE, <span class="jxr_string">"Property types don't match!"</span>);
<a class="jxr_linenumber" name="2954" href="#2954">2954</a>         addResult(results, assertEquals(expected.getPropertyType(), actual.getPropertyType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2955" href="#2955">2955</a> 
<a class="jxr_linenumber" name="2956" href="#2956">2956</a>         f = createResult(FAILURE, <span class="jxr_string">"Cardinalities don't match!"</span>);
<a class="jxr_linenumber" name="2957" href="#2957">2957</a>         addResult(results, assertEquals(expected.getCardinality(), actual.getCardinality(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2958" href="#2958">2958</a> 
<a class="jxr_linenumber" name="2959" href="#2959">2959</a>         f = createResult(FAILURE, <span class="jxr_string">"Descriptions don't match!"</span>);
<a class="jxr_linenumber" name="2960" href="#2960">2960</a>         addResult(results, assertEquals(expected.getDescription(), actual.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2961" href="#2961">2961</a> 
<a class="jxr_linenumber" name="2962" href="#2962">2962</a>         f = createResult(FAILURE, <span class="jxr_string">"Updatability flags don't match!"</span>);
<a class="jxr_linenumber" name="2963" href="#2963">2963</a>         addResult(results, assertEquals(expected.getUpdatability(), actual.getUpdatability(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2964" href="#2964">2964</a> 
<a class="jxr_linenumber" name="2965" href="#2965">2965</a>         f = createResult(FAILURE, <span class="jxr_string">"Default values don't match!"</span>);
<a class="jxr_linenumber" name="2966" href="#2966">2966</a>         addResult(results, assertEqualLists(expected.getDefaultValue(), actual.getDefaultValue(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2967" href="#2967">2967</a> 
<a class="jxr_linenumber" name="2968" href="#2968">2968</a>         f = createResult(FAILURE, <span class="jxr_string">"Inherited flags don't match!"</span>);
<a class="jxr_linenumber" name="2969" href="#2969">2969</a>         addResult(results, assertEquals(expected.isInherited(), actual.isInherited(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2970" href="#2970">2970</a> 
<a class="jxr_linenumber" name="2971" href="#2971">2971</a>         f = createResult(FAILURE, <span class="jxr_string">"Required flags don't match!"</span>);
<a class="jxr_linenumber" name="2972" href="#2972">2972</a>         addResult(results, assertEquals(expected.isRequired(), actual.isRequired(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2973" href="#2973">2973</a> 
<a class="jxr_linenumber" name="2974" href="#2974">2974</a>         f = createResult(FAILURE, <span class="jxr_string">"Queryable flags don't match!"</span>);
<a class="jxr_linenumber" name="2975" href="#2975">2975</a>         addResult(results, assertEquals(expected.isQueryable(), actual.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2976" href="#2976">2976</a> 
<a class="jxr_linenumber" name="2977" href="#2977">2977</a>         f = createResult(FAILURE, <span class="jxr_string">"Orderable flags don't match!"</span>);
<a class="jxr_linenumber" name="2978" href="#2978">2978</a>         addResult(results, assertEquals(expected.isOrderable(), actual.isOrderable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2979" href="#2979">2979</a> 
<a class="jxr_linenumber" name="2980" href="#2980">2980</a>         f = createResult(FAILURE, <span class="jxr_string">"Open choice flags don't match!"</span>);
<a class="jxr_linenumber" name="2981" href="#2981">2981</a>         addResult(results, assertEquals(expected.isOpenChoice(), actual.isOpenChoice(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2982" href="#2982">2982</a> 
<a class="jxr_linenumber" name="2983" href="#2983">2983</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2984" href="#2984">2984</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2985" href="#2985">2985</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2986" href="#2986">2986</a>             }
<a class="jxr_linenumber" name="2987" href="#2987">2987</a> 
<a class="jxr_linenumber" name="2988" href="#2988">2988</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2989" href="#2989">2989</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2990" href="#2990">2990</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2991" href="#2991">2991</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2992" href="#2992">2992</a>             }
<a class="jxr_linenumber" name="2993" href="#2993">2993</a> 
<a class="jxr_linenumber" name="2994" href="#2994">2994</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2995" href="#2995">2995</a>         }
<a class="jxr_linenumber" name="2996" href="#2996">2996</a>     }
<a class="jxr_linenumber" name="2997" href="#2997">2997</a> 
<a class="jxr_linenumber" name="2998" href="#2998">2998</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(CmisObject expected, CmisObject actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="2999" href="#2999">2999</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure, <strong class="jxr_keyword">boolean</strong> checkAcls, <strong class="jxr_keyword">boolean</strong> checkPolicies) {
<a class="jxr_linenumber" name="3000" href="#3000">3000</a> 
<a class="jxr_linenumber" name="3001" href="#3001">3001</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3002" href="#3002">3002</a> 
<a class="jxr_linenumber" name="3003" href="#3003">3003</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3004" href="#3004">3004</a> 
<a class="jxr_linenumber" name="3005" href="#3005">3005</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3006" href="#3006">3006</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3007" href="#3007">3007</a>         }
<a class="jxr_linenumber" name="3008" href="#3008">3008</a> 
<a class="jxr_linenumber" name="3009" href="#3009">3009</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3010" href="#3010">3010</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected object is null, but actual object is not!"</span>);
<a class="jxr_linenumber" name="3011" href="#3011">3011</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3012" href="#3012">3012</a> 
<a class="jxr_linenumber" name="3013" href="#3013">3013</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3014" href="#3014">3014</a>         }
<a class="jxr_linenumber" name="3015" href="#3015">3015</a> 
<a class="jxr_linenumber" name="3016" href="#3016">3016</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3017" href="#3017">3017</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="3018" href="#3018">3018</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3019" href="#3019">3019</a> 
<a class="jxr_linenumber" name="3020" href="#3020">3020</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3021" href="#3021">3021</a>         }
<a class="jxr_linenumber" name="3022" href="#3022">3022</a> 
<a class="jxr_linenumber" name="3023" href="#3023">3023</a>         <strong class="jxr_keyword">if</strong> (expected.getProperties().size() != actual.getProperties().size()) {
<a class="jxr_linenumber" name="3024" href="#3024">3024</a>             f = createResult(FAILURE, <span class="jxr_string">"Number of properties don't match"</span>);
<a class="jxr_linenumber" name="3025" href="#3025">3025</a>             addResult(results, assertEquals(expected.getProperties().size(), actual.getProperties().size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3026" href="#3026">3026</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3027" href="#3027">3027</a>             <strong class="jxr_keyword">for</strong> (Property&lt;?&gt; expectedProperty : expected.getProperties()) {
<a class="jxr_linenumber" name="3028" href="#3028">3028</a>                 Property&lt;?&gt; actualProperty = actual.getProperty(expectedProperty.getId());
<a class="jxr_linenumber" name="3029" href="#3029">3029</a> 
<a class="jxr_linenumber" name="3030" href="#3030">3030</a>                 f = createResult(FAILURE, <span class="jxr_string">"Properties don't match! Property: "</span> + expectedProperty.getId());
<a class="jxr_linenumber" name="3031" href="#3031">3031</a>                 addResult(results, assertEquals(expectedProperty, actualProperty, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3032" href="#3032">3032</a>             }
<a class="jxr_linenumber" name="3033" href="#3033">3033</a>         }
<a class="jxr_linenumber" name="3034" href="#3034">3034</a> 
<a class="jxr_linenumber" name="3035" href="#3035">3035</a>         f = createResult(FAILURE, <span class="jxr_string">"Allowable actions don't match!"</span>);
<a class="jxr_linenumber" name="3036" href="#3036">3036</a>         addResult(results, assertEquals(expected.getAllowableActions(), actual.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3037" href="#3037">3037</a> 
<a class="jxr_linenumber" name="3038" href="#3038">3038</a>         <strong class="jxr_keyword">if</strong> (checkAcls) {
<a class="jxr_linenumber" name="3039" href="#3039">3039</a>             f = createResult(FAILURE, <span class="jxr_string">"ACLs don't match!"</span>);
<a class="jxr_linenumber" name="3040" href="#3040">3040</a>             addResult(results, assertEquals(expected.getAcl(), actual.getAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3041" href="#3041">3041</a>         }
<a class="jxr_linenumber" name="3042" href="#3042">3042</a> 
<a class="jxr_linenumber" name="3043" href="#3043">3043</a>         <strong class="jxr_keyword">if</strong> (checkPolicies) {
<a class="jxr_linenumber" name="3044" href="#3044">3044</a>             f = createResult(FAILURE, <span class="jxr_string">"Policies don't match!"</span>);
<a class="jxr_linenumber" name="3045" href="#3045">3045</a>             addResult(results, assertEqualObjectList(expected.getPolicies(), actual.getPolicies(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3046" href="#3046">3046</a>         }
<a class="jxr_linenumber" name="3047" href="#3047">3047</a> 
<a class="jxr_linenumber" name="3048" href="#3048">3048</a>         f = createResult(FAILURE, <span class="jxr_string">"Relationships don't match!"</span>);
<a class="jxr_linenumber" name="3049" href="#3049">3049</a>         addResult(results, assertEqualObjectList(expected.getRelationships(), actual.getRelationships(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3050" href="#3050">3050</a> 
<a class="jxr_linenumber" name="3051" href="#3051">3051</a>         f = createResult(FAILURE, <span class="jxr_string">"Renditions don't match!"</span>);
<a class="jxr_linenumber" name="3052" href="#3052">3052</a>         addResult(results, assertEqualRenditionLists(expected.getRenditions(), actual.getRenditions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3053" href="#3053">3053</a> 
<a class="jxr_linenumber" name="3054" href="#3054">3054</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3055" href="#3055">3055</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3056" href="#3056">3056</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3057" href="#3057">3057</a>             }
<a class="jxr_linenumber" name="3058" href="#3058">3058</a> 
<a class="jxr_linenumber" name="3059" href="#3059">3059</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3060" href="#3060">3060</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3061" href="#3061">3061</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3062" href="#3062">3062</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3063" href="#3063">3063</a>             }
<a class="jxr_linenumber" name="3064" href="#3064">3064</a> 
<a class="jxr_linenumber" name="3065" href="#3065">3065</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3066" href="#3066">3066</a>         }
<a class="jxr_linenumber" name="3067" href="#3067">3067</a>     }
<a class="jxr_linenumber" name="3068" href="#3068">3068</a> 
<a class="jxr_linenumber" name="3069" href="#3069">3069</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEqualObjectList(List&lt;? <strong class="jxr_keyword">extends</strong> CmisObject&gt; expected,
<a class="jxr_linenumber" name="3070" href="#3070">3070</a>             List&lt;? <strong class="jxr_keyword">extends</strong> CmisObject&gt; actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3071" href="#3071">3071</a> 
<a class="jxr_linenumber" name="3072" href="#3072">3072</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3073" href="#3073">3073</a> 
<a class="jxr_linenumber" name="3074" href="#3074">3074</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3075" href="#3075">3075</a> 
<a class="jxr_linenumber" name="3076" href="#3076">3076</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3077" href="#3077">3077</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3078" href="#3078">3078</a>         }
<a class="jxr_linenumber" name="3079" href="#3079">3079</a> 
<a class="jxr_linenumber" name="3080" href="#3080">3080</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3081" href="#3081">3081</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected list of CMIS objects is null, but actual list of CMIS objects is not!"</span>);
<a class="jxr_linenumber" name="3082" href="#3082">3082</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3083" href="#3083">3083</a> 
<a class="jxr_linenumber" name="3084" href="#3084">3084</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3085" href="#3085">3085</a>         }
<a class="jxr_linenumber" name="3086" href="#3086">3086</a> 
<a class="jxr_linenumber" name="3087" href="#3087">3087</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3088" href="#3088">3088</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual list of CMIS objects is null, but expected list of CMIS objects is not!"</span>);
<a class="jxr_linenumber" name="3089" href="#3089">3089</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3090" href="#3090">3090</a> 
<a class="jxr_linenumber" name="3091" href="#3091">3091</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3092" href="#3092">3092</a>         }
<a class="jxr_linenumber" name="3093" href="#3093">3093</a> 
<a class="jxr_linenumber" name="3094" href="#3094">3094</a>         <strong class="jxr_keyword">if</strong> (expected.size() != actual.size()) {
<a class="jxr_linenumber" name="3095" href="#3095">3095</a>             addResult(
<a class="jxr_linenumber" name="3096" href="#3096">3096</a>                     results,
<a class="jxr_linenumber" name="3097" href="#3097">3097</a>                     createResult(
<a class="jxr_linenumber" name="3098" href="#3098">3098</a>                             CmisTestResultStatus.INFO,
<a class="jxr_linenumber" name="3099" href="#3099">3099</a>                             <span class="jxr_string">"Object list sizes don't match! expected: "</span> + expected.size() + <span class="jxr_string">" / actual: "</span>
<a class="jxr_linenumber" name="3100" href="#3100">3100</a>                                     + actual.size()));
<a class="jxr_linenumber" name="3101" href="#3101">3101</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3102" href="#3102">3102</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; expected.size(); i++) {
<a class="jxr_linenumber" name="3103" href="#3103">3103</a>                 f = createResult(FAILURE, <span class="jxr_string">"Objects at position "</span> + i + <span class="jxr_string">"  dont't match!"</span>);
<a class="jxr_linenumber" name="3104" href="#3104">3104</a>                 addResult(results, assertEquals(expected.get(i), actual.get(i), <strong class="jxr_keyword">null</strong>, f, <strong class="jxr_keyword">true</strong>, false));
<a class="jxr_linenumber" name="3105" href="#3105">3105</a>             }
<a class="jxr_linenumber" name="3106" href="#3106">3106</a>         }
<a class="jxr_linenumber" name="3107" href="#3107">3107</a> 
<a class="jxr_linenumber" name="3108" href="#3108">3108</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3109" href="#3109">3109</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3110" href="#3110">3110</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3111" href="#3111">3111</a>             }
<a class="jxr_linenumber" name="3112" href="#3112">3112</a> 
<a class="jxr_linenumber" name="3113" href="#3113">3113</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3114" href="#3114">3114</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3115" href="#3115">3115</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3116" href="#3116">3116</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3117" href="#3117">3117</a>             }
<a class="jxr_linenumber" name="3118" href="#3118">3118</a> 
<a class="jxr_linenumber" name="3119" href="#3119">3119</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3120" href="#3120">3120</a>         }
<a class="jxr_linenumber" name="3121" href="#3121">3121</a>     }
<a class="jxr_linenumber" name="3122" href="#3122">3122</a> 
<a class="jxr_linenumber" name="3123" href="#3123">3123</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(Property&lt;?&gt; expected, Property&lt;?&gt; actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="3124" href="#3124">3124</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3125" href="#3125">3125</a> 
<a class="jxr_linenumber" name="3126" href="#3126">3126</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3127" href="#3127">3127</a> 
<a class="jxr_linenumber" name="3128" href="#3128">3128</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3129" href="#3129">3129</a> 
<a class="jxr_linenumber" name="3130" href="#3130">3130</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3131" href="#3131">3131</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3132" href="#3132">3132</a>         }
<a class="jxr_linenumber" name="3133" href="#3133">3133</a> 
<a class="jxr_linenumber" name="3134" href="#3134">3134</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3135" href="#3135">3135</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected property is null, but actual property is not!"</span>);
<a class="jxr_linenumber" name="3136" href="#3136">3136</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3137" href="#3137">3137</a> 
<a class="jxr_linenumber" name="3138" href="#3138">3138</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3139" href="#3139">3139</a>         }
<a class="jxr_linenumber" name="3140" href="#3140">3140</a> 
<a class="jxr_linenumber" name="3141" href="#3141">3141</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3142" href="#3142">3142</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual property is null, but expected property is not!"</span>);
<a class="jxr_linenumber" name="3143" href="#3143">3143</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3144" href="#3144">3144</a> 
<a class="jxr_linenumber" name="3145" href="#3145">3145</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3146" href="#3146">3146</a>         }
<a class="jxr_linenumber" name="3147" href="#3147">3147</a> 
<a class="jxr_linenumber" name="3148" href="#3148">3148</a>         f = createResult(FAILURE, <span class="jxr_string">"Property definitions don't match!"</span>);
<a class="jxr_linenumber" name="3149" href="#3149">3149</a>         addResult(results, assertEquals(expected.getDefinition(), actual.getDefinition(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3150" href="#3150">3150</a> 
<a class="jxr_linenumber" name="3151" href="#3151">3151</a>         f = createResult(FAILURE, <span class="jxr_string">"Property values don't match!"</span>);
<a class="jxr_linenumber" name="3152" href="#3152">3152</a>         addResult(results, assertEqualLists(expected.getValues(), actual.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3153" href="#3153">3153</a> 
<a class="jxr_linenumber" name="3154" href="#3154">3154</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3155" href="#3155">3155</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3156" href="#3156">3156</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3157" href="#3157">3157</a>             }
<a class="jxr_linenumber" name="3158" href="#3158">3158</a> 
<a class="jxr_linenumber" name="3159" href="#3159">3159</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3160" href="#3160">3160</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3161" href="#3161">3161</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3162" href="#3162">3162</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3163" href="#3163">3163</a>             }
<a class="jxr_linenumber" name="3164" href="#3164">3164</a> 
<a class="jxr_linenumber" name="3165" href="#3165">3165</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3166" href="#3166">3166</a>         }
<a class="jxr_linenumber" name="3167" href="#3167">3167</a>     }
<a class="jxr_linenumber" name="3168" href="#3168">3168</a> 
<a class="jxr_linenumber" name="3169" href="#3169">3169</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(AllowableActions expected, AllowableActions actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="3170" href="#3170">3170</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3171" href="#3171">3171</a> 
<a class="jxr_linenumber" name="3172" href="#3172">3172</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3173" href="#3173">3173</a> 
<a class="jxr_linenumber" name="3174" href="#3174">3174</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3175" href="#3175">3175</a> 
<a class="jxr_linenumber" name="3176" href="#3176">3176</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3177" href="#3177">3177</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3178" href="#3178">3178</a>         }
<a class="jxr_linenumber" name="3179" href="#3179">3179</a> 
<a class="jxr_linenumber" name="3180" href="#3180">3180</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3181" href="#3181">3181</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected allowable actions are null, but actual allowable actions are not!"</span>);
<a class="jxr_linenumber" name="3182" href="#3182">3182</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3183" href="#3183">3183</a> 
<a class="jxr_linenumber" name="3184" href="#3184">3184</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3185" href="#3185">3185</a>         }
<a class="jxr_linenumber" name="3186" href="#3186">3186</a> 
<a class="jxr_linenumber" name="3187" href="#3187">3187</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3188" href="#3188">3188</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual allowable actions are null, but expected allowable actions are not!"</span>);
<a class="jxr_linenumber" name="3189" href="#3189">3189</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3190" href="#3190">3190</a> 
<a class="jxr_linenumber" name="3191" href="#3191">3191</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3192" href="#3192">3192</a>         }
<a class="jxr_linenumber" name="3193" href="#3193">3193</a> 
<a class="jxr_linenumber" name="3194" href="#3194">3194</a>         f = createResult(FAILURE, <span class="jxr_string">"Allowable action sets don't match!"</span>);
<a class="jxr_linenumber" name="3195" href="#3195">3195</a>         addResult(results, assertEqualSet(expected.getAllowableActions(), actual.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3196" href="#3196">3196</a> 
<a class="jxr_linenumber" name="3197" href="#3197">3197</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3198" href="#3198">3198</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3199" href="#3199">3199</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3200" href="#3200">3200</a>             }
<a class="jxr_linenumber" name="3201" href="#3201">3201</a> 
<a class="jxr_linenumber" name="3202" href="#3202">3202</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3203" href="#3203">3203</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3204" href="#3204">3204</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3205" href="#3205">3205</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3206" href="#3206">3206</a>             }
<a class="jxr_linenumber" name="3207" href="#3207">3207</a> 
<a class="jxr_linenumber" name="3208" href="#3208">3208</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3209" href="#3209">3209</a>         }
<a class="jxr_linenumber" name="3210" href="#3210">3210</a>     }
<a class="jxr_linenumber" name="3211" href="#3211">3211</a> 
<a class="jxr_linenumber" name="3212" href="#3212">3212</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(Acl expected, Acl actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3213" href="#3213">3213</a> 
<a class="jxr_linenumber" name="3214" href="#3214">3214</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3215" href="#3215">3215</a> 
<a class="jxr_linenumber" name="3216" href="#3216">3216</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3217" href="#3217">3217</a> 
<a class="jxr_linenumber" name="3218" href="#3218">3218</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3219" href="#3219">3219</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3220" href="#3220">3220</a>         }
<a class="jxr_linenumber" name="3221" href="#3221">3221</a> 
<a class="jxr_linenumber" name="3222" href="#3222">3222</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3223" href="#3223">3223</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected ACL is null, but actual ACL is not!"</span>);
<a class="jxr_linenumber" name="3224" href="#3224">3224</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3225" href="#3225">3225</a> 
<a class="jxr_linenumber" name="3226" href="#3226">3226</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3227" href="#3227">3227</a>         }
<a class="jxr_linenumber" name="3228" href="#3228">3228</a> 
<a class="jxr_linenumber" name="3229" href="#3229">3229</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3230" href="#3230">3230</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual ACL is null, but expected ACL is not!"</span>);
<a class="jxr_linenumber" name="3231" href="#3231">3231</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3232" href="#3232">3232</a> 
<a class="jxr_linenumber" name="3233" href="#3233">3233</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3234" href="#3234">3234</a>         }
<a class="jxr_linenumber" name="3235" href="#3235">3235</a> 
<a class="jxr_linenumber" name="3236" href="#3236">3236</a>         f = createResult(FAILURE, <span class="jxr_string">"ACEs don't match!"</span>);
<a class="jxr_linenumber" name="3237" href="#3237">3237</a>         addResult(results, assertEqualAceLists(expected.getAces(), actual.getAces(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3238" href="#3238">3238</a> 
<a class="jxr_linenumber" name="3239" href="#3239">3239</a>         f = createResult(FAILURE, <span class="jxr_string">"Exact flags dont't match!"</span>);
<a class="jxr_linenumber" name="3240" href="#3240">3240</a>         addResult(results, assertEquals(expected.isExact(), actual.isExact(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3241" href="#3241">3241</a> 
<a class="jxr_linenumber" name="3242" href="#3242">3242</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3243" href="#3243">3243</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3244" href="#3244">3244</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3245" href="#3245">3245</a>             }
<a class="jxr_linenumber" name="3246" href="#3246">3246</a> 
<a class="jxr_linenumber" name="3247" href="#3247">3247</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3248" href="#3248">3248</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3249" href="#3249">3249</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3250" href="#3250">3250</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3251" href="#3251">3251</a>             }
<a class="jxr_linenumber" name="3252" href="#3252">3252</a> 
<a class="jxr_linenumber" name="3253" href="#3253">3253</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3254" href="#3254">3254</a>         }
<a class="jxr_linenumber" name="3255" href="#3255">3255</a>     }
<a class="jxr_linenumber" name="3256" href="#3256">3256</a> 
<a class="jxr_linenumber" name="3257" href="#3257">3257</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEqualAceLists(List&lt;Ace&gt; expected, List&lt;Ace&gt; actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="3258" href="#3258">3258</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3259" href="#3259">3259</a> 
<a class="jxr_linenumber" name="3260" href="#3260">3260</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3261" href="#3261">3261</a> 
<a class="jxr_linenumber" name="3262" href="#3262">3262</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3263" href="#3263">3263</a> 
<a class="jxr_linenumber" name="3264" href="#3264">3264</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong> &amp;&amp; actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3265" href="#3265">3265</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3266" href="#3266">3266</a>         }
<a class="jxr_linenumber" name="3267" href="#3267">3267</a> 
<a class="jxr_linenumber" name="3268" href="#3268">3268</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3269" href="#3269">3269</a>             <strong class="jxr_keyword">return</strong> addResultChild(failure, createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"Expected ACE list is null!"</span>));
<a class="jxr_linenumber" name="3270" href="#3270">3270</a>         }
<a class="jxr_linenumber" name="3271" href="#3271">3271</a> 
<a class="jxr_linenumber" name="3272" href="#3272">3272</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3273" href="#3273">3273</a>             <strong class="jxr_keyword">return</strong> addResultChild(failure, createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"Actual ACE list is null!"</span>));
<a class="jxr_linenumber" name="3274" href="#3274">3274</a>         }
<a class="jxr_linenumber" name="3275" href="#3275">3275</a> 
<a class="jxr_linenumber" name="3276" href="#3276">3276</a>         <strong class="jxr_keyword">if</strong> (expected.size() != actual.size()) {
<a class="jxr_linenumber" name="3277" href="#3277">3277</a>             addResult(
<a class="jxr_linenumber" name="3278" href="#3278">3278</a>                     results,
<a class="jxr_linenumber" name="3279" href="#3279">3279</a>                     createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"ACE list sizes don't match! expected: "</span> + expected.size()
<a class="jxr_linenumber" name="3280" href="#3280">3280</a>                             + <span class="jxr_string">" / actual: "</span> + actual.size()));
<a class="jxr_linenumber" name="3281" href="#3281">3281</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3282" href="#3282">3282</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; expected.size(); i++) {
<a class="jxr_linenumber" name="3283" href="#3283">3283</a>                 f = createResult(FAILURE, <span class="jxr_string">"ACEs at position "</span> + i + <span class="jxr_string">"  dont't match!"</span>);
<a class="jxr_linenumber" name="3284" href="#3284">3284</a>                 addResult(results, assertEquals(expected.get(i), actual.get(i), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3285" href="#3285">3285</a>             }
<a class="jxr_linenumber" name="3286" href="#3286">3286</a>         }
<a class="jxr_linenumber" name="3287" href="#3287">3287</a> 
<a class="jxr_linenumber" name="3288" href="#3288">3288</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3289" href="#3289">3289</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3290" href="#3290">3290</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3291" href="#3291">3291</a>             }
<a class="jxr_linenumber" name="3292" href="#3292">3292</a> 
<a class="jxr_linenumber" name="3293" href="#3293">3293</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3294" href="#3294">3294</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3295" href="#3295">3295</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3296" href="#3296">3296</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3297" href="#3297">3297</a>             }
<a class="jxr_linenumber" name="3298" href="#3298">3298</a> 
<a class="jxr_linenumber" name="3299" href="#3299">3299</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3300" href="#3300">3300</a>         }
<a class="jxr_linenumber" name="3301" href="#3301">3301</a>     }
<a class="jxr_linenumber" name="3302" href="#3302">3302</a> 
<a class="jxr_linenumber" name="3303" href="#3303">3303</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(Ace expected, Ace actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3304" href="#3304">3304</a> 
<a class="jxr_linenumber" name="3305" href="#3305">3305</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3306" href="#3306">3306</a> 
<a class="jxr_linenumber" name="3307" href="#3307">3307</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3308" href="#3308">3308</a> 
<a class="jxr_linenumber" name="3309" href="#3309">3309</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3310" href="#3310">3310</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3311" href="#3311">3311</a>         }
<a class="jxr_linenumber" name="3312" href="#3312">3312</a> 
<a class="jxr_linenumber" name="3313" href="#3313">3313</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3314" href="#3314">3314</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected ACE is null, but actual ACE is not!"</span>);
<a class="jxr_linenumber" name="3315" href="#3315">3315</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3316" href="#3316">3316</a> 
<a class="jxr_linenumber" name="3317" href="#3317">3317</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3318" href="#3318">3318</a>         }
<a class="jxr_linenumber" name="3319" href="#3319">3319</a> 
<a class="jxr_linenumber" name="3320" href="#3320">3320</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3321" href="#3321">3321</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual ACE is null, but expected ACE is not!"</span>);
<a class="jxr_linenumber" name="3322" href="#3322">3322</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3323" href="#3323">3323</a> 
<a class="jxr_linenumber" name="3324" href="#3324">3324</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3325" href="#3325">3325</a>         }
<a class="jxr_linenumber" name="3326" href="#3326">3326</a> 
<a class="jxr_linenumber" name="3327" href="#3327">3327</a>         f = createResult(FAILURE, <span class="jxr_string">"Principal IDs dont't match!"</span>);
<a class="jxr_linenumber" name="3328" href="#3328">3328</a>         addResult(results, assertEquals(expected.getPrincipalId(), actual.getPrincipalId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3329" href="#3329">3329</a> 
<a class="jxr_linenumber" name="3330" href="#3330">3330</a>         f = createResult(FAILURE, <span class="jxr_string">"Permissions dont't match!"</span>);
<a class="jxr_linenumber" name="3331" href="#3331">3331</a>         addResult(results, assertEqualLists(expected.getPermissions(), actual.getPermissions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3332" href="#3332">3332</a> 
<a class="jxr_linenumber" name="3333" href="#3333">3333</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3334" href="#3334">3334</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3335" href="#3335">3335</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3336" href="#3336">3336</a>             }
<a class="jxr_linenumber" name="3337" href="#3337">3337</a> 
<a class="jxr_linenumber" name="3338" href="#3338">3338</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3339" href="#3339">3339</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3340" href="#3340">3340</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3341" href="#3341">3341</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3342" href="#3342">3342</a>             }
<a class="jxr_linenumber" name="3343" href="#3343">3343</a> 
<a class="jxr_linenumber" name="3344" href="#3344">3344</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3345" href="#3345">3345</a>         }
<a class="jxr_linenumber" name="3346" href="#3346">3346</a>     }
<a class="jxr_linenumber" name="3347" href="#3347">3347</a> 
<a class="jxr_linenumber" name="3348" href="#3348">3348</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEqualRenditionLists(List&lt;Rendition&gt; expected, List&lt;Rendition&gt; actual,
<a class="jxr_linenumber" name="3349" href="#3349">3349</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3350" href="#3350">3350</a> 
<a class="jxr_linenumber" name="3351" href="#3351">3351</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3352" href="#3352">3352</a> 
<a class="jxr_linenumber" name="3353" href="#3353">3353</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3354" href="#3354">3354</a> 
<a class="jxr_linenumber" name="3355" href="#3355">3355</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong> &amp;&amp; actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3356" href="#3356">3356</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3357" href="#3357">3357</a>         }
<a class="jxr_linenumber" name="3358" href="#3358">3358</a> 
<a class="jxr_linenumber" name="3359" href="#3359">3359</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3360" href="#3360">3360</a>             <strong class="jxr_keyword">return</strong> addResultChild(failure, createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"Expected rendition list is null!"</span>));
<a class="jxr_linenumber" name="3361" href="#3361">3361</a>         }
<a class="jxr_linenumber" name="3362" href="#3362">3362</a> 
<a class="jxr_linenumber" name="3363" href="#3363">3363</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3364" href="#3364">3364</a>             <strong class="jxr_keyword">return</strong> addResultChild(failure, createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"Actual rendition list is null!"</span>));
<a class="jxr_linenumber" name="3365" href="#3365">3365</a>         }
<a class="jxr_linenumber" name="3366" href="#3366">3366</a> 
<a class="jxr_linenumber" name="3367" href="#3367">3367</a>         <strong class="jxr_keyword">if</strong> (expected.size() != actual.size()) {
<a class="jxr_linenumber" name="3368" href="#3368">3368</a>             addResult(
<a class="jxr_linenumber" name="3369" href="#3369">3369</a>                     results,
<a class="jxr_linenumber" name="3370" href="#3370">3370</a>                     createResult(
<a class="jxr_linenumber" name="3371" href="#3371">3371</a>                             CmisTestResultStatus.INFO,
<a class="jxr_linenumber" name="3372" href="#3372">3372</a>                             <span class="jxr_string">"Rendition list sizes don't match! expected: "</span> + expected.size() + <span class="jxr_string">" / actual: "</span>
<a class="jxr_linenumber" name="3373" href="#3373">3373</a>                                     + actual.size()));
<a class="jxr_linenumber" name="3374" href="#3374">3374</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3375" href="#3375">3375</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; expected.size(); i++) {
<a class="jxr_linenumber" name="3376" href="#3376">3376</a>                 f = createResult(FAILURE, <span class="jxr_string">"Renditions at position "</span> + i + <span class="jxr_string">"  dont't match!"</span>);
<a class="jxr_linenumber" name="3377" href="#3377">3377</a>                 addResult(results, assertEquals(expected.get(i), actual.get(i), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3378" href="#3378">3378</a>             }
<a class="jxr_linenumber" name="3379" href="#3379">3379</a>         }
<a class="jxr_linenumber" name="3380" href="#3380">3380</a> 
<a class="jxr_linenumber" name="3381" href="#3381">3381</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3382" href="#3382">3382</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3383" href="#3383">3383</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3384" href="#3384">3384</a>             }
<a class="jxr_linenumber" name="3385" href="#3385">3385</a> 
<a class="jxr_linenumber" name="3386" href="#3386">3386</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3387" href="#3387">3387</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3388" href="#3388">3388</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3389" href="#3389">3389</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3390" href="#3390">3390</a>             }
<a class="jxr_linenumber" name="3391" href="#3391">3391</a> 
<a class="jxr_linenumber" name="3392" href="#3392">3392</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3393" href="#3393">3393</a>         }
<a class="jxr_linenumber" name="3394" href="#3394">3394</a>     }
<a class="jxr_linenumber" name="3395" href="#3395">3395</a> 
<a class="jxr_linenumber" name="3396" href="#3396">3396</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(Rendition expected, Rendition actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="3397" href="#3397">3397</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3398" href="#3398">3398</a> 
<a class="jxr_linenumber" name="3399" href="#3399">3399</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3400" href="#3400">3400</a> 
<a class="jxr_linenumber" name="3401" href="#3401">3401</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3402" href="#3402">3402</a> 
<a class="jxr_linenumber" name="3403" href="#3403">3403</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3404" href="#3404">3404</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3405" href="#3405">3405</a>         }
<a class="jxr_linenumber" name="3406" href="#3406">3406</a> 
<a class="jxr_linenumber" name="3407" href="#3407">3407</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3408" href="#3408">3408</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected rendition is null, but actual rendition is not!"</span>);
<a class="jxr_linenumber" name="3409" href="#3409">3409</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3410" href="#3410">3410</a> 
<a class="jxr_linenumber" name="3411" href="#3411">3411</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3412" href="#3412">3412</a>         }
<a class="jxr_linenumber" name="3413" href="#3413">3413</a> 
<a class="jxr_linenumber" name="3414" href="#3414">3414</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3415" href="#3415">3415</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual rendition is null, but expected rendition is not!"</span>);
<a class="jxr_linenumber" name="3416" href="#3416">3416</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3417" href="#3417">3417</a> 
<a class="jxr_linenumber" name="3418" href="#3418">3418</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3419" href="#3419">3419</a>         }
<a class="jxr_linenumber" name="3420" href="#3420">3420</a> 
<a class="jxr_linenumber" name="3421" href="#3421">3421</a>         f = createResult(FAILURE, <span class="jxr_string">"Stream IDs dont't match!"</span>);
<a class="jxr_linenumber" name="3422" href="#3422">3422</a>         addResult(results, assertEquals(expected.getStreamId(), actual.getStreamId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3423" href="#3423">3423</a> 
<a class="jxr_linenumber" name="3424" href="#3424">3424</a>         f = createResult(FAILURE, <span class="jxr_string">"Kinds dont't match!"</span>);
<a class="jxr_linenumber" name="3425" href="#3425">3425</a>         addResult(results, assertEquals(expected.getKind(), actual.getKind(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3426" href="#3426">3426</a> 
<a class="jxr_linenumber" name="3427" href="#3427">3427</a>         f = createResult(FAILURE, <span class="jxr_string">"MIME types dont't match!"</span>);
<a class="jxr_linenumber" name="3428" href="#3428">3428</a>         addResult(results, assertEquals(expected.getMimeType(), actual.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3429" href="#3429">3429</a> 
<a class="jxr_linenumber" name="3430" href="#3430">3430</a>         f = createResult(FAILURE, <span class="jxr_string">"Titles dont't match!"</span>);
<a class="jxr_linenumber" name="3431" href="#3431">3431</a>         addResult(results, assertEquals(expected.getTitle(), actual.getTitle(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3432" href="#3432">3432</a> 
<a class="jxr_linenumber" name="3433" href="#3433">3433</a>         f = createResult(FAILURE, <span class="jxr_string">"Lengths dont't match!"</span>);
<a class="jxr_linenumber" name="3434" href="#3434">3434</a>         addResult(results, assertEquals(expected.getLength(), actual.getLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3435" href="#3435">3435</a> 
<a class="jxr_linenumber" name="3436" href="#3436">3436</a>         f = createResult(FAILURE, <span class="jxr_string">"Heights dont't match!"</span>);
<a class="jxr_linenumber" name="3437" href="#3437">3437</a>         addResult(results, assertEquals(expected.getBigHeight(), actual.getBigHeight(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3438" href="#3438">3438</a> 
<a class="jxr_linenumber" name="3439" href="#3439">3439</a>         f = createResult(FAILURE, <span class="jxr_string">"Widths dont't match!"</span>);
<a class="jxr_linenumber" name="3440" href="#3440">3440</a>         addResult(results, assertEquals(expected.getBigWidth(), actual.getBigWidth(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3441" href="#3441">3441</a> 
<a class="jxr_linenumber" name="3442" href="#3442">3442</a>         f = createResult(FAILURE, <span class="jxr_string">"Rendition document IDs dont't match!"</span>);
<a class="jxr_linenumber" name="3443" href="#3443">3443</a>         addResult(results, assertEquals(expected.getRenditionDocumentId(), actual.getRenditionDocumentId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3444" href="#3444">3444</a> 
<a class="jxr_linenumber" name="3445" href="#3445">3445</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3446" href="#3446">3446</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3447" href="#3447">3447</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3448" href="#3448">3448</a>             }
<a class="jxr_linenumber" name="3449" href="#3449">3449</a> 
<a class="jxr_linenumber" name="3450" href="#3450">3450</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3451" href="#3451">3451</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3452" href="#3452">3452</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3453" href="#3453">3453</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3454" href="#3454">3454</a>             }
<a class="jxr_linenumber" name="3455" href="#3455">3455</a> 
<a class="jxr_linenumber" name="3456" href="#3456">3456</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3457" href="#3457">3457</a>         }
<a class="jxr_linenumber" name="3458" href="#3458">3458</a>     }
<a class="jxr_linenumber" name="3459" href="#3459">3459</a> 
<a class="jxr_linenumber" name="3460" href="#3460">3460</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> assertEquals(ContentStream expected, ContentStream actual, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> success,
<a class="jxr_linenumber" name="3461" href="#3461">3461</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3462" href="#3462">3462</a> 
<a class="jxr_linenumber" name="3463" href="#3463">3463</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3464" href="#3464">3464</a> 
<a class="jxr_linenumber" name="3465" href="#3465">3465</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3466" href="#3466">3466</a> 
<a class="jxr_linenumber" name="3467" href="#3467">3467</a>         <strong class="jxr_keyword">if</strong> ((expected == <strong class="jxr_keyword">null</strong>) &amp;&amp; (actual == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="3468" href="#3468">3468</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3469" href="#3469">3469</a>         }
<a class="jxr_linenumber" name="3470" href="#3470">3470</a> 
<a class="jxr_linenumber" name="3471" href="#3471">3471</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3472" href="#3472">3472</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected stream is null, but actual stream is not!"</span>);
<a class="jxr_linenumber" name="3473" href="#3473">3473</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3474" href="#3474">3474</a> 
<a class="jxr_linenumber" name="3475" href="#3475">3475</a>             IOUtils.closeQuietly(actual);
<a class="jxr_linenumber" name="3476" href="#3476">3476</a> 
<a class="jxr_linenumber" name="3477" href="#3477">3477</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3478" href="#3478">3478</a>         }
<a class="jxr_linenumber" name="3479" href="#3479">3479</a> 
<a class="jxr_linenumber" name="3480" href="#3480">3480</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3481" href="#3481">3481</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="3482" href="#3482">3482</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3483" href="#3483">3483</a> 
<a class="jxr_linenumber" name="3484" href="#3484">3484</a>             IOUtils.closeQuietly(expected);
<a class="jxr_linenumber" name="3485" href="#3485">3485</a> 
<a class="jxr_linenumber" name="3486" href="#3486">3486</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3487" href="#3487">3487</a>         }
<a class="jxr_linenumber" name="3488" href="#3488">3488</a> 
<a class="jxr_linenumber" name="3489" href="#3489">3489</a>         f = createResult(WARNING, <span class="jxr_string">"Filenames don't match!"</span>);
<a class="jxr_linenumber" name="3490" href="#3490">3490</a>         addResult(results, assertEquals(expected.getFileName(), actual.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3491" href="#3491">3491</a> 
<a class="jxr_linenumber" name="3492" href="#3492">3492</a>         f = createResult(FAILURE, <span class="jxr_string">"MIME types don't match!"</span>);
<a class="jxr_linenumber" name="3493" href="#3493">3493</a>         addResult(results, assertEquals(expected.getMimeType(), actual.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3494" href="#3494">3494</a> 
<a class="jxr_linenumber" name="3495" href="#3495">3495</a>         f = createResult(WARNING, <span class="jxr_string">"Lengths don't match!"</span>);
<a class="jxr_linenumber" name="3496" href="#3496">3496</a>         addResult(results, assertEquals(expected.getBigLength(), actual.getBigLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3497" href="#3497">3497</a> 
<a class="jxr_linenumber" name="3498" href="#3498">3498</a>         <strong class="jxr_keyword">boolean</strong> match = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="3499" href="#3499">3499</a> 
<a class="jxr_linenumber" name="3500" href="#3500">3500</a>         BufferedInputStream as = <strong class="jxr_keyword">new</strong> BufferedInputStream(actual.getStream(), 64 * 1024);
<a class="jxr_linenumber" name="3501" href="#3501">3501</a>         BufferedInputStream es = <strong class="jxr_keyword">new</strong> BufferedInputStream(expected.getStream(), 64 * 1024);
<a class="jxr_linenumber" name="3502" href="#3502">3502</a> 
<a class="jxr_linenumber" name="3503" href="#3503">3503</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="3504" href="#3504">3504</a>             <strong class="jxr_keyword">int</strong> ab = 0;
<a class="jxr_linenumber" name="3505" href="#3505">3505</a>             <strong class="jxr_keyword">int</strong> eb = 0;
<a class="jxr_linenumber" name="3506" href="#3506">3506</a> 
<a class="jxr_linenumber" name="3507" href="#3507">3507</a>             <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a class="jxr_linenumber" name="3508" href="#3508">3508</a>                 <strong class="jxr_keyword">if</strong> (ab &gt; -1) {
<a class="jxr_linenumber" name="3509" href="#3509">3509</a>                     ab = as.read();
<a class="jxr_linenumber" name="3510" href="#3510">3510</a>                 }
<a class="jxr_linenumber" name="3511" href="#3511">3511</a> 
<a class="jxr_linenumber" name="3512" href="#3512">3512</a>                 <strong class="jxr_keyword">if</strong> (eb &gt; -1) {
<a class="jxr_linenumber" name="3513" href="#3513">3513</a>                     eb = es.read();
<a class="jxr_linenumber" name="3514" href="#3514">3514</a>                 }
<a class="jxr_linenumber" name="3515" href="#3515">3515</a> 
<a class="jxr_linenumber" name="3516" href="#3516">3516</a>                 <strong class="jxr_keyword">if</strong> (ab == -1 &amp;&amp; eb == -1) {
<a class="jxr_linenumber" name="3517" href="#3517">3517</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="3518" href="#3518">3518</a>                 }
<a class="jxr_linenumber" name="3519" href="#3519">3519</a> 
<a class="jxr_linenumber" name="3520" href="#3520">3520</a>                 <strong class="jxr_keyword">if</strong> (ab != eb) {
<a class="jxr_linenumber" name="3521" href="#3521">3521</a>                     match = false;
<a class="jxr_linenumber" name="3522" href="#3522">3522</a>                 }
<a class="jxr_linenumber" name="3523" href="#3523">3523</a>             }
<a class="jxr_linenumber" name="3524" href="#3524">3524</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="3525" href="#3525">3525</a>             f = createResult(UNEXPECTED_EXCEPTION, e.getMessage(), e, false);
<a class="jxr_linenumber" name="3526" href="#3526">3526</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3527" href="#3527">3527</a>         }
<a class="jxr_linenumber" name="3528" href="#3528">3528</a> 
<a class="jxr_linenumber" name="3529" href="#3529">3529</a>         <strong class="jxr_keyword">if</strong> (!match) {
<a class="jxr_linenumber" name="3530" href="#3530">3530</a>             f = createResult(FAILURE, <span class="jxr_string">"Content streams don't match!"</span>);
<a class="jxr_linenumber" name="3531" href="#3531">3531</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3532" href="#3532">3532</a>         }
<a class="jxr_linenumber" name="3533" href="#3533">3533</a> 
<a class="jxr_linenumber" name="3534" href="#3534">3534</a>         IOUtils.closeQuietly(as);
<a class="jxr_linenumber" name="3535" href="#3535">3535</a>         IOUtils.closeQuietly(es);
<a class="jxr_linenumber" name="3536" href="#3536">3536</a> 
<a class="jxr_linenumber" name="3537" href="#3537">3537</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3538" href="#3538">3538</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3539" href="#3539">3539</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3540" href="#3540">3540</a>             }
<a class="jxr_linenumber" name="3541" href="#3541">3541</a> 
<a class="jxr_linenumber" name="3542" href="#3542">3542</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3543" href="#3543">3543</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3544" href="#3544">3544</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3545" href="#3545">3545</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3546" href="#3546">3546</a>             }
<a class="jxr_linenumber" name="3547" href="#3547">3547</a> 
<a class="jxr_linenumber" name="3548" href="#3548">3548</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3549" href="#3549">3549</a>         }
<a class="jxr_linenumber" name="3550" href="#3550">3550</a>     }
<a class="jxr_linenumber" name="3551" href="#3551">3551</a> 
<a class="jxr_linenumber" name="3552" href="#3552">3552</a>     <em class="jxr_comment">// --- helpers ---</em>
<a class="jxr_linenumber" name="3553" href="#3553">3553</a> 
<a class="jxr_linenumber" name="3554" href="#3554">3554</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addResult(List&lt;CmisTestResult&gt; results, <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> result) {
<a class="jxr_linenumber" name="3555" href="#3555">3555</a>         <strong class="jxr_keyword">if</strong> (result != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3556" href="#3556">3556</a>             <strong class="jxr_keyword">if</strong> (result instanceof CmisTestResultImpl) {
<a class="jxr_linenumber" name="3557" href="#3557">3557</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a>) result).setStackTrace(getStackTrace());
<a class="jxr_linenumber" name="3558" href="#3558">3558</a>             }
<a class="jxr_linenumber" name="3559" href="#3559">3559</a> 
<a class="jxr_linenumber" name="3560" href="#3560">3560</a>             results.add(result);
<a class="jxr_linenumber" name="3561" href="#3561">3561</a>             <strong class="jxr_keyword">if</strong> (result.isFatal()) {
<a class="jxr_linenumber" name="3562" href="#3562">3562</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/FatalTestException.html">FatalTestException</a>(result.getMessage());
<a class="jxr_linenumber" name="3563" href="#3563">3563</a>             }
<a class="jxr_linenumber" name="3564" href="#3564">3564</a>         }
<a class="jxr_linenumber" name="3565" href="#3565">3565</a>     }
<a class="jxr_linenumber" name="3566" href="#3566">3566</a> 
<a class="jxr_linenumber" name="3567" href="#3567">3567</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResultStatus.html">CmisTestResultStatus</a> getWorst(List&lt;CmisTestResult&gt; results) {
<a class="jxr_linenumber" name="3568" href="#3568">3568</a>         <strong class="jxr_keyword">if</strong> (isNullOrEmpty(results)) {
<a class="jxr_linenumber" name="3569" href="#3569">3569</a>             <strong class="jxr_keyword">return</strong> CmisTestResultStatus.OK;
<a class="jxr_linenumber" name="3570" href="#3570">3570</a>         }
<a class="jxr_linenumber" name="3571" href="#3571">3571</a> 
<a class="jxr_linenumber" name="3572" href="#3572">3572</a>         <strong class="jxr_keyword">int</strong> max = 0;
<a class="jxr_linenumber" name="3573" href="#3573">3573</a> 
<a class="jxr_linenumber" name="3574" href="#3574">3574</a>         <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3575" href="#3575">3575</a>             <strong class="jxr_keyword">if</strong> (max &lt; result.getStatus().getLevel()) {
<a class="jxr_linenumber" name="3576" href="#3576">3576</a>                 max = result.getStatus().getLevel();
<a class="jxr_linenumber" name="3577" href="#3577">3577</a>             }
<a class="jxr_linenumber" name="3578" href="#3578">3578</a>         }
<a class="jxr_linenumber" name="3579" href="#3579">3579</a> 
<a class="jxr_linenumber" name="3580" href="#3580">3580</a>         <strong class="jxr_keyword">return</strong> CmisTestResultStatus.fromLevel(max);
<a class="jxr_linenumber" name="3581" href="#3581">3581</a>     }
<a class="jxr_linenumber" name="3582" href="#3582">3582</a> 
<a class="jxr_linenumber" name="3583" href="#3583">3583</a>     <em class="jxr_comment">// --- helper classes ---</em>
<a class="jxr_linenumber" name="3584" href="#3584">3584</a> 
<a class="jxr_linenumber" name="3585" href="#3585">3585</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a> {
<a class="jxr_linenumber" name="3586" href="#3586">3586</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String id;
<a class="jxr_linenumber" name="3587" href="#3587">3587</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean required;
<a class="jxr_linenumber" name="3588" href="#3588">3588</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> PropertyType propertyType;
<a class="jxr_linenumber" name="3589" href="#3589">3589</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Cardinality cardinality;
<a class="jxr_linenumber" name="3590" href="#3590">3590</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Updatability updatability;
<a class="jxr_linenumber" name="3591" href="#3591">3591</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean queryable;
<a class="jxr_linenumber" name="3592" href="#3592">3592</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean orderable;
<a class="jxr_linenumber" name="3593" href="#3593">3593</a> 
<a class="jxr_linenumber" name="3594" href="#3594">3594</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a>(String id, Boolean required, PropertyType propertyType, Cardinality cardinality,
<a class="jxr_linenumber" name="3595" href="#3595">3595</a>                 Updatability updatability, Boolean queryable, Boolean orderable) {
<a class="jxr_linenumber" name="3596" href="#3596">3596</a>             <strong class="jxr_keyword">this</strong>.id = id;
<a class="jxr_linenumber" name="3597" href="#3597">3597</a>             <strong class="jxr_keyword">this</strong>.required = required;
<a class="jxr_linenumber" name="3598" href="#3598">3598</a>             <strong class="jxr_keyword">this</strong>.propertyType = propertyType;
<a class="jxr_linenumber" name="3599" href="#3599">3599</a>             <strong class="jxr_keyword">this</strong>.cardinality = cardinality;
<a class="jxr_linenumber" name="3600" href="#3600">3600</a>             <strong class="jxr_keyword">this</strong>.updatability = updatability;
<a class="jxr_linenumber" name="3601" href="#3601">3601</a>             <strong class="jxr_keyword">this</strong>.queryable = queryable;
<a class="jxr_linenumber" name="3602" href="#3602">3602</a>             <strong class="jxr_keyword">this</strong>.orderable = (cardinality == Cardinality.MULTI ? Boolean.FALSE : orderable);
<a class="jxr_linenumber" name="3603" href="#3603">3603</a>         }
<a class="jxr_linenumber" name="3604" href="#3604">3604</a> 
<a class="jxr_linenumber" name="3605" href="#3605">3605</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> check(TypeDefinition type) {
<a class="jxr_linenumber" name="3606" href="#3606">3606</a>             List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3607" href="#3607">3607</a> 
<a class="jxr_linenumber" name="3608" href="#3608">3608</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3609" href="#3609">3609</a> 
<a class="jxr_linenumber" name="3610" href="#3610">3610</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs = type.getPropertyDefinitions();
<a class="jxr_linenumber" name="3611" href="#3611">3611</a>             <strong class="jxr_keyword">if</strong> (propDefs == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3612" href="#3612">3612</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definitions are missing!"</span>));
<a class="jxr_linenumber" name="3613" href="#3613">3613</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3614" href="#3614">3614</a>                 PropertyDefinition&lt;?&gt; propDef = propDefs.get(id);
<a class="jxr_linenumber" name="3615" href="#3615">3615</a>                 <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3616" href="#3616">3616</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definition is missing!"</span>));
<a class="jxr_linenumber" name="3617" href="#3617">3617</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3618" href="#3618">3618</a>                     <strong class="jxr_keyword">if</strong> ((required != <strong class="jxr_keyword">null</strong>) &amp;&amp; !required.equals(propDef.isRequired())) {
<a class="jxr_linenumber" name="3619" href="#3619">3619</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3620" href="#3620">3620</a>                                 <span class="jxr_string">"Required flag: expected: "</span> + required + <span class="jxr_string">" / actual: "</span> + propDef.isRequired());
<a class="jxr_linenumber" name="3621" href="#3621">3621</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3622" href="#3622">3622</a>                     }
<a class="jxr_linenumber" name="3623" href="#3623">3623</a> 
<a class="jxr_linenumber" name="3624" href="#3624">3624</a>                     <strong class="jxr_keyword">if</strong> (!propertyType.equals(propDef.getPropertyType())) {
<a class="jxr_linenumber" name="3625" href="#3625">3625</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3626" href="#3626">3626</a>                                 <span class="jxr_string">"Property type: expected: "</span> + propertyType + <span class="jxr_string">" / actual: "</span> + propDef.getPropertyType());
<a class="jxr_linenumber" name="3627" href="#3627">3627</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3628" href="#3628">3628</a>                     }
<a class="jxr_linenumber" name="3629" href="#3629">3629</a> 
<a class="jxr_linenumber" name="3630" href="#3630">3630</a>                     <strong class="jxr_keyword">if</strong> (!cardinality.equals(propDef.getCardinality())) {
<a class="jxr_linenumber" name="3631" href="#3631">3631</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3632" href="#3632">3632</a>                                 <span class="jxr_string">"Cardinality: expected: "</span> + cardinality + <span class="jxr_string">" / actual: "</span> + propDef.getCardinality());
<a class="jxr_linenumber" name="3633" href="#3633">3633</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3634" href="#3634">3634</a>                     }
<a class="jxr_linenumber" name="3635" href="#3635">3635</a> 
<a class="jxr_linenumber" name="3636" href="#3636">3636</a>                     <strong class="jxr_keyword">if</strong> ((updatability != <strong class="jxr_keyword">null</strong>) &amp;&amp; !updatability.equals(propDef.getUpdatability())) {
<a class="jxr_linenumber" name="3637" href="#3637">3637</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3638" href="#3638">3638</a>                                 <span class="jxr_string">"Updatability: expected: "</span> + updatability + <span class="jxr_string">" / actual: "</span> + propDef.getUpdatability());
<a class="jxr_linenumber" name="3639" href="#3639">3639</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3640" href="#3640">3640</a>                     }
<a class="jxr_linenumber" name="3641" href="#3641">3641</a> 
<a class="jxr_linenumber" name="3642" href="#3642">3642</a>                     <strong class="jxr_keyword">if</strong> ((queryable != <strong class="jxr_keyword">null</strong>) &amp;&amp; !queryable.equals(propDef.isQueryable())) {
<a class="jxr_linenumber" name="3643" href="#3643">3643</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3644" href="#3644">3644</a>                                 <span class="jxr_string">"Queryable: expected: "</span> + queryable + <span class="jxr_string">" / actual: "</span> + propDef.isQueryable());
<a class="jxr_linenumber" name="3645" href="#3645">3645</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3646" href="#3646">3646</a>                     }
<a class="jxr_linenumber" name="3647" href="#3647">3647</a> 
<a class="jxr_linenumber" name="3648" href="#3648">3648</a>                     <strong class="jxr_keyword">boolean</strong> isPropertyQueryNameRequired = Boolean.TRUE.equals(queryable);
<a class="jxr_linenumber" name="3649" href="#3649">3649</a>                     checkQueryName(propDef.getQueryName(), isPropertyQueryNameRequired, <span class="jxr_string">"Property Query Name: "</span>
<a class="jxr_linenumber" name="3650" href="#3650">3650</a>                             + propDef.getQueryName());
<a class="jxr_linenumber" name="3651" href="#3651">3651</a> 
<a class="jxr_linenumber" name="3652" href="#3652">3652</a>                     <strong class="jxr_keyword">if</strong> ((orderable != <strong class="jxr_keyword">null</strong>) &amp;&amp; !orderable.equals(propDef.isOrderable())) {
<a class="jxr_linenumber" name="3653" href="#3653">3653</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3654" href="#3654">3654</a>                                 <span class="jxr_string">"Orderable: expected: "</span> + orderable + <span class="jxr_string">" / actual: "</span> + propDef.isOrderable());
<a class="jxr_linenumber" name="3655" href="#3655">3655</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3656" href="#3656">3656</a>                     }
<a class="jxr_linenumber" name="3657" href="#3657">3657</a> 
<a class="jxr_linenumber" name="3658" href="#3658">3658</a>                     <strong class="jxr_keyword">if</strong> (type.getBaseTypeId() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3659" href="#3659">3659</a>                         Boolean inherited = !type.getBaseTypeId().value().equals(type.getId());
<a class="jxr_linenumber" name="3660" href="#3660">3660</a>                         <strong class="jxr_keyword">if</strong> (!inherited.equals(propDef.isInherited())) {
<a class="jxr_linenumber" name="3661" href="#3661">3661</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="3662" href="#3662">3662</a>                                     <span class="jxr_string">"Inhertited: expected: "</span> + inherited + <span class="jxr_string">" / actual: "</span> + propDef.isInherited());
<a class="jxr_linenumber" name="3663" href="#3663">3663</a>                             addResult(results, f);
<a class="jxr_linenumber" name="3664" href="#3664">3664</a>                         }
<a class="jxr_linenumber" name="3665" href="#3665">3665</a>                     }
<a class="jxr_linenumber" name="3666" href="#3666">3666</a> 
<a class="jxr_linenumber" name="3667" href="#3667">3667</a>                     <em class="jxr_comment">// data type specific tests</em>
<a class="jxr_linenumber" name="3668" href="#3668">3668</a>                     <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="3669" href="#3669">3669</a>                         PropertyStringDefinition stringPropDef = (PropertyStringDefinition) propDef;
<a class="jxr_linenumber" name="3670" href="#3670">3670</a> 
<a class="jxr_linenumber" name="3671" href="#3671">3671</a>                         <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3672" href="#3672">3672</a>                             <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength().signum() == 0) {
<a class="jxr_linenumber" name="3673" href="#3673">3673</a>                                 f = createResult(WARNING, <span class="jxr_string">"Max length is 0!"</span>);
<a class="jxr_linenumber" name="3674" href="#3674">3674</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3675" href="#3675">3675</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength().signum() == -1) {
<a class="jxr_linenumber" name="3676" href="#3676">3676</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Max length is negative!"</span>);
<a class="jxr_linenumber" name="3677" href="#3677">3677</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3678" href="#3678">3678</a>                             }
<a class="jxr_linenumber" name="3679" href="#3679">3679</a>                         }
<a class="jxr_linenumber" name="3680" href="#3680">3680</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="3681" href="#3681">3681</a>                         PropertyIntegerDefinition intPropDef = (PropertyIntegerDefinition) propDef;
<a class="jxr_linenumber" name="3682" href="#3682">3682</a> 
<a class="jxr_linenumber" name="3683" href="#3683">3683</a>                         <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; intPropDef.getMaxValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3684" href="#3684">3684</a>                             <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue().compareTo(intPropDef.getMaxValue()) == 0) {
<a class="jxr_linenumber" name="3685" href="#3685">3685</a>                                 f = createResult(WARNING, <span class="jxr_string">"Min and max values are equal!"</span>);
<a class="jxr_linenumber" name="3686" href="#3686">3686</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3687" href="#3687">3687</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue().compareTo(intPropDef.getMaxValue()) == 1) {
<a class="jxr_linenumber" name="3688" href="#3688">3688</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Min value is greater than max value!"</span>);
<a class="jxr_linenumber" name="3689" href="#3689">3689</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3690" href="#3690">3690</a>                             }
<a class="jxr_linenumber" name="3691" href="#3691">3691</a>                         }
<a class="jxr_linenumber" name="3692" href="#3692">3692</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="3693" href="#3693">3693</a>                         PropertyDecimalDefinition decPropDef = (PropertyDecimalDefinition) propDef;
<a class="jxr_linenumber" name="3694" href="#3694">3694</a> 
<a class="jxr_linenumber" name="3695" href="#3695">3695</a>                         <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; decPropDef.getMaxValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3696" href="#3696">3696</a>                             <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue().compareTo(decPropDef.getMaxValue()) == 0) {
<a class="jxr_linenumber" name="3697" href="#3697">3697</a>                                 f = createResult(WARNING, <span class="jxr_string">"Min and max values are equal!"</span>);
<a class="jxr_linenumber" name="3698" href="#3698">3698</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3699" href="#3699">3699</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue().compareTo(decPropDef.getMaxValue()) == 1) {
<a class="jxr_linenumber" name="3700" href="#3700">3700</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Min value is greater than max value!"</span>);
<a class="jxr_linenumber" name="3701" href="#3701">3701</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3702" href="#3702">3702</a>                             }
<a class="jxr_linenumber" name="3703" href="#3703">3703</a>                         }
<a class="jxr_linenumber" name="3704" href="#3704">3704</a>                     }
<a class="jxr_linenumber" name="3705" href="#3705">3705</a>                 }
<a class="jxr_linenumber" name="3706" href="#3706">3706</a>             }
<a class="jxr_linenumber" name="3707" href="#3707">3707</a> 
<a class="jxr_linenumber" name="3708" href="#3708">3708</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), <span class="jxr_string">"Property definition: "</span> + id);
<a class="jxr_linenumber" name="3709" href="#3709">3709</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="3710" href="#3710">3710</a> 
<a class="jxr_linenumber" name="3711" href="#3711">3711</a>             <strong class="jxr_keyword">return</strong> result.getStatus().getLevel() &lt;= OK.getLevel() ? <strong class="jxr_keyword">null</strong> : result;
<a class="jxr_linenumber" name="3712" href="#3712">3712</a>         }
<a class="jxr_linenumber" name="3713" href="#3713">3713</a>     }
<a class="jxr_linenumber" name="3714" href="#3714">3714</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

