<!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.api.CmisObject;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Document;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.FileableCmisObject;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Folder;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Item;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ItemIterable;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectId;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectType;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.OperationContext;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Policy;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Property;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Relationship;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Rendition;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Session;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.SessionFactory;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Tree;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.runtime.OperationContextImpl;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.SessionParameter;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BindingType;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CmisVersion;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.IOUtils;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.CmisTestResult;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus;
<a class="jxr_linenumber" name="103" href="#103">103</a> 
<a class="jxr_linenumber" name="104" href="#104">104</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment"> * Base class for tests that require an OpenCMIS session.</em>
<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> <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="108" href="#108">108</a> 
<a class="jxr_linenumber" name="109" href="#109">109</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="110" href="#110">110</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="111" href="#111">111</a>     <strong class="jxr_keyword">static</strong> {
<a class="jxr_linenumber" name="112" href="#112">112</a>         SELECT_ALL_NO_CACHE_OC.setFilterString(<span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="113" href="#113">113</a>         SELECT_ALL_NO_CACHE_OC.setCacheEnabled(false);
<a class="jxr_linenumber" name="114" href="#114">114</a>         SELECT_ALL_NO_CACHE_OC.setIncludeAllowableActions(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="115" href="#115">115</a>         SELECT_ALL_NO_CACHE_OC.setIncludeAcls(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="116" href="#116">116</a>         SELECT_ALL_NO_CACHE_OC.setIncludePathSegments(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="117" href="#117">117</a>         SELECT_ALL_NO_CACHE_OC.setIncludePolicies(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="118" href="#118">118</a>         SELECT_ALL_NO_CACHE_OC.setIncludeRelationships(IncludeRelationships.BOTH);
<a class="jxr_linenumber" name="119" href="#119">119</a>         SELECT_ALL_NO_CACHE_OC.setRenditionFilterString(<span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="120" href="#120">120</a>         SELECT_ALL_NO_CACHE_OC.setOrderBy(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="121" href="#121">121</a> 
<a class="jxr_linenumber" name="122" href="#122">122</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="123" href="#123">123</a>         SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME.setOrderBy(<span class="jxr_string">"cmis:name"</span>);
<a class="jxr_linenumber" name="124" href="#124">124</a>     }
<a class="jxr_linenumber" name="125" href="#125">125</a> 
<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SessionFactory factory = SessionFactoryImpl.newInstance();
<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">private</strong> Folder testFolder;
<a class="jxr_linenumber" name="128" href="#128">128</a> 
<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">private</strong> Boolean supportsRelationships;
<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">private</strong> Boolean supportsPolicies;
<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> Boolean supportsItems;
<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">private</strong> Boolean supportsSecondaries;
<a class="jxr_linenumber" name="133" href="#133">133</a> 
<a class="jxr_linenumber" name="134" href="#134">134</a>     <strong class="jxr_keyword">public</strong> BindingType getBinding() {
<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">if</strong> (getParameters() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="136" href="#136">136</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="137" href="#137">137</a>         }
<a class="jxr_linenumber" name="138" href="#138">138</a> 
<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="140" href="#140">140</a>             <strong class="jxr_keyword">return</strong> BindingType.fromValue(getParameters().get(SessionParameter.BINDING_TYPE));
<a class="jxr_linenumber" name="141" href="#141">141</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<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> 
<a class="jxr_linenumber" name="146" href="#146">146</a>     @Override
<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> String getName() {
<a class="jxr_linenumber" name="148" href="#148">148</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="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>     @Override
<a class="jxr_linenumber" name="152" href="#152">152</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="153" href="#153">153</a>         Session session;
<a class="jxr_linenumber" name="154" href="#154">154</a> 
<a class="jxr_linenumber" name="155" href="#155">155</a>         Map&lt;String, String&gt; parameters = getParameters();
<a class="jxr_linenumber" name="156" href="#156">156</a>         String repId = parameters.get(SessionParameter.REPOSITORY_ID);
<a class="jxr_linenumber" name="157" href="#157">157</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="158" href="#158">158</a>             session = factory.createSession(parameters);
<a class="jxr_linenumber" name="159" href="#159">159</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="160" href="#160">160</a>             session = factory.getRepositories(parameters).get(0).createSession();
<a class="jxr_linenumber" name="161" href="#161">161</a>         }
<a class="jxr_linenumber" name="162" href="#162">162</a> 
<a class="jxr_linenumber" name="163" href="#163">163</a>         <em class="jxr_comment">// switch off the cache</em>
<a class="jxr_linenumber" name="164" href="#164">164</a>         session.getDefaultContext().setCacheEnabled(false);
<a class="jxr_linenumber" name="165" href="#165">165</a> 
<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="167" href="#167">167</a>             run(session);
<a class="jxr_linenumber" name="168" href="#168">168</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="169" href="#169">169</a>             <strong class="jxr_keyword">if</strong> (!(e instanceof FatalTestException)) {
<a class="jxr_linenumber" name="170" href="#170">170</a>                 addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Exception: "</span> + e, e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="171" href="#171">171</a>             }
<a class="jxr_linenumber" name="172" href="#172">172</a>         } <strong class="jxr_keyword">catch</strong> (Error err) {
<a class="jxr_linenumber" name="173" href="#173">173</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Error: "</span> + err, err, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="174" href="#174">174</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="175" href="#175">175</a>             testFolder = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="176" href="#176">176</a>         }
<a class="jxr_linenumber" name="177" href="#177">177</a>     }
<a class="jxr_linenumber" name="178" href="#178">178</a> 
<a class="jxr_linenumber" name="179" href="#179">179</a>     <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="180" href="#180">180</a> 
<a class="jxr_linenumber" name="181" href="#181">181</a>     <strong class="jxr_keyword">protected</strong> RepositoryInfo getRepositoryInfo(Session session) {
<a class="jxr_linenumber" name="182" href="#182">182</a>         RepositoryInfo ri = session.getRepositoryInfo();
<a class="jxr_linenumber" name="183" href="#183">183</a> 
<a class="jxr_linenumber" name="184" href="#184">184</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="185" href="#185">185</a>         addResult(assertNotNull(ri, <strong class="jxr_keyword">null</strong>, failure));
<a class="jxr_linenumber" name="186" href="#186">186</a> 
<a class="jxr_linenumber" name="187" href="#187">187</a>         <strong class="jxr_keyword">return</strong> ri;
<a class="jxr_linenumber" name="188" href="#188">188</a>     }
<a class="jxr_linenumber" name="189" href="#189">189</a> 
<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">protected</strong> String getFolderTestTypeId() {
<a class="jxr_linenumber" name="191" href="#191">191</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_FOLDER_TYPE);
<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="193" href="#193">193</a>             objectTypeId = TestParameters.DEFAULT_FOLDER_TYPE_VALUE;
<a class="jxr_linenumber" name="194" href="#194">194</a>         }
<a class="jxr_linenumber" name="195" href="#195">195</a> 
<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="197" href="#197">197</a>     }
<a class="jxr_linenumber" name="198" href="#198">198</a> 
<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">protected</strong> String getDocumentTestTypeId() {
<a class="jxr_linenumber" name="200" href="#200">200</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_DOCUMENT_TYPE);
<a class="jxr_linenumber" name="201" href="#201">201</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="202" href="#202">202</a>             objectTypeId = TestParameters.DEFAULT_DOCUMENT_TYPE_VALUE;
<a class="jxr_linenumber" name="203" href="#203">203</a>         }
<a class="jxr_linenumber" name="204" href="#204">204</a> 
<a class="jxr_linenumber" name="205" href="#205">205</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="206" href="#206">206</a>     }
<a class="jxr_linenumber" name="207" href="#207">207</a> 
<a class="jxr_linenumber" name="208" href="#208">208</a>     <strong class="jxr_keyword">protected</strong> String getItemTestTypeId() {
<a class="jxr_linenumber" name="209" href="#209">209</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_ITEM_TYPE);
<a class="jxr_linenumber" name="210" href="#210">210</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="211" href="#211">211</a>             objectTypeId = TestParameters.DEFAULT_ITEM_TYPE_VALUE;
<a class="jxr_linenumber" name="212" href="#212">212</a>         }
<a class="jxr_linenumber" name="213" href="#213">213</a> 
<a class="jxr_linenumber" name="214" href="#214">214</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="215" href="#215">215</a>     }
<a class="jxr_linenumber" name="216" href="#216">216</a> 
<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">protected</strong> String getSecondaryTestTypeId() {
<a class="jxr_linenumber" name="218" href="#218">218</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_SECONDARY_TYPE);
<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="220" href="#220">220</a>             objectTypeId = TestParameters.DEFAULT_SECONDARY_TYPE_VALUE;
<a class="jxr_linenumber" name="221" href="#221">221</a>         }
<a class="jxr_linenumber" name="222" href="#222">222</a> 
<a class="jxr_linenumber" name="223" href="#223">223</a>         <strong class="jxr_keyword">return</strong> objectTypeId;
<a class="jxr_linenumber" name="224" href="#224">224</a>     }
<a class="jxr_linenumber" name="225" href="#225">225</a> 
<a class="jxr_linenumber" name="226" href="#226">226</a>     <em class="jxr_comment">// --- helpers ---</em>
<a class="jxr_linenumber" name="227" href="#227">227</a> 
<a class="jxr_linenumber" name="228" href="#228">228</a>     <strong class="jxr_keyword">protected</strong> String[] getAllProperties(CmisObject object) {
<a class="jxr_linenumber" name="229" href="#229">229</a>         String[] propertiesk = <strong class="jxr_keyword">new</strong> String[object.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="230" href="#230">230</a> 
<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">for</strong> (String propId : object.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="233" href="#233">233</a>             propertiesk[i++] = propId;
<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">return</strong> propertiesk;
<a class="jxr_linenumber" name="237" href="#237">237</a>     }
<a class="jxr_linenumber" name="238" href="#238">238</a> 
<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">protected</strong> String getStringFromContentStream(ContentStream contentStream) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="240" href="#240">240</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="241" href="#241">241</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="242" href="#242">242</a>         }
<a class="jxr_linenumber" name="243" href="#243">243</a> 
<a class="jxr_linenumber" name="244" href="#244">244</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="245" href="#245">245</a>         Reader reader = <strong class="jxr_keyword">new</strong> InputStreamReader(contentStream.getStream(), IOUtils.UTF8);
<a class="jxr_linenumber" name="246" href="#246">246</a> 
<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="248" href="#248">248</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="249" href="#249">249</a>             <strong class="jxr_keyword">int</strong> b;
<a class="jxr_linenumber" name="250" href="#250">250</a>             <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a class="jxr_linenumber" name="251" href="#251">251</a>                 b = reader.read(buffer, 0, buffer.length);
<a class="jxr_linenumber" name="252" href="#252">252</a>                 <strong class="jxr_keyword">if</strong> (b &gt; 0) {
<a class="jxr_linenumber" name="253" href="#253">253</a>                     sb.append(buffer, 0, b);
<a class="jxr_linenumber" name="254" href="#254">254</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (b == -1) {
<a class="jxr_linenumber" name="255" href="#255">255</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="256" href="#256">256</a>                 }
<a class="jxr_linenumber" name="257" href="#257">257</a>             }
<a class="jxr_linenumber" name="258" href="#258">258</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="259" href="#259">259</a>             reader.close();
<a class="jxr_linenumber" name="260" href="#260">260</a>         }
<a class="jxr_linenumber" name="261" href="#261">261</a> 
<a class="jxr_linenumber" name="262" href="#262">262</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a class="jxr_linenumber" name="263" href="#263">263</a>     }
<a class="jxr_linenumber" name="264" href="#264">264</a> 
<a class="jxr_linenumber" name="265" href="#265">265</a>     <em class="jxr_comment">// --- handy create and delete methods ---</em>
<a class="jxr_linenumber" name="266" href="#266">266</a> 
<a class="jxr_linenumber" name="267" href="#267">267</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * Creates a folder.</em>
<a class="jxr_linenumber" name="269" href="#269">269</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="270" href="#270">270</a>     <strong class="jxr_keyword">protected</strong> Folder createFolder(Session session, Folder parent, String name) {
<a class="jxr_linenumber" name="271" href="#271">271</a>         <strong class="jxr_keyword">return</strong> createFolder(session, parent, name, getFolderTestTypeId());
<a class="jxr_linenumber" name="272" href="#272">272</a>     }
<a class="jxr_linenumber" name="273" href="#273">273</a> 
<a class="jxr_linenumber" name="274" href="#274">274</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * Creates a folder.</em>
<a class="jxr_linenumber" name="276" href="#276">276</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="277" href="#277">277</a>     <strong class="jxr_keyword">protected</strong> Folder createFolder(Session session, Folder parent, String name, String objectTypeId) {
<a class="jxr_linenumber" name="278" href="#278">278</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="279" href="#279">279</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="280" href="#280">280</a>         }
<a class="jxr_linenumber" name="281" href="#281">281</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="282" href="#282">282</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="283" href="#283">283</a>         }
<a class="jxr_linenumber" name="284" href="#284">284</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="285" href="#285">285</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="286" href="#286">286</a>         }
<a class="jxr_linenumber" name="287" href="#287">287</a> 
<a class="jxr_linenumber" name="288" href="#288">288</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="289" href="#289">289</a>         ObjectType type;
<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="291" href="#291">291</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="292" href="#292">292</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="293" href="#293">293</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="294" href="#294">294</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="295" href="#295">295</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="296" href="#296">296</a>         }
<a class="jxr_linenumber" name="297" href="#297">297</a> 
<a class="jxr_linenumber" name="298" href="#298">298</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="299" href="#299">299</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="300" href="#300">300</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="301" href="#301">301</a>         }
<a class="jxr_linenumber" name="302" href="#302">302</a> 
<a class="jxr_linenumber" name="303" href="#303">303</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="304" href="#304">304</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="305" href="#305">305</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="306" href="#306">306</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="307" href="#307">307</a> 
<a class="jxr_linenumber" name="308" href="#308">308</a>         Folder result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="309" href="#309">309</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="310" href="#310">310</a>             <em class="jxr_comment">// create the folder</em>
<a class="jxr_linenumber" name="311" href="#311">311</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="312" href="#312">312</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="313" href="#313">313</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Folder could not be created! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="314" href="#314">314</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="315" href="#315">315</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="316" href="#316">316</a>         }
<a class="jxr_linenumber" name="317" href="#317">317</a> 
<a class="jxr_linenumber" name="318" href="#318">318</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="319" href="#319">319</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="320" href="#320">320</a> 
<a class="jxr_linenumber" name="321" href="#321">321</a>             <em class="jxr_comment">// check folder name</em>
<a class="jxr_linenumber" name="322" href="#322">322</a>             f = createResult(FAILURE, <span class="jxr_string">"Folder name does not match!"</span>, false);
<a class="jxr_linenumber" name="323" href="#323">323</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="324" href="#324">324</a> 
<a class="jxr_linenumber" name="325" href="#325">325</a>             <em class="jxr_comment">// check the new folder</em>
<a class="jxr_linenumber" name="326" href="#326">326</a>             String[] propertiesToCheck = <strong class="jxr_keyword">new</strong> String[result.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="327" href="#327">327</a> 
<a class="jxr_linenumber" name="328" href="#328">328</a>             <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="329" href="#329">329</a>             <strong class="jxr_keyword">for</strong> (String propId : result.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="330" href="#330">330</a>                 propertiesToCheck[i++] = propId;
<a class="jxr_linenumber" name="331" href="#331">331</a>             }
<a class="jxr_linenumber" name="332" href="#332">332</a> 
<a class="jxr_linenumber" name="333" href="#333">333</a>             addResult(checkObject(session, result, propertiesToCheck, <span class="jxr_string">"New folder object spec compliance"</span>));
<a class="jxr_linenumber" name="334" href="#334">334</a> 
<a class="jxr_linenumber" name="335" href="#335">335</a>             <em class="jxr_comment">// check object parents</em>
<a class="jxr_linenumber" name="336" href="#336">336</a>             List&lt;Folder&gt; objectParents = result.getParents();
<a class="jxr_linenumber" name="337" href="#337">337</a> 
<a class="jxr_linenumber" name="338" href="#338">338</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="339" href="#339">339</a>                     <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="340" href="#340">340</a>             addResult(assertEquals(1, objectParents.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="341" href="#341">341</a> 
<a class="jxr_linenumber" name="342" href="#342">342</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="343" href="#343">343</a>                     + result.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="344" href="#344">344</a>             assertShallowEquals(parent, objectParents.get(0), <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="345" href="#345">345</a> 
<a class="jxr_linenumber" name="346" href="#346">346</a>             <em class="jxr_comment">// check folder parent</em>
<a class="jxr_linenumber" name="347" href="#347">347</a>             Folder folderParent = result.getFolderParent();
<a class="jxr_linenumber" name="348" href="#348">348</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="349" href="#349">349</a>             addResult(assertNotNull(folderParent, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="350" href="#350">350</a> 
<a class="jxr_linenumber" name="351" href="#351">351</a>             f = createResult(FAILURE,
<a class="jxr_linenumber" name="352" href="#352">352</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="353" href="#353">353</a>             assertShallowEquals(parent, folderParent, <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="354" href="#354">354</a> 
<a class="jxr_linenumber" name="355" href="#355">355</a>             <em class="jxr_comment">// check children of parent</em>
<a class="jxr_linenumber" name="356" href="#356">356</a>             <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="357" href="#357">357</a>             <strong class="jxr_keyword">for</strong> (CmisObject child : parent.getChildren(SELECT_ALL_NO_CACHE_OC)) {
<a class="jxr_linenumber" name="358" href="#358">358</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="359" href="#359">359</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="360" href="#360">360</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="361" href="#361">361</a>                     <strong class="jxr_keyword">if</strong> (result.getId().equals(child.getId())) {
<a class="jxr_linenumber" name="362" href="#362">362</a>                         found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="363" href="#363">363</a> 
<a class="jxr_linenumber" name="364" href="#364">364</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="365" href="#365">365</a>                         assertShallowEquals(result, child, <strong class="jxr_keyword">null</strong>, f);
<a class="jxr_linenumber" name="366" href="#366">366</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="367" href="#367">367</a>                     }
<a class="jxr_linenumber" name="368" href="#368">368</a>                 }
<a class="jxr_linenumber" name="369" href="#369">369</a>             }
<a class="jxr_linenumber" name="370" href="#370">370</a> 
<a class="jxr_linenumber" name="371" href="#371">371</a>             <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="372" href="#372">372</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="373" href="#373">373</a>                         <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="374" href="#374">374</a>             }
<a class="jxr_linenumber" name="375" href="#375">375</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="376" href="#376">376</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="377" href="#377">377</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="378" href="#378">378</a>         }
<a class="jxr_linenumber" name="379" href="#379">379</a> 
<a class="jxr_linenumber" name="380" href="#380">380</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="381" href="#381">381</a>     }
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="384" href="#384">384</a> <em class="jxr_javadoccomment">     * Counts the children in a folder.</em>
<a class="jxr_linenumber" name="385" href="#385">385</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="386" href="#386">386</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> countFolderChildren(Folder folder) {
<a class="jxr_linenumber" name="387" href="#387">387</a>         <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="388" href="#388">388</a> 
<a class="jxr_linenumber" name="389" href="#389">389</a>         <strong class="jxr_keyword">for</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a class="jxr_linenumber" name="390" href="#390">390</a>         CmisObject object : folder.getChildren()) {
<a class="jxr_linenumber" name="391" href="#391">391</a>             count++;
<a class="jxr_linenumber" name="392" href="#392">392</a>         }
<a class="jxr_linenumber" name="393" href="#393">393</a> 
<a class="jxr_linenumber" name="394" href="#394">394</a>         <strong class="jxr_keyword">return</strong> count;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="398" href="#398">398</a> <em class="jxr_javadoccomment">     * Creates a document.</em>
<a class="jxr_linenumber" name="399" href="#399">399</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="400" href="#400">400</a>     <strong class="jxr_keyword">protected</strong> Document createDocument(Session session, Folder parent, String name, String content) {
<a class="jxr_linenumber" name="401" href="#401">401</a>         <strong class="jxr_keyword">return</strong> createDocument(session, parent, name, getDocumentTestTypeId(), <strong class="jxr_keyword">null</strong>, content);
<a class="jxr_linenumber" name="402" href="#402">402</a>     }
<a class="jxr_linenumber" name="403" href="#403">403</a> 
<a class="jxr_linenumber" name="404" href="#404">404</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="405" href="#405">405</a> <em class="jxr_javadoccomment">     * Creates a document.</em>
<a class="jxr_linenumber" name="406" href="#406">406</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="407" href="#407">407</a>     <strong class="jxr_keyword">protected</strong> Document createDocument(Session session, Folder parent, String name, String objectTypeId,
<a class="jxr_linenumber" name="408" href="#408">408</a>             String[] secondaryTypeIds, String content) {
<a class="jxr_linenumber" name="409" href="#409">409</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="410" href="#410">410</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="411" href="#411">411</a>         }
<a class="jxr_linenumber" name="412" href="#412">412</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="413" href="#413">413</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="414" href="#414">414</a>         }
<a class="jxr_linenumber" name="415" href="#415">415</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="416" href="#416">416</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="417" href="#417">417</a>         }
<a class="jxr_linenumber" name="418" href="#418">418</a> 
<a class="jxr_linenumber" name="419" href="#419">419</a>         <strong class="jxr_keyword">if</strong> (content == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="420" href="#420">420</a>             content = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="421" href="#421">421</a>         }
<a class="jxr_linenumber" name="422" href="#422">422</a> 
<a class="jxr_linenumber" name="423" href="#423">423</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="424" href="#424">424</a>         ObjectType type;
<a class="jxr_linenumber" name="425" href="#425">425</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="426" href="#426">426</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="427" href="#427">427</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="428" href="#428">428</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="429" href="#429">429</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="430" href="#430">430</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="431" href="#431">431</a>         }
<a class="jxr_linenumber" name="432" href="#432">432</a> 
<a class="jxr_linenumber" name="433" href="#433">433</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="434" href="#434">434</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="435" href="#435">435</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="436" href="#436">436</a>         }
<a class="jxr_linenumber" name="437" href="#437">437</a> 
<a class="jxr_linenumber" name="438" href="#438">438</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="439" href="#439">439</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="440" href="#440">440</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="441" href="#441">441</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<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> (secondaryTypeIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="444" href="#444">444</a>             properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, Arrays.asList(secondaryTypeIds));
<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>         type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="448" href="#448">448</a>         <strong class="jxr_keyword">if</strong> (!(type instanceof DocumentTypeDefinition)) {
<a class="jxr_linenumber" name="449" href="#449">449</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="450" href="#450">450</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="451" href="#451">451</a>         }
<a class="jxr_linenumber" name="452" href="#452">452</a> 
<a class="jxr_linenumber" name="453" href="#453">453</a>         DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
<a class="jxr_linenumber" name="454" href="#454">454</a>         VersioningState versioningState = (Boolean.TRUE.equals(docType.isVersionable()) ? VersioningState.MAJOR
<a class="jxr_linenumber" name="455" href="#455">455</a>                 : VersioningState.NONE);
<a class="jxr_linenumber" name="456" href="#456">456</a> 
<a class="jxr_linenumber" name="457" href="#457">457</a>         byte[] contentBytes = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="458" href="#458">458</a>         Document result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="459" href="#459">459</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="460" href="#460">460</a>             contentBytes = IOUtils.toUTF8Bytes(content);
<a class="jxr_linenumber" name="461" href="#461">461</a>             ContentStream contentStream = <strong class="jxr_keyword">new</strong> ContentStreamImpl(name, BigInteger.valueOf(contentBytes.length),
<a class="jxr_linenumber" name="462" href="#462">462</a>                     <span class="jxr_string">"text/plain"</span>, <strong class="jxr_keyword">new</strong> ByteArrayInputStream(contentBytes));
<a class="jxr_linenumber" name="463" href="#463">463</a> 
<a class="jxr_linenumber" name="464" href="#464">464</a>             <em class="jxr_comment">// create the document</em>
<a class="jxr_linenumber" name="465" href="#465">465</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="466" href="#466">466</a>                     SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="467" href="#467">467</a> 
<a class="jxr_linenumber" name="468" href="#468">468</a>             contentStream.getStream().close();
<a class="jxr_linenumber" name="469" href="#469">469</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="470" href="#470">470</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Document could not be created! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="471" href="#471">471</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="472" href="#472">472</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="476" href="#476">476</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="477" href="#477">477</a> 
<a class="jxr_linenumber" name="478" href="#478">478</a>             <em class="jxr_comment">// check document name</em>
<a class="jxr_linenumber" name="479" href="#479">479</a>             f = createResult(FAILURE, <span class="jxr_string">"Document name does not match!"</span>, false);
<a class="jxr_linenumber" name="480" href="#480">480</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="481" href="#481">481</a> 
<a class="jxr_linenumber" name="482" href="#482">482</a>             <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="483" href="#483">483</a>             f = createResult(WARNING, <span class="jxr_string">"Content length does not match!"</span>, false);
<a class="jxr_linenumber" name="484" href="#484">484</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="485" href="#485">485</a> 
<a class="jxr_linenumber" name="486" href="#486">486</a>             <em class="jxr_comment">// check the new document</em>
<a class="jxr_linenumber" name="487" href="#487">487</a>             addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New document object spec compliance"</span>));
<a class="jxr_linenumber" name="488" href="#488">488</a> 
<a class="jxr_linenumber" name="489" href="#489">489</a>             <em class="jxr_comment">// check content</em>
<a class="jxr_linenumber" name="490" href="#490">490</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="491" href="#491">491</a>                 ContentStream contentStream = result.getContentStream();
<a class="jxr_linenumber" name="492" href="#492">492</a> 
<a class="jxr_linenumber" name="493" href="#493">493</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="494" href="#494">494</a>                         false);
<a class="jxr_linenumber" name="495" href="#495">495</a>                 addResult(assertEquals(name, contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="496" href="#496">496</a> 
<a class="jxr_linenumber" name="497" href="#497">497</a>                 f = createResult(WARNING,
<a class="jxr_linenumber" name="498" href="#498">498</a>                         <span class="jxr_string">"cmis:contentStreamFileName and the filename of the content stream do not match!"</span>, false);
<a class="jxr_linenumber" name="499" href="#499">499</a>                 addResult(assertEquals(result.getContentStreamFileName(), contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="500" href="#500">500</a> 
<a class="jxr_linenumber" name="501" href="#501">501</a>                 String fetchedContent = getStringFromContentStream(result.getContentStream());
<a class="jxr_linenumber" name="502" href="#502">502</a>                 <strong class="jxr_keyword">if</strong> (!content.equals(fetchedContent)) {
<a class="jxr_linenumber" name="503" href="#503">503</a>                     addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="504" href="#504">504</a>                             <span class="jxr_string">"Content of newly created document doesn't match the orign content!"</span>));
<a class="jxr_linenumber" name="505" href="#505">505</a>                 }
<a class="jxr_linenumber" name="506" href="#506">506</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="507" href="#507">507</a>                 addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="508" href="#508">508</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="509" href="#509">509</a>             }
<a class="jxr_linenumber" name="510" href="#510">510</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="511" href="#511">511</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="512" href="#512">512</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="513" href="#513">513</a>         }
<a class="jxr_linenumber" name="514" href="#514">514</a> 
<a class="jxr_linenumber" name="515" href="#515">515</a>         <em class="jxr_comment">// check parents</em>
<a class="jxr_linenumber" name="516" href="#516">516</a>         List&lt;Folder&gt; parents = result.getParents(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="517" href="#517">517</a>         <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="518" href="#518">518</a>         <strong class="jxr_keyword">for</strong> (Folder folder : parents) {
<a class="jxr_linenumber" name="519" href="#519">519</a>             <strong class="jxr_keyword">if</strong> (parent.getId().equals(folder.getId())) {
<a class="jxr_linenumber" name="520" href="#520">520</a>                 found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="521" href="#521">521</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="522" href="#522">522</a>             }
<a class="jxr_linenumber" name="523" href="#523">523</a>         }
<a class="jxr_linenumber" name="524" href="#524">524</a> 
<a class="jxr_linenumber" name="525" href="#525">525</a>         <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="526" href="#526">526</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="527" href="#527">527</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="528" href="#528">528</a>         }
<a class="jxr_linenumber" name="529" href="#529">529</a> 
<a class="jxr_linenumber" name="530" href="#530">530</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="531" href="#531">531</a>     }
<a class="jxr_linenumber" name="532" href="#532">532</a> 
<a class="jxr_linenumber" name="533" href="#533">533</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="534" href="#534">534</a> <em class="jxr_javadoccomment">     * Creates a relationship.</em>
<a class="jxr_linenumber" name="535" href="#535">535</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="536" href="#536">536</a>     <strong class="jxr_keyword">protected</strong> Relationship createRelationship(Session session, String name, ObjectId source, ObjectId target) {
<a class="jxr_linenumber" name="537" href="#537">537</a>         String objectTypeId = getParameters().get(TestParameters.DEFAULT_RELATIONSHIP_TYPE);
<a class="jxr_linenumber" name="538" href="#538">538</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="539" href="#539">539</a>             objectTypeId = TestParameters.DEFAULT_RELATIONSHIP_TYPE_VALUE;
<a class="jxr_linenumber" name="540" href="#540">540</a>         }
<a class="jxr_linenumber" name="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>         <strong class="jxr_keyword">return</strong> createRelationship(session, name, source, target, objectTypeId);
<a class="jxr_linenumber" name="543" href="#543">543</a>     }
<a class="jxr_linenumber" name="544" href="#544">544</a> 
<a class="jxr_linenumber" name="545" href="#545">545</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="546" href="#546">546</a> <em class="jxr_javadoccomment">     * Creates a relationship.</em>
<a class="jxr_linenumber" name="547" href="#547">547</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="548" href="#548">548</a>     <strong class="jxr_keyword">protected</strong> Relationship createRelationship(Session session, String name, ObjectId source, ObjectId target,
<a class="jxr_linenumber" name="549" href="#549">549</a>             String objectTypeId) {
<a class="jxr_linenumber" name="550" href="#550">550</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="551" href="#551">551</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="552" href="#552">552</a>         }
<a class="jxr_linenumber" name="553" href="#553">553</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="554" href="#554">554</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="555" href="#555">555</a>         }
<a class="jxr_linenumber" name="556" href="#556">556</a> 
<a class="jxr_linenumber" name="557" href="#557">557</a>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="558" href="#558">558</a>         ObjectType type;
<a class="jxr_linenumber" name="559" href="#559">559</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="560" href="#560">560</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="561" href="#561">561</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="562" href="#562">562</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="563" href="#563">563</a>                     + e.getMessage(), e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="564" href="#564">564</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="565" href="#565">565</a>         }
<a class="jxr_linenumber" name="566" href="#566">566</a> 
<a class="jxr_linenumber" name="567" href="#567">567</a>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="568" href="#568">568</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="569" href="#569">569</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="570" href="#570">570</a>         }
<a class="jxr_linenumber" name="571" href="#571">571</a> 
<a class="jxr_linenumber" name="572" href="#572">572</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="573" href="#573">573</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="574" href="#574">574</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="575" href="#575">575</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="576" href="#576">576</a>         properties.put(PropertyIds.SOURCE_ID, source.getId());
<a class="jxr_linenumber" name="577" href="#577">577</a>         properties.put(PropertyIds.TARGET_ID, target.getId());
<a class="jxr_linenumber" name="578" href="#578">578</a> 
<a class="jxr_linenumber" name="579" href="#579">579</a>         ObjectId relId;
<a class="jxr_linenumber" name="580" href="#580">580</a>         Relationship result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="581" href="#581">581</a> 
<a class="jxr_linenumber" name="582" href="#582">582</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="583" href="#583">583</a>             relId = session.createRelationship(properties);
<a class="jxr_linenumber" name="584" href="#584">584</a>             result = (Relationship) session.getObject(relId, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="585" href="#585">585</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="586" href="#586">586</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="587" href="#587">587</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="588" href="#588">588</a>         }
<a class="jxr_linenumber" name="589" href="#589">589</a> 
<a class="jxr_linenumber" name="590" href="#590">590</a>         <strong class="jxr_keyword">if</strong> (result != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="591" href="#591">591</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="592" href="#592">592</a>                 <em class="jxr_comment">// check the new relationship</em>
<a class="jxr_linenumber" name="593" href="#593">593</a>                 addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New document object spec compliance"</span>));
<a class="jxr_linenumber" name="594" href="#594">594</a>             } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="595" href="#595">595</a>                 addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="596" href="#596">596</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="597" href="#597">597</a>             }
<a class="jxr_linenumber" name="598" href="#598">598</a>         }
<a class="jxr_linenumber" name="599" href="#599">599</a> 
<a class="jxr_linenumber" name="600" href="#600">600</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="601" href="#601">601</a>     }
<a class="jxr_linenumber" name="602" href="#602">602</a> 
<a class="jxr_linenumber" name="603" href="#603">603</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="604" href="#604">604</a> <em class="jxr_javadoccomment">     * Creates a item.</em>
<a class="jxr_linenumber" name="605" href="#605">605</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="606" href="#606">606</a>     <strong class="jxr_keyword">protected</strong> Item createItem(Session session, Folder parent, String name) {
<a class="jxr_linenumber" name="607" href="#607">607</a>         <strong class="jxr_keyword">return</strong> createItem(session, parent, name, getItemTestTypeId());
<a class="jxr_linenumber" name="608" href="#608">608</a>     }
<a class="jxr_linenumber" name="609" href="#609">609</a> 
<a class="jxr_linenumber" name="610" href="#610">610</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="611" href="#611">611</a> <em class="jxr_javadoccomment">     * Creates a item.</em>
<a class="jxr_linenumber" name="612" href="#612">612</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="613" href="#613">613</a>     <strong class="jxr_keyword">protected</strong> Item createItem(Session session, Folder parent, String name, String objectTypeId) {
<a class="jxr_linenumber" name="614" href="#614">614</a>         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="615" href="#615">615</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="616" href="#616">616</a>         }
<a class="jxr_linenumber" name="617" href="#617">617</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="618" href="#618">618</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="619" href="#619">619</a>         }
<a class="jxr_linenumber" name="620" href="#620">620</a>         <strong class="jxr_keyword">if</strong> (objectTypeId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="621" href="#621">621</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="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>         <em class="jxr_comment">// check type</em>
<a class="jxr_linenumber" name="625" href="#625">625</a>         ObjectType type;
<a class="jxr_linenumber" name="626" href="#626">626</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="627" href="#627">627</a>             type = session.getTypeDefinition(objectTypeId);
<a class="jxr_linenumber" name="628" href="#628">628</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="629" href="#629">629</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="630" href="#630">630</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="631" href="#631">631</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(type.isCreatable())) {
<a class="jxr_linenumber" name="635" href="#635">635</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="636" href="#636">636</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="637" href="#637">637</a>         }
<a class="jxr_linenumber" name="638" href="#638">638</a> 
<a class="jxr_linenumber" name="639" href="#639">639</a>         <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="640" href="#640">640</a>         Map&lt;String, Object&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="641" href="#641">641</a>         properties.put(PropertyIds.NAME, name);
<a class="jxr_linenumber" name="642" href="#642">642</a>         properties.put(PropertyIds.OBJECT_TYPE_ID, objectTypeId);
<a class="jxr_linenumber" name="643" href="#643">643</a> 
<a class="jxr_linenumber" name="644" href="#644">644</a>         Item result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="645" href="#645">645</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="646" href="#646">646</a>             <em class="jxr_comment">// create the item</em>
<a class="jxr_linenumber" name="647" href="#647">647</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="648" href="#648">648</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="649" href="#649">649</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Item could not be created! Exception: "</span> + e.getMessage(), e,
<a class="jxr_linenumber" name="650" href="#650">650</a>                     <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="651" href="#651">651</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="652" href="#652">652</a>         }
<a class="jxr_linenumber" name="653" href="#653">653</a> 
<a class="jxr_linenumber" name="654" href="#654">654</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="655" href="#655">655</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="656" href="#656">656</a> 
<a class="jxr_linenumber" name="657" href="#657">657</a>             <em class="jxr_comment">// check item name</em>
<a class="jxr_linenumber" name="658" href="#658">658</a>             f = createResult(FAILURE, <span class="jxr_string">"Item name does not match!"</span>, false);
<a class="jxr_linenumber" name="659" href="#659">659</a>             addResult(assertEquals(name, result.getName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="660" href="#660">660</a> 
<a class="jxr_linenumber" name="661" href="#661">661</a>             addResult(checkObject(session, result, getAllProperties(result), <span class="jxr_string">"New item object spec compliance"</span>));
<a class="jxr_linenumber" name="662" href="#662">662</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="663" href="#663">663</a>             addResult(createResult(UNEXPECTED_EXCEPTION, <span class="jxr_string">"Newly created Item is invalid! Exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="664" href="#664">664</a>                     e, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="665" href="#665">665</a>         }
<a class="jxr_linenumber" name="666" href="#666">666</a> 
<a class="jxr_linenumber" name="667" href="#667">667</a>         <em class="jxr_comment">// check parents</em>
<a class="jxr_linenumber" name="668" href="#668">668</a>         List&lt;Folder&gt; parents = result.getParents(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="669" href="#669">669</a>         <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="670" href="#670">670</a>         <strong class="jxr_keyword">for</strong> (Folder folder : parents) {
<a class="jxr_linenumber" name="671" href="#671">671</a>             <strong class="jxr_keyword">if</strong> (parent.getId().equals(folder.getId())) {
<a class="jxr_linenumber" name="672" href="#672">672</a>                 found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="673" href="#673">673</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="674" href="#674">674</a>             }
<a class="jxr_linenumber" name="675" href="#675">675</a>         }
<a class="jxr_linenumber" name="676" href="#676">676</a> 
<a class="jxr_linenumber" name="677" href="#677">677</a>         <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="678" href="#678">678</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="679" href="#679">679</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="680" href="#680">680</a>         }
<a class="jxr_linenumber" name="681" href="#681">681</a> 
<a class="jxr_linenumber" name="682" href="#682">682</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="683" href="#683">683</a>     }
<a class="jxr_linenumber" name="684" href="#684">684</a> 
<a class="jxr_linenumber" name="685" href="#685">685</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="686" href="#686">686</a> <em class="jxr_javadoccomment">     * Deletes an object and checks if it is deleted.</em>
<a class="jxr_linenumber" name="687" href="#687">687</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="688" href="#688">688</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteObject(CmisObject object) {
<a class="jxr_linenumber" name="689" href="#689">689</a>         <strong class="jxr_keyword">if</strong> (object != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="690" href="#690">690</a>             <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<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>                     ((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="693" href="#693">693</a>                 } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="694" href="#694">694</a>                     addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="695" href="#695">695</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="696" href="#696">696</a>                 }
<a class="jxr_linenumber" name="697" href="#697">697</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="698" href="#698">698</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="699" href="#699">699</a>                     object.delete(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="700" href="#700">700</a>                 } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="701" href="#701">701</a>                     addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="702" href="#702">702</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="703" href="#703">703</a>                 }
<a class="jxr_linenumber" name="704" href="#704">704</a>             }
<a class="jxr_linenumber" name="705" href="#705">705</a> 
<a class="jxr_linenumber" name="706" href="#706">706</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="707" href="#707">707</a>                     + object.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="708" href="#708">708</a>             addResult(assertIsFalse(exists(object), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="709" href="#709">709</a>         }
<a class="jxr_linenumber" name="710" href="#710">710</a>     }
<a class="jxr_linenumber" name="711" href="#711">711</a> 
<a class="jxr_linenumber" name="712" href="#712">712</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="713" href="#713">713</a> <em class="jxr_javadoccomment">     * Tests if an object exists by refreshing it.</em>
<a class="jxr_linenumber" name="714" href="#714">714</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="715" href="#715">715</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> exists(CmisObject object) {
<a class="jxr_linenumber" name="716" href="#716">716</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="717" href="#717">717</a>             object.refresh();
<a class="jxr_linenumber" name="718" href="#718">718</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="719" href="#719">719</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="720" href="#720">720</a>             <strong class="jxr_keyword">return</strong> false;
<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> 
<a class="jxr_linenumber" name="724" href="#724">724</a>     <em class="jxr_comment">// --- type helpers ---</em>
<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 new type.</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> ObjectType createType(Session session, TypeDefinition typeDef) {
<a class="jxr_linenumber" name="730" href="#730">730</a> 
<a class="jxr_linenumber" name="731" href="#731">731</a>         NewTypeSettableAttributes settableAttributes = session.getRepositoryInfo().getCapabilities()
<a class="jxr_linenumber" name="732" href="#732">732</a>                 .getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="733" href="#733">733</a>         <strong class="jxr_keyword">if</strong> (settableAttributes == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="734" href="#734">734</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="735" href="#735">735</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="736" href="#736">736</a>             <em class="jxr_comment">// TODO: add more tests</em>
<a class="jxr_linenumber" name="737" href="#737">737</a>         }
<a class="jxr_linenumber" name="738" href="#738">738</a> 
<a class="jxr_linenumber" name="739" href="#739">739</a>         ObjectType newType = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="740" href="#740">740</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="741" href="#741">741</a>             newType = session.createType(typeDef);
<a class="jxr_linenumber" name="742" href="#742">742</a>             addResult(createInfoResult(<span class="jxr_string">"Created type '"</span> + typeDef.getId()
<a class="jxr_linenumber" name="743" href="#743">743</a>                     + <span class="jxr_string">"'. Repository assigned the following type id: "</span> + newType.getId()));
<a class="jxr_linenumber" name="744" href="#744">744</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="745" href="#745">745</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="746" href="#746">746</a>                     false));
<a class="jxr_linenumber" name="747" href="#747">747</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="748" href="#748">748</a>         }
<a class="jxr_linenumber" name="749" href="#749">749</a> 
<a class="jxr_linenumber" name="750" href="#750">750</a>         addResult(checkTypeDefinition(session, newType, <span class="jxr_string">"Newly created type spec compliance."</span>));
<a class="jxr_linenumber" name="751" href="#751">751</a> 
<a class="jxr_linenumber" name="752" href="#752">752</a>         <strong class="jxr_keyword">if</strong> (newType.getTypeMutability() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="753" href="#753">753</a>             addResult(createResult(FAILURE,
<a class="jxr_linenumber" name="754" href="#754">754</a>                     <span class="jxr_string">"Newly created type does not provide type mutability data! Id: "</span> + newType.getId()));
<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">return</strong> newType;
<a class="jxr_linenumber" name="758" href="#758">758</a>     }
<a class="jxr_linenumber" name="759" href="#759">759</a> 
<a class="jxr_linenumber" name="760" href="#760">760</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="761" href="#761">761</a> <em class="jxr_javadoccomment">     * Deletes a type.</em>
<a class="jxr_linenumber" name="762" href="#762">762</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="763" href="#763">763</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteType(Session session, String typeId) {
<a class="jxr_linenumber" name="764" href="#764">764</a>         ObjectType type = session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="765" href="#765">765</a> 
<a class="jxr_linenumber" name="766" href="#766">766</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="767" href="#767">767</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="768" href="#768">768</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="769" href="#769">769</a>         }
<a class="jxr_linenumber" name="770" href="#770">770</a> 
<a class="jxr_linenumber" name="771" href="#771">771</a>         <em class="jxr_comment">// check if type can be deleted</em>
<a class="jxr_linenumber" name="772" href="#772">772</a>         <strong class="jxr_keyword">if</strong> (type.getTypeMutability() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="773" href="#773">773</a>             addResult(createResult(FAILURE, <span class="jxr_string">"Type does not provide type mutability data! Id: "</span> + typeId));
<a class="jxr_linenumber" name="774" href="#774">774</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="775" href="#775">775</a>             <strong class="jxr_keyword">if</strong> (!Boolean.TRUE.equals(type.getTypeMutability().canDelete())) {
<a class="jxr_linenumber" name="776" href="#776">776</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="777" href="#777">777</a>                         + typeId));
<a class="jxr_linenumber" name="778" href="#778">778</a>             }
<a class="jxr_linenumber" name="779" href="#779">779</a>         }
<a class="jxr_linenumber" name="780" href="#780">780</a> 
<a class="jxr_linenumber" name="781" href="#781">781</a>         <em class="jxr_comment">// delete it</em>
<a class="jxr_linenumber" name="782" href="#782">782</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="783" href="#783">783</a>             session.deleteType(typeId);
<a class="jxr_linenumber" name="784" href="#784">784</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="785" href="#785">785</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="786" href="#786">786</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="787" href="#787">787</a>         }
<a class="jxr_linenumber" name="788" href="#788">788</a> 
<a class="jxr_linenumber" name="789" href="#789">789</a>         <em class="jxr_comment">// check if the type still exists</em>
<a class="jxr_linenumber" name="790" href="#790">790</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="791" href="#791">791</a>             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="792" href="#792">792</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="793" href="#793">793</a>         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="794" href="#794">794</a>             <em class="jxr_comment">// expected result</em>
<a class="jxr_linenumber" name="795" href="#795">795</a>         }
<a class="jxr_linenumber" name="796" href="#796">796</a>     }
<a class="jxr_linenumber" name="797" href="#797">797</a> 
<a class="jxr_linenumber" name="798" href="#798">798</a>     <em class="jxr_comment">// --- test folder methods ---</em>
<a class="jxr_linenumber" name="799" href="#799">799</a> 
<a class="jxr_linenumber" name="800" href="#800">800</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="801" href="#801">801</a> <em class="jxr_javadoccomment">     * Creates a test folder.</em>
<a class="jxr_linenumber" name="802" href="#802">802</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="803" href="#803">803</a>     <strong class="jxr_keyword">protected</strong> Folder createTestFolder(Session session) {
<a class="jxr_linenumber" name="804" href="#804">804</a> 
<a class="jxr_linenumber" name="805" href="#805">805</a>         String testFolderParentPath = getParameters().get(TestParameters.DEFAULT_TEST_FOLDER_PARENT);
<a class="jxr_linenumber" name="806" href="#806">806</a>         <strong class="jxr_keyword">if</strong> (testFolderParentPath == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="807" href="#807">807</a>             testFolderParentPath = TestParameters.DEFAULT_TEST_FOLDER_PARENT_VALUE;
<a class="jxr_linenumber" name="808" href="#808">808</a>         }
<a class="jxr_linenumber" name="809" href="#809">809</a> 
<a class="jxr_linenumber" name="810" href="#810">810</a>         String name = <span class="jxr_string">"cmistck"</span> + System.currentTimeMillis() + session.getRepositoryInfo().hashCode();
<a class="jxr_linenumber" name="811" href="#811">811</a> 
<a class="jxr_linenumber" name="812" href="#812">812</a>         Folder parent = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="813" href="#813">813</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="814" href="#814">814</a>             CmisObject parentObject = session.getObjectByPath(testFolderParentPath, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="815" href="#815">815</a>             <strong class="jxr_keyword">if</strong> (!(parentObject instanceof Folder)) {
<a class="jxr_linenumber" name="816" href="#816">816</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="817" href="#817">817</a>                         + testFolderParentPath, <strong class="jxr_keyword">true</strong>));
<a class="jxr_linenumber" name="818" href="#818">818</a>             }
<a class="jxr_linenumber" name="819" href="#819">819</a> 
<a class="jxr_linenumber" name="820" href="#820">820</a>             parent = (Folder) parentObject;
<a class="jxr_linenumber" name="821" href="#821">821</a>         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="822" href="#822">822</a>             addResult(createResult(UNEXPECTED_EXCEPTION,
<a class="jxr_linenumber" name="823" href="#823">823</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="824" href="#824">824</a>         }
<a class="jxr_linenumber" name="825" href="#825">825</a> 
<a class="jxr_linenumber" name="826" href="#826">826</a>         <strong class="jxr_keyword">if</strong> (parent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="827" href="#827">827</a>             testFolder = createFolder(session, parent, name);
<a class="jxr_linenumber" name="828" href="#828">828</a>         }
<a class="jxr_linenumber" name="829" href="#829">829</a> 
<a class="jxr_linenumber" name="830" href="#830">830</a>         <strong class="jxr_keyword">return</strong> testFolder;
<a class="jxr_linenumber" name="831" href="#831">831</a>     }
<a class="jxr_linenumber" name="832" href="#832">832</a> 
<a class="jxr_linenumber" name="833" href="#833">833</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="834" href="#834">834</a> <em class="jxr_javadoccomment">     * Get the test folder.</em>
<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>     <strong class="jxr_keyword">protected</strong> Folder getTestFolder() {
<a class="jxr_linenumber" name="837" href="#837">837</a>         <strong class="jxr_keyword">return</strong> testFolder;
<a class="jxr_linenumber" name="838" href="#838">838</a>     }
<a class="jxr_linenumber" name="839" href="#839">839</a> 
<a class="jxr_linenumber" name="840" href="#840">840</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="841" href="#841">841</a> <em class="jxr_javadoccomment">     * Delete the test folder.</em>
<a class="jxr_linenumber" name="842" href="#842">842</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="843" href="#843">843</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> deleteTestFolder() {
<a class="jxr_linenumber" name="844" href="#844">844</a>         deleteObject(testFolder);
<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">// --- reusable checks ----</em>
<a class="jxr_linenumber" name="848" href="#848">848</a> 
<a class="jxr_linenumber" name="849" href="#849">849</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isGetDescendantsSupported(Session session) {
<a class="jxr_linenumber" name="850" href="#850">850</a>         RepositoryCapabilities cap = session.getRepositoryInfo().getCapabilities();
<a class="jxr_linenumber" name="851" href="#851">851</a> 
<a class="jxr_linenumber" name="852" href="#852">852</a>         <strong class="jxr_keyword">if</strong> (cap == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="853" href="#853">853</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="854" href="#854">854</a>         }
<a class="jxr_linenumber" name="855" href="#855">855</a> 
<a class="jxr_linenumber" name="856" href="#856">856</a>         <strong class="jxr_keyword">if</strong> (cap.isGetDescendantsSupported() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="857" href="#857">857</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="858" href="#858">858</a>         }
<a class="jxr_linenumber" name="859" href="#859">859</a> 
<a class="jxr_linenumber" name="860" href="#860">860</a>         <strong class="jxr_keyword">return</strong> cap.isGetDescendantsSupported().booleanValue();
<a class="jxr_linenumber" name="861" href="#861">861</a>     }
<a class="jxr_linenumber" name="862" href="#862">862</a> 
<a class="jxr_linenumber" name="863" href="#863">863</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isGetFolderTreeSupported(Session session) {
<a class="jxr_linenumber" name="864" href="#864">864</a>         RepositoryCapabilities cap = session.getRepositoryInfo().getCapabilities();
<a class="jxr_linenumber" name="865" href="#865">865</a> 
<a class="jxr_linenumber" name="866" href="#866">866</a>         <strong class="jxr_keyword">if</strong> (cap == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="867" href="#867">867</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="868" href="#868">868</a>         }
<a class="jxr_linenumber" name="869" href="#869">869</a> 
<a class="jxr_linenumber" name="870" href="#870">870</a>         <strong class="jxr_keyword">if</strong> (cap.isGetFolderTreeSupported() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="871" href="#871">871</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="872" href="#872">872</a>         }
<a class="jxr_linenumber" name="873" href="#873">873</a> 
<a class="jxr_linenumber" name="874" href="#874">874</a>         <strong class="jxr_keyword">return</strong> cap.isGetFolderTreeSupported().booleanValue();
<a class="jxr_linenumber" name="875" href="#875">875</a>     }
<a class="jxr_linenumber" name="876" href="#876">876</a> 
<a class="jxr_linenumber" name="877" href="#877">877</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isOrderByNameSupported(Session session) {
<a class="jxr_linenumber" name="878" href="#878">878</a>         <strong class="jxr_keyword">if</strong> (session.getRepositoryInfo().getCapabilities().getOrderByCapability() == CapabilityOrderBy.NONE) {
<a class="jxr_linenumber" name="879" href="#879">879</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="880" href="#880">880</a>         }
<a class="jxr_linenumber" name="881" href="#881">881</a> 
<a class="jxr_linenumber" name="882" href="#882">882</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="883" href="#883">883</a>     }
<a class="jxr_linenumber" name="884" href="#884">884</a> 
<a class="jxr_linenumber" name="885" href="#885">885</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasRelationships(Session session) {
<a class="jxr_linenumber" name="886" href="#886">886</a>         <strong class="jxr_keyword">if</strong> (supportsRelationships == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="887" href="#887">887</a>             supportsRelationships = Boolean.FALSE;
<a class="jxr_linenumber" name="888" href="#888">888</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="889" href="#889">889</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.value().equals(type.getId())) {
<a class="jxr_linenumber" name="890" href="#890">890</a>                     supportsRelationships = Boolean.TRUE;
<a class="jxr_linenumber" name="891" href="#891">891</a>                     <strong class="jxr_keyword">break</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>         }
<a class="jxr_linenumber" name="895" href="#895">895</a> 
<a class="jxr_linenumber" name="896" href="#896">896</a>         <strong class="jxr_keyword">return</strong> supportsRelationships.booleanValue();
<a class="jxr_linenumber" name="897" href="#897">897</a>     }
<a class="jxr_linenumber" name="898" href="#898">898</a> 
<a class="jxr_linenumber" name="899" href="#899">899</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasPolicies(Session session) {
<a class="jxr_linenumber" name="900" href="#900">900</a>         <strong class="jxr_keyword">if</strong> (supportsPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="901" href="#901">901</a>             supportsPolicies = Boolean.FALSE;
<a class="jxr_linenumber" name="902" href="#902">902</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="903" href="#903">903</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.value().equals(type.getId())) {
<a class="jxr_linenumber" name="904" href="#904">904</a>                     supportsPolicies = Boolean.TRUE;
<a class="jxr_linenumber" name="905" href="#905">905</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="906" href="#906">906</a>                 }
<a class="jxr_linenumber" name="907" href="#907">907</a>             }
<a class="jxr_linenumber" name="908" href="#908">908</a>         }
<a class="jxr_linenumber" name="909" href="#909">909</a> 
<a class="jxr_linenumber" name="910" href="#910">910</a>         <strong class="jxr_keyword">return</strong> supportsPolicies.booleanValue();
<a class="jxr_linenumber" name="911" href="#911">911</a>     }
<a class="jxr_linenumber" name="912" href="#912">912</a> 
<a class="jxr_linenumber" name="913" href="#913">913</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasItems(Session session) {
<a class="jxr_linenumber" name="914" href="#914">914</a>         <strong class="jxr_keyword">if</strong> (supportsItems == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="915" href="#915">915</a>             supportsItems = Boolean.FALSE;
<a class="jxr_linenumber" name="916" href="#916">916</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="917" href="#917">917</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_ITEM.value().equals(type.getId())) {
<a class="jxr_linenumber" name="918" href="#918">918</a>                     supportsItems = Boolean.TRUE;
<a class="jxr_linenumber" name="919" href="#919">919</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="920" href="#920">920</a>                 }
<a class="jxr_linenumber" name="921" href="#921">921</a>             }
<a class="jxr_linenumber" name="922" href="#922">922</a>         }
<a class="jxr_linenumber" name="923" href="#923">923</a> 
<a class="jxr_linenumber" name="924" href="#924">924</a>         <strong class="jxr_keyword">return</strong> supportsItems.booleanValue();
<a class="jxr_linenumber" name="925" href="#925">925</a>     }
<a class="jxr_linenumber" name="926" href="#926">926</a> 
<a class="jxr_linenumber" name="927" href="#927">927</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> hasSecondaries(Session session) {
<a class="jxr_linenumber" name="928" href="#928">928</a>         <strong class="jxr_keyword">if</strong> (supportsSecondaries == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="929" href="#929">929</a>             supportsSecondaries = Boolean.FALSE;
<a class="jxr_linenumber" name="930" href="#930">930</a>             <strong class="jxr_keyword">for</strong> (ObjectType type : session.getTypeChildren(<strong class="jxr_keyword">null</strong>, false)) {
<a class="jxr_linenumber" name="931" href="#931">931</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_SECONDARY.value().equals(type.getId())) {
<a class="jxr_linenumber" name="932" href="#932">932</a>                     supportsSecondaries = Boolean.TRUE;
<a class="jxr_linenumber" name="933" href="#933">933</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="934" href="#934">934</a>                 }
<a class="jxr_linenumber" name="935" href="#935">935</a>             }
<a class="jxr_linenumber" name="936" href="#936">936</a>         }
<a class="jxr_linenumber" name="937" href="#937">937</a> 
<a class="jxr_linenumber" name="938" href="#938">938</a>         <strong class="jxr_keyword">return</strong> supportsSecondaries.booleanValue();
<a class="jxr_linenumber" name="939" href="#939">939</a>     }
<a class="jxr_linenumber" name="940" href="#940">940</a> 
<a class="jxr_linenumber" name="941" href="#941">941</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="942" href="#942">942</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="943" href="#943">943</a> 
<a class="jxr_linenumber" name="944" href="#944">944</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="945" href="#945">945</a> 
<a class="jxr_linenumber" name="946" href="#946">946</a>         f = createResult(FAILURE, <span class="jxr_string">"Object is null!"</span>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="947" href="#947">947</a>         addResult(results, assertNotNull(object, <strong class="jxr_keyword">null</strong>, f));
<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> (object != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="950" href="#950">950</a>             f = createResult(FAILURE, <span class="jxr_string">"Object id is not set!"</span>);
<a class="jxr_linenumber" name="951" href="#951">951</a>             addResult(results, assertStringNotEmpty(object.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="952" href="#952">952</a> 
<a class="jxr_linenumber" name="953" href="#953">953</a>             GregorianCalendar creationDate = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="954" href="#954">954</a>             GregorianCalendar lastModificationDate = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="955" href="#955">955</a> 
<a class="jxr_linenumber" name="956" href="#956">956</a>             <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="957" href="#957">957</a>             <strong class="jxr_keyword">for</strong> (String propId : properties) {
<a class="jxr_linenumber" name="958" href="#958">958</a>                 Property&lt;?&gt; prop = object.getProperty(propId);
<a class="jxr_linenumber" name="959" href="#959">959</a> 
<a class="jxr_linenumber" name="960" href="#960">960</a>                 <em class="jxr_comment">// values of non-spec properties are not checked here</em>
<a class="jxr_linenumber" name="961" href="#961">961</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/PropertyCheckEnum.html">PropertyCheckEnum</a> propertyCheck = PropertyCheckEnum.NO_VALUE_CHECK;
<a class="jxr_linenumber" name="962" href="#962">962</a> 
<a class="jxr_linenumber" name="963" href="#963">963</a>                 <em class="jxr_comment">// known properties that are strings and must be set</em>
<a class="jxr_linenumber" name="964" href="#964">964</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.OBJECT_ID.equals(propId) || PropertyIds.BASE_TYPE_ID.equals(propId)
<a class="jxr_linenumber" name="965" href="#965">965</a>                         || PropertyIds.OBJECT_TYPE_ID.equals(propId) || PropertyIds.PATH.equals(propId)
<a class="jxr_linenumber" name="966" href="#966">966</a>                         || PropertyIds.SOURCE_ID.equals(propId) || PropertyIds.TARGET_ID.equals(propId)) {
<a class="jxr_linenumber" name="967" href="#967">967</a>                     propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<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>                 <strong class="jxr_keyword">if</strong> (!(object instanceof Relationship)) {
<a class="jxr_linenumber" name="971" href="#971">971</a>                     <strong class="jxr_keyword">if</strong> (PropertyIds.CREATED_BY.equals(propId) || PropertyIds.LAST_MODIFIED_BY.equals(propId)) {
<a class="jxr_linenumber" name="972" href="#972">972</a>                         propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="973" href="#973">973</a>                     }
<a class="jxr_linenumber" name="974" href="#974">974</a>                 }
<a class="jxr_linenumber" name="975" href="#975">975</a> 
<a class="jxr_linenumber" name="976" href="#976">976</a>                 <em class="jxr_comment">// known properties that are strings and should be set</em>
<a class="jxr_linenumber" name="977" href="#977">977</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.NAME.equals(propId) || PropertyIds.POLICY_TEXT.equals(propId)) {
<a class="jxr_linenumber" name="978" href="#978">978</a>                     propertyCheck = PropertyCheckEnum.STRING_SHOULD_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="979" href="#979">979</a>                 }
<a class="jxr_linenumber" name="980" href="#980">980</a> 
<a class="jxr_linenumber" name="981" href="#981">981</a>                 <em class="jxr_comment">// known properties that are not strings and must be set</em>
<a class="jxr_linenumber" name="982" href="#982">982</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.IS_IMMUTABLE.equals(propId)) {
<a class="jxr_linenumber" name="983" href="#983">983</a>                     propertyCheck = PropertyCheckEnum.MUST_BE_SET;
<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">if</strong> (!(object instanceof Relationship)) {
<a class="jxr_linenumber" name="987" href="#987">987</a>                     <strong class="jxr_keyword">if</strong> (PropertyIds.CREATION_DATE.equals(propId) || PropertyIds.LAST_MODIFICATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="988" href="#988">988</a>                         propertyCheck = PropertyCheckEnum.MUST_BE_SET;
<a class="jxr_linenumber" name="989" href="#989">989</a>                     }
<a class="jxr_linenumber" name="990" href="#990">990</a>                 }
<a class="jxr_linenumber" name="991" href="#991">991</a> 
<a class="jxr_linenumber" name="992" href="#992">992</a>                 <em class="jxr_comment">// special case: parent</em>
<a class="jxr_linenumber" name="993" href="#993">993</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.PARENT_ID.equals(propId)) {
<a class="jxr_linenumber" name="994" href="#994">994</a>                     <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="995" href="#995">995</a>                         <strong class="jxr_keyword">if</strong> (((Folder) object).isRootFolder()) {
<a class="jxr_linenumber" name="996" href="#996">996</a>                             propertyCheck = PropertyCheckEnum.MUST_NOT_BE_SET;
<a class="jxr_linenumber" name="997" href="#997">997</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="998" href="#998">998</a>                             propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY;
<a class="jxr_linenumber" name="999" href="#999">999</a>                         }
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>                         addResult(
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>                                 results,
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>                                 createResult(FAILURE, <span class="jxr_string">"Property "</span> + PropertyIds.PARENT_ID
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>                                         + <span class="jxr_string">" is only defined for folders!"</span>));
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>                     }
<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>                 <em class="jxr_comment">// special case: path</em>
<a class="jxr_linenumber" name="1009" href="#1009">1009</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="1010" href="#1010">1010</a>                     Object path = prop.getFirstValue();
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>                     <strong class="jxr_keyword">if</strong> (path instanceof String) {
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>                         f = createResult(FAILURE, <span class="jxr_string">"Path does not start with '/': "</span> + path);
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>                         addResult(results,
<a class="jxr_linenumber" name="1014" href="#1014">1014</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="1015" href="#1015">1015</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1016" href="#1016">1016</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="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> 
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>                 <em class="jxr_comment">// check property</em>
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>                 addResult(results, checkProperty(prop, <span class="jxr_string">"Property "</span> + propId, propertyCheck));
<a class="jxr_linenumber" name="1022" href="#1022">1022</a> 
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>                 <em class="jxr_comment">// catch creationDate and lastModificationDate</em>
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>                 <strong class="jxr_keyword">if</strong> (PropertyIds.CREATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>                     creationDate = (GregorianCalendar) prop.getFirstValue();
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (PropertyIds.LAST_MODIFICATION_DATE.equals(propId)) {
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>                     lastModificationDate = (GregorianCalendar) prop.getFirstValue();
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>                 }
<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>             <em class="jxr_comment">// check creationDate &lt;= lastModificationDate</em>
<a class="jxr_linenumber" name="1032" href="#1032">1032</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="1033" href="#1033">1033</a>                 f = createResult(FAILURE, <span class="jxr_string">"Last modification date precedes creation date!"</span>);
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>                 addResult(results,
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>                         assertIsTrue(creationDate.getTimeInMillis() &lt;= lastModificationDate.getTimeInMillis(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1036" href="#1036">1036</a> 
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>                 f = createResult(WARNING, <span class="jxr_string">"Creation date and last modification date have different timezones."</span>);
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>                 addResult(assertIsTrue(creationDate.getTimeZone().hasSameRules(lastModificationDate.getTimeZone()),
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>                         <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>             }
<a class="jxr_linenumber" name="1041" href="#1041">1041</a> 
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>             <em class="jxr_comment">// allowable actions</em>
<a class="jxr_linenumber" name="1043" href="#1043">1043</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="1044" href="#1044">1044</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Object has no allowable actions!"</span>));
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>                 Set&lt;Action&gt; actions = object.getAllowableActions().getAllowableActions();
<a class="jxr_linenumber" name="1047" href="#1047">1047</a> 
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>                 f = createResult(FAILURE, <span class="jxr_string">"Object has no CAN_GET_PROPERTIES allowable action!"</span>);
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>                 addResult(results, assertAllowableAction(object, Action.CAN_GET_PROPERTIES, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>                 addResult(results, assertIsTrue(object.hasAllowableAction(Action.CAN_GET_PROPERTIES), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1051" href="#1051">1051</a> 
<a class="jxr_linenumber" name="1052" href="#1052">1052</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Document) {
<a class="jxr_linenumber" name="1053" href="#1053">1053</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="1054" href="#1054">1054</a>                         addResult(
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>                                 results,
<a class="jxr_linenumber" name="1056" href="#1056">1056</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="1057" href="#1057">1057</a>                                         <span class="jxr_string">"Document object has CAN_CHECK_OUT and CAN_CHECK_IN allowable actions!"</span>));
<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>                     <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="1061" href="#1061">1061</a>                         addResult(
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>                                 results,
<a class="jxr_linenumber" name="1063" href="#1063">1063</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>                                         <span class="jxr_string">"Document object has CAN_CHECK_OUT and CAN_CANCEL_CHECK_OUT allowable actions!"</span>));
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>                     }
<a class="jxr_linenumber" name="1066" href="#1066">1066</a> 
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>                     Document doc = (Document) object;
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>                     DocumentTypeDefinition docType = (DocumentTypeDefinition) doc.getType();
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>                     <strong class="jxr_keyword">if</strong> (doc.isVersionSeriesCheckedOut() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>                         <strong class="jxr_keyword">if</strong> (doc.isVersionSeriesCheckedOut()) {
<a class="jxr_linenumber" name="1071" href="#1071">1071</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="1072" href="#1072">1072</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1073" href="#1073">1073</a> 
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>                             <strong class="jxr_keyword">if</strong> (doc.getVersionSeriesCheckedOutId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1075" href="#1075">1075</a>                                 addResult(
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>                                         results,
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>                                         createResult(WARNING,
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>                                                 <span class="jxr_string">"Document is checked out and but the property cmis:versionSeriesCheckedOutId is not set!"</span>));
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>                                 <strong class="jxr_keyword">if</strong> (doc.getVersionSeriesCheckedOutId().equals(object.getId())) {
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                                     <em class="jxr_comment">// object is PWC</em>
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>                                     f = createResult(FAILURE, <span class="jxr_string">"PWC doesn't have CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>                                     addResult(results, assertAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1084" href="#1084">1084</a> 
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>                                     f = createResult(FAILURE, <span class="jxr_string">"PWC doesn't have CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>                                     addResult(results,
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>                                             assertAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>                                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>                                     <em class="jxr_comment">// object is not PWC</em>
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>                                     f = createResult(WARNING, <span class="jxr_string">"Non-PWC has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>                                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1092" href="#1092">1092</a> 
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>                                     f = createResult(WARNING, <span class="jxr_string">"Non-PWC has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>                                     addResult(results,
<a class="jxr_linenumber" name="1095" href="#1095">1095</a>                                             assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<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>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="1100" href="#1100">1100</a>                                     <span class="jxr_string">"Document is not checked out and has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1102" href="#1102">1102</a> 
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>                                     <span class="jxr_string">"Document is not checked out and has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>                             addResult(results, assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1106" href="#1106">1106</a> 
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>                             <em class="jxr_comment">// versionable check</em>
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>                             <strong class="jxr_keyword">if</strong> (docType.isVersionable()) {
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>                                 <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isLatestVersion())) {
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>                                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1111" href="#1111">1111</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="1112" href="#1112">1112</a>                                     addResult(results, assertAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>                                 }
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>                                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>                                         <span class="jxr_string">"Document is not versionable but has CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>                                 addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>                             }
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>                         }
<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>                         addResult(results, createResult(WARNING, <span class="jxr_string">"Property cmis:isVersionSeriesCheckedOut is not set!"</span>));
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>                     }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a> 
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>                     <em class="jxr_comment">// immutable check</em>
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>                     <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isImmutable())) {
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>                                 <span class="jxr_string">"Document is immutable and has CAN_UPDATE_PROPERTIES allowable action!"</span>);
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_UPDATE_PROPERTIES, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1129" href="#1129">1129</a> 
<a class="jxr_linenumber" name="1130" href="#1130">1130</a>                         f = createResult(FAILURE, <span class="jxr_string">"Document is immutable and has CAN_DELETE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>                     }
<a class="jxr_linenumber" name="1133" href="#1133">1133</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CHECK_IN allowable action!"</span>);
<a class="jxr_linenumber" name="1135" href="#1135">1135</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_IN, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1136" href="#1136">1136</a> 
<a class="jxr_linenumber" name="1137" href="#1137">1137</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1139" href="#1139">1139</a> 
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_CANCEL_CHECK_OUT allowable action!"</span>);
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1142" href="#1142">1142</a> 
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_GET_CONTENT_STREAM allowable action!"</span>);
<a class="jxr_linenumber" name="1144" href="#1144">1144</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_CONTENT_STREAM, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1145" href="#1145">1145</a> 
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_DELETE_CONTENT_STREAM allowable action!"</span>);
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_CONTENT_STREAM, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1148" href="#1148">1148</a> 
<a class="jxr_linenumber" name="1149" href="#1149">1149</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Document object has CAN_GET_ALL_VERSIONS allowable action!"</span>);
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_ALL_VERSIONS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>                 }
<a class="jxr_linenumber" name="1152" href="#1152">1152</a> 
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>                     Folder folder = (Folder) object;
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>                     <strong class="jxr_keyword">if</strong> (folder.isRootFolder()) {
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_DELETE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1158" href="#1158">1158</a> 
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1161" href="#1161">1161</a> 
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>                         f = createResult(FAILURE, <span class="jxr_string">"Root folder has CAN_MOVE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1163" href="#1163">1163</a>                         addResult(results, assertNotAllowableAction(object, Action.CAN_MOVE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>                     }
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_DESCENDANTS allowable action!"</span>);
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_DESCENDANTS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1168" href="#1168">1168</a> 
<a class="jxr_linenumber" name="1169" href="#1169">1169</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1171" href="#1171">1171</a> 
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_CHILDREN allowable action!"</span>);
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_CHILDREN, <strong class="jxr_keyword">null</strong>, f));
<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">"Non-Folder object has CAN_DELETE_TREE allowable action!"</span>);
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_DELETE_TREE, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1177" href="#1177">1177</a> 
<a class="jxr_linenumber" name="1178" href="#1178">1178</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_GET_FOLDER_PARENT allowable action!"</span>);
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1180" href="#1180">1180</a> 
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_CREATE_DOCUMENT allowable action!"</span>);
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CREATE_DOCUMENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1183" href="#1183">1183</a> 
<a class="jxr_linenumber" name="1184" href="#1184">1184</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Folder object has CAN_CREATE_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1185" href="#1185">1185</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_CREATE_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>                 }
<a class="jxr_linenumber" name="1187" href="#1187">1187</a> 
<a class="jxr_linenumber" name="1188" href="#1188">1188</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof FileableCmisObject) || (object instanceof Folder)) {
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1190" href="#1190">1190</a>                             <span class="jxr_string">"Non-Filable object or folder has CAN_ADD_OBJECT_TO_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_ADD_OBJECT_TO_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1192" href="#1192">1192</a> 
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>                             <span class="jxr_string">"Non-Filable object or folder has CAN_REMOVE_OBJECT_FROM_FOLDER allowable action!"</span>);
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_REMOVE_OBJECT_FROM_FOLDER, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>                 }
<a class="jxr_linenumber" name="1197" href="#1197">1197</a> 
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>                 <strong class="jxr_keyword">if</strong> (!(object instanceof FileableCmisObject)) {
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>                     f = createResult(FAILURE, <span class="jxr_string">"Non-Fileable object has CAN_MOVE_OBJECT allowable action!"</span>);
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>                     addResult(results, assertNotAllowableAction(object, Action.CAN_MOVE_OBJECT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>                 }
<a class="jxr_linenumber" name="1202" href="#1202">1202</a> 
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>                 <em class="jxr_comment">// get allowable actions again</em>
<a class="jxr_linenumber" name="1204" href="#1204">1204</a>                 AllowableActions allowableActions = session.getBinding().getObjectService()
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>                         .getAllowableActions(session.getRepositoryInfo().getId(), object.getId(), <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1206" href="#1206">1206</a> 
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>                 <strong class="jxr_keyword">if</strong> (allowableActions.getAllowableActions() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1208" href="#1208">1208</a>                     addResult(results,
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>                             createResult(FAILURE, <span class="jxr_string">"getAllowableActions() didn't returned allowable actions!"</span>));
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>                             <span class="jxr_string">"Object allowable actions don't match the allowable actions returned by getAllowableActions()!"</span>);
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>                     addResult(
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>                             results,
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                             assertEqualSet(object.getAllowableActions().getAllowableActions(),
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>                                     allowableActions.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>                 }
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>             }
<a class="jxr_linenumber" name="1219" href="#1219">1219</a> 
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>             <em class="jxr_comment">// check ACL</em>
<a class="jxr_linenumber" name="1221" href="#1221">1221</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="1222" href="#1222">1222</a>                 addResult(results, checkACL(session, object.getAcl(), <strong class="jxr_keyword">true</strong>, <span class="jxr_string">"ACL"</span>));
<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>             <em class="jxr_comment">// check policies</em>
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>             <strong class="jxr_keyword">if</strong> (hasPolicies(session)) {
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>                     List&lt;ObjectData&gt; appliedPolicies = session.getBinding().getPolicyService()
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>                             .getAppliedPolicies(session.getRepositoryInfo().getId(), object.getId(), <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1230" href="#1230">1230</a> 
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>                     <strong class="jxr_keyword">if</strong> (appliedPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>                         appliedPolicies = Collections.emptyList();
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>                     }
<a class="jxr_linenumber" name="1234" href="#1234">1234</a> 
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>                     List&lt;Policy&gt; objectPolicies = object.getPolicies();
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>                     <strong class="jxr_keyword">if</strong> (objectPolicies == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1237" href="#1237">1237</a>                         objectPolicies = Collections.emptyList();
<a class="jxr_linenumber" name="1238" href="#1238">1238</a>                     }
<a class="jxr_linenumber" name="1239" href="#1239">1239</a> 
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1241" href="#1241">1241</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="1242" href="#1242">1242</a>                     addResult(results, assertEquals(appliedPolicies.size(), objectPolicies.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>                 } <strong class="jxr_keyword">catch</strong> (CmisNotSupportedException e) {
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>                     addResult(results,
<a class="jxr_linenumber" name="1245" href="#1245">1245</a>                             createResult(WARNING, <span class="jxr_string">"getAppliedPolicies() not supported for object: "</span> + object.getId()));
<a class="jxr_linenumber" name="1246" href="#1246">1246</a>                 }
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>             }
<a class="jxr_linenumber" name="1248" href="#1248">1248</a> 
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>             <em class="jxr_comment">// check relationships</em>
<a class="jxr_linenumber" name="1250" href="#1250">1250</a>             checkRelationships(session, results, object);
<a class="jxr_linenumber" name="1251" href="#1251">1251</a> 
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>             <em class="jxr_comment">// check document content</em>
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>             checkDocumentContent(session, results, object);
<a class="jxr_linenumber" name="1254" href="#1254">1254</a> 
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>             <em class="jxr_comment">// check renditions</em>
<a class="jxr_linenumber" name="1256" href="#1256">1256</a>             <strong class="jxr_keyword">if</strong> (object.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>                 addResult(results, checkRenditions(session, object, <span class="jxr_string">"Rendition check"</span>));
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>             }
<a class="jxr_linenumber" name="1259" href="#1259">1259</a> 
<a class="jxr_linenumber" name="1260" href="#1260">1260</a>             <em class="jxr_comment">// check allowed child object type ids</em>
<a class="jxr_linenumber" name="1261" href="#1261">1261</a>             <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1262" href="#1262">1262</a>                 List&lt;String&gt; otids = object.getPropertyValue(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS);
<a class="jxr_linenumber" name="1263" href="#1263">1263</a>                 <strong class="jxr_keyword">if</strong> (otids != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>                     <strong class="jxr_keyword">for</strong> (String otid : otids) {
<a class="jxr_linenumber" name="1265" href="#1265">1265</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1266" href="#1266">1266</a>                             session.getTypeDefinition(otid);
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>                         } <strong class="jxr_keyword">catch</strong> (CmisBaseException e) {
<a class="jxr_linenumber" name="1268" href="#1268">1268</a>                             addResult(
<a class="jxr_linenumber" name="1269" href="#1269">1269</a>                                     results,
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>                                     createResult(FAILURE,
<a class="jxr_linenumber" name="1271" href="#1271">1271</a>                                             <span class="jxr_string">"The cmis:allowedChildObjectTypeIds property contains the type id '"</span> + otid
<a class="jxr_linenumber" name="1272" href="#1272">1272</a>                                                     + <span class="jxr_string">"' but the type doesn't exists. Folder id: "</span> + object.getId()));
<a class="jxr_linenumber" name="1273" href="#1273">1273</a>                         }
<a class="jxr_linenumber" name="1274" href="#1274">1274</a>                     }
<a class="jxr_linenumber" name="1275" href="#1275">1275</a>                 }
<a class="jxr_linenumber" name="1276" href="#1276">1276</a>             }
<a class="jxr_linenumber" name="1277" href="#1277">1277</a> 
<a class="jxr_linenumber" name="1278" href="#1278">1278</a>             <em class="jxr_comment">// check path</em>
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>             <strong class="jxr_keyword">if</strong> (object instanceof FileableCmisObject) {
<a class="jxr_linenumber" name="1280" href="#1280">1280</a>                 List&lt;String&gt; paths = ((FileableCmisObject) object).getPaths();
<a class="jxr_linenumber" name="1281" href="#1281">1281</a>                 <strong class="jxr_keyword">if</strong> (object instanceof Folder) {
<a class="jxr_linenumber" name="1282" href="#1282">1282</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="1283" href="#1283">1283</a>                     addResult(results, assertEquals(1, paths.size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1284" href="#1284">1284</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1285" href="#1285">1285</a>                     <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(session.getRepositoryInfo().getCapabilities().isMultifilingSupported())) {
<a class="jxr_linenumber" name="1286" href="#1286">1286</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1287" href="#1287">1287</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="1288" href="#1288">1288</a>                         addResult(results, assertIsTrue(paths.size() &lt; 2, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1289" href="#1289">1289</a>                     }
<a class="jxr_linenumber" name="1290" href="#1290">1290</a>                 }
<a class="jxr_linenumber" name="1291" href="#1291">1291</a>             }
<a class="jxr_linenumber" name="1292" href="#1292">1292</a>         }
<a class="jxr_linenumber" name="1293" href="#1293">1293</a> 
<a class="jxr_linenumber" name="1294" href="#1294">1294</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1295" href="#1295">1295</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1296" href="#1296">1296</a> 
<a class="jxr_linenumber" name="1297" href="#1297">1297</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="1298" href="#1298">1298</a>     }
<a class="jxr_linenumber" name="1299" href="#1299">1299</a> 
<a class="jxr_linenumber" name="1300" href="#1300">1300</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="1301" href="#1301">1301</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1302" href="#1302">1302</a> 
<a class="jxr_linenumber" name="1303" href="#1303">1303</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> 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">"ACL is null!"</span>);
<a class="jxr_linenumber" name="1306" href="#1306">1306</a>         addResult(results, assertNotNull(acl, <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>         <strong class="jxr_keyword">if</strong> (acl != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1309" href="#1309">1309</a> 
<a class="jxr_linenumber" name="1310" href="#1310">1310</a>             f = createResult(FAILURE, <span class="jxr_string">"List of ACEs is null!"</span>);
<a class="jxr_linenumber" name="1311" href="#1311">1311</a>             addResult(results, assertNotNull(acl.getAces(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1312" href="#1312">1312</a> 
<a class="jxr_linenumber" name="1313" href="#1313">1313</a>             <strong class="jxr_keyword">if</strong> (acl.getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1314" href="#1314">1314</a>                 <strong class="jxr_keyword">for</strong> (Ace ace : acl.getAces()) {
<a class="jxr_linenumber" name="1315" href="#1315">1315</a>                     f = createResult(FAILURE, <span class="jxr_string">"ACE with empty principal ID!"</span>);
<a class="jxr_linenumber" name="1316" href="#1316">1316</a>                     addResult(results, assertStringNotEmpty(ace.getPrincipalId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1317" href="#1317">1317</a> 
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>                     f = createResult(FAILURE, <span class="jxr_string">"ACE with empty permission list!"</span>);
<a class="jxr_linenumber" name="1319" href="#1319">1319</a>                     addResult(results, assertListNotEmpty(ace.getPermissions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1320" href="#1320">1320</a> 
<a class="jxr_linenumber" name="1321" href="#1321">1321</a>                     <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>                         <strong class="jxr_keyword">for</strong> (String permission : ace.getPermissions()) {
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>                             f = createResult(FAILURE, <span class="jxr_string">"ACE with empty permission entry!"</span>);
<a class="jxr_linenumber" name="1324" href="#1324">1324</a>                             addResult(results, assertStringNotEmpty(permission, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1325" href="#1325">1325</a>                         }
<a class="jxr_linenumber" name="1326" href="#1326">1326</a>                     }
<a class="jxr_linenumber" name="1327" href="#1327">1327</a>                 }
<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>             <strong class="jxr_keyword">if</strong> (checkExact) {
<a class="jxr_linenumber" name="1331" href="#1331">1331</a>                 f = createResult(FAILURE, <span class="jxr_string">"ACL is provided but the isExact flag is not set!"</span>);
<a class="jxr_linenumber" name="1332" href="#1332">1332</a>                 addResult(results, assertNotNull(acl.isExact(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1333" href="#1333">1333</a>             }
<a class="jxr_linenumber" name="1334" href="#1334">1334</a>         }
<a class="jxr_linenumber" name="1335" href="#1335">1335</a> 
<a class="jxr_linenumber" name="1336" href="#1336">1336</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1337" href="#1337">1337</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1338" href="#1338">1338</a> 
<a class="jxr_linenumber" name="1339" href="#1339">1339</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="1340" href="#1340">1340</a>     }
<a class="jxr_linenumber" name="1341" href="#1341">1341</a> 
<a class="jxr_linenumber" name="1342" href="#1342">1342</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="1343" href="#1343">1343</a>         <strong class="jxr_keyword">if</strong> (object instanceof Relationship) {
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>             <strong class="jxr_keyword">if</strong> (isNotEmpty(object.getRelationships())) {
<a class="jxr_linenumber" name="1345" href="#1345">1345</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"A relationship has relationships!"</span>));
<a class="jxr_linenumber" name="1346" href="#1346">1346</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1347" href="#1347">1347</a>             }
<a class="jxr_linenumber" name="1348" href="#1348">1348</a>         }
<a class="jxr_linenumber" name="1349" href="#1349">1349</a> 
<a class="jxr_linenumber" name="1350" href="#1350">1350</a>         <strong class="jxr_keyword">if</strong> (object.getRelationships() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1351" href="#1351">1351</a>             <strong class="jxr_keyword">for</strong> (Relationship relationship : object.getRelationships()) {
<a class="jxr_linenumber" name="1352" href="#1352">1352</a>                 <strong class="jxr_keyword">if</strong> (relationship == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1353" href="#1353">1353</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"A relationship in the relationship list is null!"</span>));
<a class="jxr_linenumber" name="1354" href="#1354">1354</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1355" href="#1355">1355</a>                 }
<a class="jxr_linenumber" name="1356" href="#1356">1356</a> 
<a class="jxr_linenumber" name="1357" href="#1357">1357</a>                 CmisObject fullRelationshipObject = session.getObject(relationship, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1358" href="#1358">1358</a>                 addResult(
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>                         results,
<a class="jxr_linenumber" name="1360" href="#1360">1360</a>                         checkObject(session, fullRelationshipObject, getAllProperties(fullRelationshipObject),
<a class="jxr_linenumber" name="1361" href="#1361">1361</a>                                 <span class="jxr_string">"Relationship check: "</span> + fullRelationshipObject.getId()));
<a class="jxr_linenumber" name="1362" href="#1362">1362</a>             }
<a class="jxr_linenumber" name="1363" href="#1363">1363</a>         }
<a class="jxr_linenumber" name="1364" href="#1364">1364</a>     }
<a class="jxr_linenumber" name="1365" href="#1365">1365</a> 
<a class="jxr_linenumber" name="1366" href="#1366">1366</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="1367" href="#1367">1367</a>         <strong class="jxr_keyword">if</strong> (!(object instanceof Document)) {
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>             <em class="jxr_comment">// only documents have content</em>
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1370" href="#1370">1370</a>         }
<a class="jxr_linenumber" name="1371" href="#1371">1371</a> 
<a class="jxr_linenumber" name="1372" href="#1372">1372</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1373" href="#1373">1373</a> 
<a class="jxr_linenumber" name="1374" href="#1374">1374</a>         Document doc = (Document) object;
<a class="jxr_linenumber" name="1375" href="#1375">1375</a>         DocumentTypeDefinition type = (DocumentTypeDefinition) doc.getType();
<a class="jxr_linenumber" name="1376" href="#1376">1376</a> 
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>         <em class="jxr_comment">// check ContentStreamAllowed flag</em>
<a class="jxr_linenumber" name="1378" href="#1378">1378</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="1379" href="#1379">1379</a>                 || (doc.getContentStreamLength() &gt; -1) || (doc.getContentStreamMimeType() != <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1380" href="#1380">1380</a> 
<a class="jxr_linenumber" name="1381" href="#1381">1381</a>         <strong class="jxr_keyword">if</strong> (hasContentProperties) {
<a class="jxr_linenumber" name="1382" href="#1382">1382</a>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.NOTALLOWED) {
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>                 addResult(
<a class="jxr_linenumber" name="1384" href="#1384">1384</a>                         results,
<a class="jxr_linenumber" name="1385" href="#1385">1385</a>                         createResult(FAILURE,
<a class="jxr_linenumber" name="1386" href="#1386">1386</a>                                 <span class="jxr_string">"Content properties have values but the document type doesn't allow content!"</span>));
<a class="jxr_linenumber" name="1387" href="#1387">1387</a>             }
<a class="jxr_linenumber" name="1388" href="#1388">1388</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1389" href="#1389">1389</a>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.REQUIRED) {
<a class="jxr_linenumber" name="1390" href="#1390">1390</a>                 addResult(results,
<a class="jxr_linenumber" name="1391" href="#1391">1391</a>                         createResult(FAILURE, <span class="jxr_string">"Content properties are not set but the document type demands content!"</span>));
<a class="jxr_linenumber" name="1392" href="#1392">1392</a>             }
<a class="jxr_linenumber" name="1393" href="#1393">1393</a>         }
<a class="jxr_linenumber" name="1394" href="#1394">1394</a> 
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>         <em class="jxr_comment">// get the content stream</em>
<a class="jxr_linenumber" name="1396" href="#1396">1396</a>         ContentStream contentStream = doc.getContentStream();
<a class="jxr_linenumber" name="1397" href="#1397">1397</a> 
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>         <strong class="jxr_keyword">if</strong> (contentStream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1399" href="#1399">1399</a>             <strong class="jxr_keyword">if</strong> (hasContentProperties &amp;&amp; doc.getContentStreamLength() &gt; 0) {
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>                 addResult(results,
<a class="jxr_linenumber" name="1401" href="#1401">1401</a>                         createResult(FAILURE, <span class="jxr_string">"Content properties have values but the document has no content!"</span>));
<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>             <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.REQUIRED) {
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>                 addResult(results,
<a class="jxr_linenumber" name="1406" href="#1406">1406</a>                         createResult(FAILURE, <span class="jxr_string">"The document type demands content but the document has no content!"</span>));
<a class="jxr_linenumber" name="1407" href="#1407">1407</a>             }
<a class="jxr_linenumber" name="1408" href="#1408">1408</a> 
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1410" href="#1410">1410</a>         }
<a class="jxr_linenumber" name="1411" href="#1411">1411</a> 
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>         <strong class="jxr_keyword">if</strong> (type.getContentStreamAllowed() == ContentStreamAllowed.NOTALLOWED) {
<a class="jxr_linenumber" name="1413" href="#1413">1413</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="1414" href="#1414">1414</a>         }
<a class="jxr_linenumber" name="1415" href="#1415">1415</a> 
<a class="jxr_linenumber" name="1416" href="#1416">1416</a>         <em class="jxr_comment">// file name check</em>
<a class="jxr_linenumber" name="1417" href="#1417">1417</a>         f = createResult(FAILURE, <span class="jxr_string">"Content file names don't match!"</span>);
<a class="jxr_linenumber" name="1418" href="#1418">1418</a>         addResult(results, assertEquals(doc.getContentStreamFileName(), contentStream.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1419" href="#1419">1419</a> 
<a class="jxr_linenumber" name="1420" href="#1420">1420</a>         <strong class="jxr_keyword">if</strong> (doc.getContentStreamLength() &gt; -1 &amp;&amp; contentStream.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1421" href="#1421">1421</a>             f = createResult(FAILURE, <span class="jxr_string">"Content lengths don't match!"</span>);
<a class="jxr_linenumber" name="1422" href="#1422">1422</a>             addResult(results, assertEquals(doc.getContentStreamLength(), contentStream.getLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1423" href="#1423">1423</a>         }
<a class="jxr_linenumber" name="1424" href="#1424">1424</a> 
<a class="jxr_linenumber" name="1425" href="#1425">1425</a>         <em class="jxr_comment">// MIME type check</em>
<a class="jxr_linenumber" name="1426" href="#1426">1426</a>         String docMimeType = doc.getContentStreamMimeType();
<a class="jxr_linenumber" name="1427" href="#1427">1427</a>         <strong class="jxr_keyword">if</strong> (docMimeType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1428" href="#1428">1428</a>             <strong class="jxr_keyword">int</strong> x = docMimeType.indexOf(';');
<a class="jxr_linenumber" name="1429" href="#1429">1429</a>             <strong class="jxr_keyword">if</strong> (x &gt; -1) {
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>                 docMimeType = docMimeType.substring(0, x);
<a class="jxr_linenumber" name="1431" href="#1431">1431</a>             }
<a class="jxr_linenumber" name="1432" href="#1432">1432</a>             docMimeType = docMimeType.trim();
<a class="jxr_linenumber" name="1433" href="#1433">1433</a>         }
<a class="jxr_linenumber" name="1434" href="#1434">1434</a> 
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>         String contentMimeType = contentStream.getMimeType();
<a class="jxr_linenumber" name="1436" href="#1436">1436</a>         <strong class="jxr_keyword">if</strong> (contentMimeType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1437" href="#1437">1437</a>             <strong class="jxr_keyword">int</strong> x = contentMimeType.indexOf(';');
<a class="jxr_linenumber" name="1438" href="#1438">1438</a>             <strong class="jxr_keyword">if</strong> (x &gt; -1) {
<a class="jxr_linenumber" name="1439" href="#1439">1439</a>                 contentMimeType = contentMimeType.substring(0, x);
<a class="jxr_linenumber" name="1440" href="#1440">1440</a>             }
<a class="jxr_linenumber" name="1441" href="#1441">1441</a>             contentMimeType = contentMimeType.trim();
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>         }
<a class="jxr_linenumber" name="1443" href="#1443">1443</a> 
<a class="jxr_linenumber" name="1444" href="#1444">1444</a>         f = createResult(FAILURE, <span class="jxr_string">"Content MIME types don't match!"</span>);
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>         addResult(results, assertEquals(docMimeType, contentMimeType, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1446" href="#1446">1446</a> 
<a class="jxr_linenumber" name="1447" href="#1447">1447</a>         <strong class="jxr_keyword">if</strong> (contentStream.getMimeType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1448" href="#1448">1448</a>             <strong class="jxr_keyword">if</strong> (contentMimeType.equals(docMimeType)) {
<a class="jxr_linenumber" name="1449" href="#1449">1449</a>                 f = createResult(WARNING, <span class="jxr_string">"Content MIME types don't match!"</span>);
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>                 addResult(results, assertEquals(doc.getContentStreamMimeType(), contentStream.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1451" href="#1451">1451</a>             }
<a class="jxr_linenumber" name="1452" href="#1452">1452</a> 
<a class="jxr_linenumber" name="1453" href="#1453">1453</a>             f = createResult(FAILURE, <span class="jxr_string">"Content MIME types is invalid: "</span> + contentStream.getMimeType());
<a class="jxr_linenumber" name="1454" href="#1454">1454</a>             addResult(
<a class="jxr_linenumber" name="1455" href="#1455">1455</a>                     results,
<a class="jxr_linenumber" name="1456" href="#1456">1456</a>                     assertIsTrue(contentStream.getMimeType().length() &gt; 2
<a class="jxr_linenumber" name="1457" href="#1457">1457</a>                             &amp;&amp; contentStream.getMimeType().indexOf('/') &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1458" href="#1458">1458</a>         }
<a class="jxr_linenumber" name="1459" href="#1459">1459</a> 
<a class="jxr_linenumber" name="1460" href="#1460">1460</a>         <em class="jxr_comment">// check stream</em>
<a class="jxr_linenumber" name="1461" href="#1461">1461</a>         InputStream stream = contentStream.getStream();
<a class="jxr_linenumber" name="1462" href="#1462">1462</a>         <strong class="jxr_keyword">if</strong> (stream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Docuemnt has no content stream!"</span>));
<a class="jxr_linenumber" name="1464" href="#1464">1464</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1465" href="#1465">1465</a>         }
<a class="jxr_linenumber" name="1466" href="#1466">1466</a> 
<a class="jxr_linenumber" name="1467" href="#1467">1467</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1468" href="#1468">1468</a>             <strong class="jxr_keyword">long</strong> bytes = 0;
<a class="jxr_linenumber" name="1469" href="#1469">1469</a>             byte[] buffer = <strong class="jxr_keyword">new</strong> byte[64 * 1024];
<a class="jxr_linenumber" name="1470" href="#1470">1470</a>             <strong class="jxr_keyword">int</strong> b = stream.read(buffer);
<a class="jxr_linenumber" name="1471" href="#1471">1471</a>             <strong class="jxr_keyword">while</strong> (b &gt; -1) {
<a class="jxr_linenumber" name="1472" href="#1472">1472</a>                 bytes += b;
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>                 b = stream.read(buffer);
<a class="jxr_linenumber" name="1474" href="#1474">1474</a>             }
<a class="jxr_linenumber" name="1475" href="#1475">1475</a>             stream.close();
<a class="jxr_linenumber" name="1476" href="#1476">1476</a> 
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>             <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="1478" href="#1478">1478</a>             <strong class="jxr_keyword">if</strong> (doc.getContentStreamLength() &gt; -1) {
<a class="jxr_linenumber" name="1479" href="#1479">1479</a>                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>                         <span class="jxr_string">"Content stream length property value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1481" href="#1481">1481</a>                 addResult(results, assertEquals(doc.getContentStreamLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1482" href="#1482">1482</a>             }
<a class="jxr_linenumber" name="1483" href="#1483">1483</a> 
<a class="jxr_linenumber" name="1484" href="#1484">1484</a>             <strong class="jxr_keyword">if</strong> (contentStream.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>                 f = createResult(FAILURE, <span class="jxr_string">"Content length value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1486" href="#1486">1486</a>                 addResult(results, assertEquals(contentStream.getLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>             }
<a class="jxr_linenumber" name="1488" href="#1488">1488</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1489" href="#1489">1489</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Reading content failed: "</span> + e, e, false));
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="1491" href="#1491">1491</a>             IOUtils.closeQuietly(stream);
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>         }
<a class="jxr_linenumber" name="1493" href="#1493">1493</a>     }
<a class="jxr_linenumber" name="1494" href="#1494">1494</a> 
<a class="jxr_linenumber" name="1495" href="#1495">1495</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="1496" href="#1496">1496</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<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>         <strong class="jxr_keyword">if</strong> (object.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1501" href="#1501">1501</a> 
<a class="jxr_linenumber" name="1502" href="#1502">1502</a>             <strong class="jxr_keyword">for</strong> (Rendition rend : object.getRenditions()) {
<a class="jxr_linenumber" name="1503" href="#1503">1503</a>                 f = createResult(FAILURE, <span class="jxr_string">"A rendition in the list of renditions is null!"</span>);
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>                 addResult(results, assertNotNull(rend, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1505" href="#1505">1505</a> 
<a class="jxr_linenumber" name="1506" href="#1506">1506</a>                 <strong class="jxr_keyword">if</strong> (rend != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1507" href="#1507">1507</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has an empty stream id!"</span>);
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>                     addResult(results, assertStringNotEmpty(rend.getStreamId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1509" href="#1509">1509</a> 
<a class="jxr_linenumber" name="1510" href="#1510">1510</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has an empty kind! Stream id: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>                     addResult(results, assertStringNotEmpty(rend.getKind(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1512" href="#1512">1512</a> 
<a class="jxr_linenumber" name="1513" href="#1513">1513</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="1514" href="#1514">1514</a>                     addResult(results, assertStringNotEmpty(rend.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1515" href="#1515">1515</a> 
<a class="jxr_linenumber" name="1516" href="#1516">1516</a>                     <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"cmis:thumbnail"</span>.equals(rend.getKind())) {
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>                         f = createResult(WARNING,
<a class="jxr_linenumber" name="1518" href="#1518">1518</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="1519" href="#1519">1519</a>                                         + rend.getStreamId());
<a class="jxr_linenumber" name="1520" href="#1520">1520</a>                         addResult(results, assertIsTrue(rend.getHeight() &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1521" href="#1521">1521</a> 
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>                         f = createResult(WARNING,
<a class="jxr_linenumber" name="1523" href="#1523">1523</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="1524" href="#1524">1524</a>                                         + rend.getStreamId());
<a class="jxr_linenumber" name="1525" href="#1525">1525</a>                         addResult(results, assertIsTrue(rend.getWidth() &gt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1526" href="#1526">1526</a>                     }
<a class="jxr_linenumber" name="1527" href="#1527">1527</a> 
<a class="jxr_linenumber" name="1528" href="#1528">1528</a>                     <em class="jxr_comment">// check the content</em>
<a class="jxr_linenumber" name="1529" href="#1529">1529</a>                     ContentStream contentStream = rend.getContentStream();
<a class="jxr_linenumber" name="1530" href="#1530">1530</a>                     f = createResult(FAILURE, <span class="jxr_string">"A rendition has no content stream! Stream id: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1531" href="#1531">1531</a>                     addResult(results, assertNotNull(contentStream, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1532" href="#1532">1532</a> 
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>                     <strong class="jxr_keyword">if</strong> (contentStream != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1534" href="#1534">1534</a>                         InputStream stream = contentStream.getStream();
<a class="jxr_linenumber" name="1535" href="#1535">1535</a> 
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>                         f = createResult(FAILURE, <span class="jxr_string">"A rendition has no stream! Stream id: "</span> + rend.getStreamId());
<a class="jxr_linenumber" name="1537" href="#1537">1537</a>                         addResult(results, assertNotNull(stream, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1538" href="#1538">1538</a> 
<a class="jxr_linenumber" name="1539" href="#1539">1539</a>                         <strong class="jxr_keyword">if</strong> (stream != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>                             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1541" href="#1541">1541</a>                                 <strong class="jxr_keyword">long</strong> bytes = 0;
<a class="jxr_linenumber" name="1542" href="#1542">1542</a>                                 byte[] buffer = <strong class="jxr_keyword">new</strong> byte[64 * 1024];
<a class="jxr_linenumber" name="1543" href="#1543">1543</a>                                 <strong class="jxr_keyword">int</strong> b = stream.read(buffer);
<a class="jxr_linenumber" name="1544" href="#1544">1544</a>                                 <strong class="jxr_keyword">while</strong> (b &gt; -1) {
<a class="jxr_linenumber" name="1545" href="#1545">1545</a>                                     bytes += b;
<a class="jxr_linenumber" name="1546" href="#1546">1546</a>                                     b = stream.read(buffer);
<a class="jxr_linenumber" name="1547" href="#1547">1547</a>                                 }
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>                                 stream.close();
<a class="jxr_linenumber" name="1549" href="#1549">1549</a> 
<a class="jxr_linenumber" name="1550" href="#1550">1550</a>                                 <em class="jxr_comment">// check content length</em>
<a class="jxr_linenumber" name="1551" href="#1551">1551</a>                                 <strong class="jxr_keyword">if</strong> (rend.getLength() &gt; -1) {
<a class="jxr_linenumber" name="1552" href="#1552">1552</a>                                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>                                             <span class="jxr_string">"Rendition content stream length value doesn't match the actual content length!"</span>);
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>                                     addResult(results, assertEquals(rend.getLength(), bytes, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1555" href="#1555">1555</a>                                 }
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>                             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1557" href="#1557">1557</a>                                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Reading content failed: "</span> + e, e, false));
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>                             } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="1559" href="#1559">1559</a>                                 IOUtils.closeQuietly(stream);
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>                             }
<a class="jxr_linenumber" name="1561" href="#1561">1561</a>                         }
<a class="jxr_linenumber" name="1562" href="#1562">1562</a>                     }
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>                 }
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>             }
<a class="jxr_linenumber" name="1565" href="#1565">1565</a>         }
<a class="jxr_linenumber" name="1566" href="#1566">1566</a> 
<a class="jxr_linenumber" name="1567" href="#1567">1567</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1569" href="#1569">1569</a> 
<a class="jxr_linenumber" name="1570" href="#1570">1570</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="1571" href="#1571">1571</a>     }
<a class="jxr_linenumber" name="1572" href="#1572">1572</a> 
<a class="jxr_linenumber" name="1573" href="#1573">1573</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="1574" href="#1574">1574</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1575" href="#1575">1575</a> 
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1577" href="#1577">1577</a> 
<a class="jxr_linenumber" name="1578" href="#1578">1578</a>         <strong class="jxr_keyword">if</strong> (object.getBaseTypeId() != BaseTypeId.CMIS_DOCUMENT) {
<a class="jxr_linenumber" name="1579" href="#1579">1579</a>             <em class="jxr_comment">// skip non-document objects</em>
<a class="jxr_linenumber" name="1580" href="#1580">1580</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>         }
<a class="jxr_linenumber" name="1582" href="#1582">1582</a> 
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>         <strong class="jxr_keyword">if</strong> (!Boolean.TRUE.equals(((DocumentTypeDefinition) object.getType()).isVersionable())) {
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>             <em class="jxr_comment">// skip non-versionable types</em>
<a class="jxr_linenumber" name="1585" href="#1585">1585</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1586" href="#1586">1586</a>         }
<a class="jxr_linenumber" name="1587" href="#1587">1587</a> 
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>         Document doc = (Document) object;
<a class="jxr_linenumber" name="1589" href="#1589">1589</a> 
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>         <em class="jxr_comment">// check version series id</em>
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>         String versionSeriesId = doc.getVersionSeriesId();
<a class="jxr_linenumber" name="1592" href="#1592">1592</a> 
<a class="jxr_linenumber" name="1593" href="#1593">1593</a>         f = createResult(FAILURE, <span class="jxr_string">"Versionable document has no version series id property!"</span>);
<a class="jxr_linenumber" name="1594" href="#1594">1594</a>         addResult(results, assertStringNotEmpty(versionSeriesId, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1595" href="#1595">1595</a>         <strong class="jxr_keyword">if</strong> (versionSeriesId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1596" href="#1596">1596</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1597" href="#1597">1597</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>         }
<a class="jxr_linenumber" name="1600" href="#1600">1600</a> 
<a class="jxr_linenumber" name="1601" href="#1601">1601</a>         <em class="jxr_comment">// get version history</em>
<a class="jxr_linenumber" name="1602" href="#1602">1602</a>         List&lt;Document&gt; versions = doc.getAllVersions(SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1603" href="#1603">1603</a> 
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>         f = createResult(FAILURE, <span class="jxr_string">"Version history is null!"</span>);
<a class="jxr_linenumber" name="1605" href="#1605">1605</a>         addResult(results, assertNotNull(versions, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>         <strong class="jxr_keyword">if</strong> (versions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1607" href="#1607">1607</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1608" href="#1608">1608</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1609" href="#1609">1609</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1610" href="#1610">1610</a>         }
<a class="jxr_linenumber" name="1611" href="#1611">1611</a> 
<a class="jxr_linenumber" name="1612" href="#1612">1612</a>         f = createResult(FAILURE, <span class="jxr_string">"Version history must have at least one version!"</span>);
<a class="jxr_linenumber" name="1613" href="#1613">1613</a>         addResult(results, assertListNotEmpty(versions, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1614" href="#1614">1614</a> 
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>         <strong class="jxr_keyword">if</strong> (!versions.isEmpty()) {
<a class="jxr_linenumber" name="1616" href="#1616">1616</a>             <em class="jxr_comment">// get latest version</em>
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>             Document lastestVersion = doc.getObjectOfLatestVersion(false, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1618" href="#1618">1618</a>             addResult(results,
<a class="jxr_linenumber" name="1619" href="#1619">1619</a>                     checkObject(session, lastestVersion, properties, <span class="jxr_string">"Latest version check: "</span> + lastestVersion.getId()));
<a class="jxr_linenumber" name="1620" href="#1620">1620</a> 
<a class="jxr_linenumber" name="1621" href="#1621">1621</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="1622" href="#1622">1622</a>             addResult(results, assertIsTrue(lastestVersion.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1623" href="#1623">1623</a> 
<a class="jxr_linenumber" name="1624" href="#1624">1624</a>             <em class="jxr_comment">// get latest major version</em>
<a class="jxr_linenumber" name="1625" href="#1625">1625</a>             Document lastestMajorVersion = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1626" href="#1626">1626</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1627" href="#1627">1627</a>                 lastestMajorVersion = doc.getObjectOfLatestVersion(<strong class="jxr_keyword">true</strong>, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1628" href="#1628">1628</a> 
<a class="jxr_linenumber" name="1629" href="#1629">1629</a>                 f = createResult(FAILURE, <span class="jxr_string">"getObjectOfLatestVersion returned an invalid object!"</span>);
<a class="jxr_linenumber" name="1630" href="#1630">1630</a>                 addResult(results, assertNotNull(lastestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1631" href="#1631">1631</a>             } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>                 <em class="jxr_comment">// no latest major version</em>
<a class="jxr_linenumber" name="1633" href="#1633">1633</a>             }
<a class="jxr_linenumber" name="1634" href="#1634">1634</a>             <strong class="jxr_keyword">if</strong> (lastestMajorVersion != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1635" href="#1635">1635</a>                 addResult(
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>                         results,
<a class="jxr_linenumber" name="1637" href="#1637">1637</a>                         checkObject(session, lastestMajorVersion, properties, <span class="jxr_string">"Latest major version check: "</span>
<a class="jxr_linenumber" name="1638" href="#1638">1638</a>                                 + lastestMajorVersion.getId()));
<a class="jxr_linenumber" name="1639" href="#1639">1639</a> 
<a class="jxr_linenumber" name="1640" href="#1640">1640</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="1641" href="#1641">1641</a>                         + lastestMajorVersion.getId());
<a class="jxr_linenumber" name="1642" href="#1642">1642</a>                 addResult(results, assertIsTrue(lastestMajorVersion.isLatestMajorVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>             }
<a class="jxr_linenumber" name="1644" href="#1644">1644</a> 
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>             <em class="jxr_comment">// iterate through the version history and test each version</em>
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>             <em class="jxr_comment">// document</em>
<a class="jxr_linenumber" name="1647" href="#1647">1647</a>             <strong class="jxr_keyword">long</strong> creatationDate = Long.MAX_VALUE;
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>             <strong class="jxr_keyword">int</strong> latestVersion = 0;
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>             <strong class="jxr_keyword">int</strong> latestMajorVersion = 0;
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>             <strong class="jxr_keyword">long</strong> latestModificationDate = Long.MAX_VALUE;
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>             <strong class="jxr_keyword">int</strong> latestModifictaionIndex = Integer.MIN_VALUE;
<a class="jxr_linenumber" name="1652" href="#1652">1652</a>             Set&lt;String&gt; versionLabels = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="1653" href="#1653">1653</a>             <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>             <strong class="jxr_keyword">boolean</strong> foundLastestVersion = false;
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>             <strong class="jxr_keyword">boolean</strong> foundLastestMajorVersion = false;
<a class="jxr_linenumber" name="1656" href="#1656">1656</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="1657" href="#1657">1657</a>                 Document version = versions.get(i);
<a class="jxr_linenumber" name="1658" href="#1658">1658</a> 
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version "</span> + i + <span class="jxr_string">" is null!"</span>);
<a class="jxr_linenumber" name="1660" href="#1660">1660</a>                 addResult(results, assertNotNull(version, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1661" href="#1661">1661</a>                 <strong class="jxr_keyword">if</strong> (version == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1662" href="#1662">1662</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1663" href="#1663">1663</a>                 }
<a class="jxr_linenumber" name="1664" href="#1664">1664</a> 
<a class="jxr_linenumber" name="1665" href="#1665">1665</a>                 addResult(results, checkObject(session, version, properties, <span class="jxr_string">"Version check: "</span> + version.getId()));
<a class="jxr_linenumber" name="1666" href="#1666">1666</a> 
<a class="jxr_linenumber" name="1667" href="#1667">1667</a>                 <em class="jxr_comment">// check first entry</em>
<a class="jxr_linenumber" name="1668" href="#1668">1668</a>                 <strong class="jxr_keyword">if</strong> (i == 0) {
<a class="jxr_linenumber" name="1669" href="#1669">1669</a>                     <strong class="jxr_keyword">if</strong> (version.isVersionSeriesCheckedOut()) {
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>                         f = createResult(
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>                                 WARNING,
<a class="jxr_linenumber" name="1672" href="#1672">1672</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="1673" href="#1673">1673</a>                                         + version.getId()
<a class="jxr_linenumber" name="1674" href="#1674">1674</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="1675" href="#1675">1675</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="1676" href="#1676">1676</a>                                         + <span class="jxr_string">" Thus this a warning, not an error.)"</span>);
<a class="jxr_linenumber" name="1677" href="#1677">1677</a>                         addResult(results, assertIsTrue(version.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1678" href="#1678">1678</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1679" href="#1679">1679</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="1680" href="#1680">1680</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="1681" href="#1681">1681</a>                                         + version.getId());
<a class="jxr_linenumber" name="1682" href="#1682">1682</a>                         addResult(results, assertIsTrue(version.isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1683" href="#1683">1683</a>                     }
<a class="jxr_linenumber" name="1684" href="#1684">1684</a>                 }
<a class="jxr_linenumber" name="1685" href="#1685">1685</a> 
<a class="jxr_linenumber" name="1686" href="#1686">1686</a>                 <em class="jxr_comment">// check version id</em>
<a class="jxr_linenumber" name="1687" href="#1687">1687</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series id does not match! Id: "</span> + version.getId());
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>                 addResult(results, assertEquals(versionSeriesId, version.getVersionSeriesId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1689" href="#1689">1689</a> 
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>                 <em class="jxr_comment">// check creation date</em>
<a class="jxr_linenumber" name="1691" href="#1691">1691</a>                 <strong class="jxr_keyword">if</strong> (creatationDate == version.getCreationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1692" href="#1692">1692</a>                     addResult(results, createResult(WARNING, <span class="jxr_string">"Two or more versions have the same creation date!"</span>));
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1694" href="#1694">1694</a>                     f = createResult(FAILURE, <span class="jxr_string">"Version history order incorrect! Must be sorted bei creation date!"</span>);
<a class="jxr_linenumber" name="1695" href="#1695">1695</a>                     addResult(results,
<a class="jxr_linenumber" name="1696" href="#1696">1696</a>                             assertIsTrue(version.getCreationDate().getTimeInMillis() &lt;= creatationDate, <strong class="jxr_keyword">null</strong>, f));
<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>                 <em class="jxr_comment">// count latest versions and latest major versions</em>
<a class="jxr_linenumber" name="1700" href="#1700">1700</a>                 <strong class="jxr_keyword">if</strong> (version.isLatestVersion()) {
<a class="jxr_linenumber" name="1701" href="#1701">1701</a>                     latestVersion++;
<a class="jxr_linenumber" name="1702" href="#1702">1702</a>                 }
<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> (version.isLatestMajorVersion()) {
<a class="jxr_linenumber" name="1705" href="#1705">1705</a>                     latestMajorVersion++;
<a class="jxr_linenumber" name="1706" href="#1706">1706</a>                 }
<a class="jxr_linenumber" name="1707" href="#1707">1707</a> 
<a class="jxr_linenumber" name="1708" href="#1708">1708</a>                 <em class="jxr_comment">// find latest modification date</em>
<a class="jxr_linenumber" name="1709" href="#1709">1709</a>                 <strong class="jxr_keyword">if</strong> (latestModificationDate == version.getLastModificationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1710" href="#1710">1710</a>                     addResult(results,
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>                             createResult(WARNING, <span class="jxr_string">"Two or more versions have the same last modification date!"</span>));
<a class="jxr_linenumber" name="1712" href="#1712">1712</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (latestModificationDate &lt; version.getLastModificationDate().getTimeInMillis()) {
<a class="jxr_linenumber" name="1713" href="#1713">1713</a>                     latestModificationDate = version.getLastModificationDate().getTimeInMillis();
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>                     latestModifictaionIndex = i;
<a class="jxr_linenumber" name="1715" href="#1715">1715</a>                 }
<a class="jxr_linenumber" name="1716" href="#1716">1716</a> 
<a class="jxr_linenumber" name="1717" href="#1717">1717</a>                 <em class="jxr_comment">// check for version label duplicates</em>
<a class="jxr_linenumber" name="1718" href="#1718">1718</a>                 String versionLabel = version.getVersionLabel();
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>                 f = createResult(WARNING, <span class="jxr_string">"More than one version have this version label: "</span> + versionLabel);
<a class="jxr_linenumber" name="1720" href="#1720">1720</a>                 addResult(results, assertIsFalse(versionLabels.contains(versionLabel), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1721" href="#1721">1721</a> 
<a class="jxr_linenumber" name="1722" href="#1722">1722</a>                 versionLabels.add(versionLabel);
<a class="jxr_linenumber" name="1723" href="#1723">1723</a> 
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>                 <em class="jxr_comment">// check PWC</em>
<a class="jxr_linenumber" name="1725" href="#1725">1725</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(version.getVersionSeriesCheckedOutId())) {
<a class="jxr_linenumber" name="1726" href="#1726">1726</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="1727" href="#1727">1727</a>                     addResult(results, assertIsFalse(version.isLatestMajorVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1728" href="#1728">1728</a>                 }
<a class="jxr_linenumber" name="1729" href="#1729">1729</a> 
<a class="jxr_linenumber" name="1730" href="#1730">1730</a>                 <em class="jxr_comment">// check checked out</em>
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>                 <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(doc.isVersionSeriesCheckedOut())) {
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1733" href="#1733">1733</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="1734" href="#1734">1734</a>                                     + version.getId());
<a class="jxr_linenumber" name="1735" href="#1735">1735</a>                     addResult(results, assertStringNotEmpty(doc.getVersionSeriesCheckedOutId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1736" href="#1736">1736</a> 
<a class="jxr_linenumber" name="1737" href="#1737">1737</a>                     f = createResult(WARNING,
<a class="jxr_linenumber" name="1738" href="#1738">1738</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="1739" href="#1739">1739</a>                                     + version.getId());
<a class="jxr_linenumber" name="1740" href="#1740">1740</a>                     addResult(results, assertStringNotEmpty(doc.getVersionSeriesCheckedOutBy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1741" href="#1741">1741</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Boolean.FALSE.equals(doc.isVersionSeriesCheckedOut())) {
<a class="jxr_linenumber" name="1742" href="#1742">1742</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1743" href="#1743">1743</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="1744" href="#1744">1744</a>                                     + version.getId());
<a class="jxr_linenumber" name="1745" href="#1745">1745</a>                     addResult(results, assertNull(doc.getVersionSeriesCheckedOutId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1746" href="#1746">1746</a> 
<a class="jxr_linenumber" name="1747" href="#1747">1747</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1748" href="#1748">1748</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="1749" href="#1749">1749</a>                                     + version.getId());
<a class="jxr_linenumber" name="1750" href="#1750">1750</a>                     addResult(results, assertNull(doc.getVersionSeriesCheckedOutBy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1751" href="#1751">1751</a>                 }
<a class="jxr_linenumber" name="1752" href="#1752">1752</a> 
<a class="jxr_linenumber" name="1753" href="#1753">1753</a>                 <em class="jxr_comment">// found origin object?</em>
<a class="jxr_linenumber" name="1754" href="#1754">1754</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(object.getId())) {
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>                     found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1756" href="#1756">1756</a>                 }
<a class="jxr_linenumber" name="1757" href="#1757">1757</a> 
<a class="jxr_linenumber" name="1758" href="#1758">1758</a>                 <em class="jxr_comment">// found latest version?</em>
<a class="jxr_linenumber" name="1759" href="#1759">1759</a>                 <strong class="jxr_keyword">if</strong> (version.getId().equals(lastestVersion.getId())) {
<a class="jxr_linenumber" name="1760" href="#1760">1760</a>                     foundLastestVersion = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>                 }
<a class="jxr_linenumber" name="1762" href="#1762">1762</a> 
<a class="jxr_linenumber" name="1763" href="#1763">1763</a>                 <em class="jxr_comment">// found latest major version?</em>
<a class="jxr_linenumber" name="1764" href="#1764">1764</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="1765" href="#1765">1765</a>                     foundLastestMajorVersion = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>                 }
<a class="jxr_linenumber" name="1767" href="#1767">1767</a>             }
<a class="jxr_linenumber" name="1768" href="#1768">1768</a> 
<a class="jxr_linenumber" name="1769" href="#1769">1769</a>             <em class="jxr_comment">// check latest versions</em>
<a class="jxr_linenumber" name="1770" href="#1770">1770</a>             f = createResult(FAILURE, <span class="jxr_string">"Version series id has "</span> + latestVersion
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>                     + <span class="jxr_string">" latest versions! There must be only one!"</span>);
<a class="jxr_linenumber" name="1772" href="#1772">1772</a>             addResult(results, assertEquals(1, latestVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1773" href="#1773">1773</a> 
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>             <strong class="jxr_keyword">if</strong> (!foundLastestVersion) {
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Latest version not found in version history!"</span>));
<a class="jxr_linenumber" name="1776" href="#1776">1776</a>             }
<a class="jxr_linenumber" name="1777" href="#1777">1777</a> 
<a class="jxr_linenumber" name="1778" href="#1778">1778</a>             <em class="jxr_comment">// check latest major versions</em>
<a class="jxr_linenumber" name="1779" href="#1779">1779</a>             <strong class="jxr_keyword">if</strong> (lastestMajorVersion == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1780" href="#1780">1780</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series id has "</span> + latestMajorVersion
<a class="jxr_linenumber" name="1781" href="#1781">1781</a>                         + <span class="jxr_string">" latest major version(s) but getObjectOfLatestVersion() didn't return a major version!"</span>);
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>                 addResult(results, assertEquals(0, latestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1784" href="#1784">1784</a>                 f = createResult(FAILURE, <span class="jxr_string">"Version series id has "</span> + latestMajorVersion
<a class="jxr_linenumber" name="1785" href="#1785">1785</a>                         + <span class="jxr_string">" latest major versions but there should be exactly one!"</span>);
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>                 addResult(results, assertEquals(1, latestMajorVersion, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1787" href="#1787">1787</a> 
<a class="jxr_linenumber" name="1788" href="#1788">1788</a>                 <strong class="jxr_keyword">if</strong> (!foundLastestMajorVersion) {
<a class="jxr_linenumber" name="1789" href="#1789">1789</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Latest major version not found in version history!"</span>));
<a class="jxr_linenumber" name="1790" href="#1790">1790</a>                 }
<a class="jxr_linenumber" name="1791" href="#1791">1791</a>             }
<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 latest version</em>
<a class="jxr_linenumber" name="1794" href="#1794">1794</a>             <strong class="jxr_keyword">if</strong> (latestModifictaionIndex &gt;= 0) {
<a class="jxr_linenumber" name="1795" href="#1795">1795</a>                 f = createResult(
<a class="jxr_linenumber" name="1796" href="#1796">1796</a>                         FAILURE,
<a class="jxr_linenumber" name="1797" href="#1797">1797</a>                         <span class="jxr_string">"Version with the latest modification date is not flagged as latest version! Id: "</span>
<a class="jxr_linenumber" name="1798" href="#1798">1798</a>                                 + versions.get(latestModifictaionIndex));
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>                 addResult(results, assertIsTrue(versions.get(latestModifictaionIndex).isLatestVersion(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1800" href="#1800">1800</a>             }
<a class="jxr_linenumber" name="1801" href="#1801">1801</a> 
<a class="jxr_linenumber" name="1802" href="#1802">1802</a>             <em class="jxr_comment">// check if the origin object was found</em>
<a class="jxr_linenumber" name="1803" href="#1803">1803</a>             <strong class="jxr_keyword">if</strong> (!found) {
<a class="jxr_linenumber" name="1804" href="#1804">1804</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Document not found in its version history!"</span>));
<a class="jxr_linenumber" name="1805" href="#1805">1805</a>             }
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>         }
<a class="jxr_linenumber" name="1807" href="#1807">1807</a> 
<a class="jxr_linenumber" name="1808" href="#1808">1808</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1809" href="#1809">1809</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1810" href="#1810">1810</a> 
<a class="jxr_linenumber" name="1811" href="#1811">1811</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="1812" href="#1812">1812</a>     }
<a class="jxr_linenumber" name="1813" href="#1813">1813</a> 
<a class="jxr_linenumber" name="1814" href="#1814">1814</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="1815" href="#1815">1815</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="1816" href="#1816">1816</a>         AllowableActions allowableActions = object.getAllowableActions();
<a class="jxr_linenumber" name="1817" href="#1817">1817</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="1818" href="#1818">1818</a>             <strong class="jxr_keyword">if</strong> (allowableActions.getAllowableActions().contains(action)) {
<a class="jxr_linenumber" name="1819" href="#1819">1819</a>                 <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="1820" href="#1820">1820</a>             }
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>         }
<a class="jxr_linenumber" name="1822" href="#1822">1822</a> 
<a class="jxr_linenumber" name="1823" href="#1823">1823</a>         <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="1824" href="#1824">1824</a>     }
<a class="jxr_linenumber" name="1825" href="#1825">1825</a> 
<a class="jxr_linenumber" name="1826" href="#1826">1826</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="1827" href="#1827">1827</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="1828" href="#1828">1828</a>         AllowableActions allowableActions = object.getAllowableActions();
<a class="jxr_linenumber" name="1829" href="#1829">1829</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="1830" href="#1830">1830</a>             <strong class="jxr_keyword">if</strong> (!allowableActions.getAllowableActions().contains(action)) {
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>                 <strong class="jxr_keyword">return</strong> success;
<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> 
<a class="jxr_linenumber" name="1835" href="#1835">1835</a>         <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="1836" href="#1836">1836</a>     }
<a class="jxr_linenumber" name="1837" href="#1837">1837</a> 
<a class="jxr_linenumber" name="1838" href="#1838">1838</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="1839" href="#1839">1839</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1840" href="#1840">1840</a> 
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1842" href="#1842">1842</a> 
<a class="jxr_linenumber" name="1843" href="#1843">1843</a>         f = createResult(FAILURE, <span class="jxr_string">"Property is not included in response!"</span>);
<a class="jxr_linenumber" name="1844" href="#1844">1844</a>         addResult(results, assertNotNull(property, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1845" href="#1845">1845</a> 
<a class="jxr_linenumber" name="1846" href="#1846">1846</a>         <strong class="jxr_keyword">if</strong> (property != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1847" href="#1847">1847</a>             f = createResult(FAILURE, <span class="jxr_string">"Property id is not set or empty!"</span>);
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>             addResult(results, assertStringNotEmpty(property.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1849" href="#1849">1849</a> 
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>             f = createResult(WARNING, <span class="jxr_string">"Display name is not set!"</span>);
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>             addResult(results, assertNotNull(property.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1852" href="#1852">1852</a> 
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>             f = createResult(WARNING, <span class="jxr_string">"Query name is not set!"</span>);
<a class="jxr_linenumber" name="1854" href="#1854">1854</a>             addResult(results, assertNotNull(property.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1855" href="#1855">1855</a> 
<a class="jxr_linenumber" name="1856" href="#1856">1856</a>             f = createResult(WARNING, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="1857" href="#1857">1857</a>             addResult(results, assertNotNull(property.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1858" href="#1858">1858</a> 
<a class="jxr_linenumber" name="1859" href="#1859">1859</a>             <strong class="jxr_keyword">if</strong> ((propertyCheck == PropertyCheckEnum.MUST_BE_SET)
<a class="jxr_linenumber" name="1860" href="#1860">1860</a>                     || (propertyCheck == PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY)) {
<a class="jxr_linenumber" name="1861" href="#1861">1861</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property has no value!"</span>);
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>                 addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1863" href="#1863">1863</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="1864" href="#1864">1864</a>                 f = createResult(WARNING, <span class="jxr_string">"Property has no value!"</span>);
<a class="jxr_linenumber" name="1865" href="#1865">1865</a>                 addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1866" href="#1866">1866</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.MUST_NOT_BE_SET) {
<a class="jxr_linenumber" name="1867" href="#1867">1867</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property has a value!"</span>);
<a class="jxr_linenumber" name="1868" href="#1868">1868</a>                 addResult(results, assertIsTrue(property.getValues().isEmpty(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1869" href="#1869">1869</a>             }
<a class="jxr_linenumber" name="1870" href="#1870">1870</a> 
<a class="jxr_linenumber" name="1871" href="#1871">1871</a>             <strong class="jxr_keyword">boolean</strong> isString = ((property.getDefinition().getPropertyType() == PropertyType.STRING)
<a class="jxr_linenumber" name="1872" href="#1872">1872</a>                     || (property.getDefinition().getPropertyType() == PropertyType.ID)
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>                     || (property.getDefinition().getPropertyType() == PropertyType.URI) || (property.getDefinition()
<a class="jxr_linenumber" name="1874" href="#1874">1874</a>                     .getPropertyType() == PropertyType.HTML));
<a class="jxr_linenumber" name="1875" href="#1875">1875</a>             <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1876" href="#1876">1876</a>                 <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1877" href="#1877">1877</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Property values contain a null value!"</span>));
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="1879" href="#1879">1879</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isString) {
<a class="jxr_linenumber" name="1880" href="#1880">1880</a>                     <strong class="jxr_keyword">if</strong> (propertyCheck == PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY) {
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>                         f = createResult(FAILURE, <span class="jxr_string">"Property values contain an empty string!"</span>);
<a class="jxr_linenumber" name="1882" href="#1882">1882</a>                         addResult(results, assertStringNotEmpty(value.toString(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1883" href="#1883">1883</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="1884" href="#1884">1884</a>                         f = createResult(WARNING, <span class="jxr_string">"Property values contain an empty string!"</span>);
<a class="jxr_linenumber" name="1885" href="#1885">1885</a>                         addResult(results, assertStringNotEmpty(value.toString(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>                     }
<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> 
<a class="jxr_linenumber" name="1890" href="#1890">1890</a>             <strong class="jxr_keyword">if</strong> (property.getDefinition().getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1891" href="#1891">1891</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="1892" href="#1892">1892</a>                 addResult(results, assertIsTrue(property.getValues().size() &lt;= 1, <strong class="jxr_keyword">null</strong>, f));
<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>             <strong class="jxr_keyword">if</strong> (property.getDefinition().isRequired() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1896" href="#1896">1896</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definition doesn't contain the required flag!"</span>));
<a class="jxr_linenumber" name="1897" href="#1897">1897</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1898" href="#1898">1898</a>                 <strong class="jxr_keyword">if</strong> (property.getDefinition().isRequired().booleanValue()) {
<a class="jxr_linenumber" name="1899" href="#1899">1899</a>                     f = createResult(FAILURE, <span class="jxr_string">"Property is required but has no value!"</span>);
<a class="jxr_linenumber" name="1900" href="#1900">1900</a>                     addResult(results, assertListNotEmpty(property.getValues(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>                 }
<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> 
<a class="jxr_linenumber" name="1905" href="#1905">1905</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="1906" href="#1906">1906</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="1907" href="#1907">1907</a> 
<a class="jxr_linenumber" name="1908" href="#1908">1908</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="1909" href="#1909">1909</a>     }
<a class="jxr_linenumber" name="1910" href="#1910">1910</a> 
<a class="jxr_linenumber" name="1911" href="#1911">1911</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="1912" href="#1912">1912</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="1913" href="#1913">1913</a> 
<a class="jxr_linenumber" name="1914" href="#1914">1914</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="1915" href="#1915">1915</a> 
<a class="jxr_linenumber" name="1916" href="#1916">1916</a>         <strong class="jxr_keyword">if</strong> (folder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1917" href="#1917">1917</a>             <strong class="jxr_keyword">return</strong> createResult(FAILURE, <span class="jxr_string">"Folder is null!"</span>);
<a class="jxr_linenumber" name="1918" href="#1918">1918</a>         }
<a class="jxr_linenumber" name="1919" href="#1919">1919</a> 
<a class="jxr_linenumber" name="1920" href="#1920">1920</a>         <em class="jxr_comment">// getChildren</em>
<a class="jxr_linenumber" name="1921" href="#1921">1921</a> 
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>         <strong class="jxr_keyword">boolean</strong> supportsOrderByName = isOrderByNameSupported(session);
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>         OperationContext orderContext = (supportsOrderByName ? SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME
<a class="jxr_linenumber" name="1924" href="#1924">1924</a>                 : SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1925" href="#1925">1925</a> 
<a class="jxr_linenumber" name="1926" href="#1926">1926</a>         <strong class="jxr_keyword">long</strong> childrenCount = 0;
<a class="jxr_linenumber" name="1927" href="#1927">1927</a>         <strong class="jxr_keyword">long</strong> childrenFolderCount = 0;
<a class="jxr_linenumber" name="1928" href="#1928">1928</a>         ItemIterable&lt;CmisObject&gt; children = folder.getChildren(orderContext);
<a class="jxr_linenumber" name="1929" href="#1929">1929</a> 
<a class="jxr_linenumber" name="1930" href="#1930">1930</a>         <strong class="jxr_keyword">int</strong> orderByNameIssues = 0;
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>         String lastName = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1932" href="#1932">1932</a> 
<a class="jxr_linenumber" name="1933" href="#1933">1933</a>         <strong class="jxr_keyword">for</strong> (CmisObject child : children) {
<a class="jxr_linenumber" name="1934" href="#1934">1934</a>             childrenCount++;
<a class="jxr_linenumber" name="1935" href="#1935">1935</a>             <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="1936" href="#1936">1936</a>                 childrenFolderCount++;
<a class="jxr_linenumber" name="1937" href="#1937">1937</a>             }
<a class="jxr_linenumber" name="1938" href="#1938">1938</a> 
<a class="jxr_linenumber" name="1939" href="#1939">1939</a>             checkChild(session, results, folder, child);
<a class="jxr_linenumber" name="1940" href="#1940">1940</a> 
<a class="jxr_linenumber" name="1941" href="#1941">1941</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="1942" href="#1942">1942</a>                 <strong class="jxr_keyword">if</strong> (child.getName().compareToIgnoreCase(lastName) &lt; 0) {
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>                     orderByNameIssues++;
<a class="jxr_linenumber" name="1944" href="#1944">1944</a>                 }
<a class="jxr_linenumber" name="1945" href="#1945">1945</a>             }
<a class="jxr_linenumber" name="1946" href="#1946">1946</a> 
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>             lastName = child.getName();
<a class="jxr_linenumber" name="1948" href="#1948">1948</a>         }
<a class="jxr_linenumber" name="1949" href="#1949">1949</a> 
<a class="jxr_linenumber" name="1950" href="#1950">1950</a>         <strong class="jxr_keyword">if</strong> (children.getTotalNumItems() &gt;= 0) {
<a class="jxr_linenumber" name="1951" href="#1951">1951</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="1952" href="#1952">1952</a>             addResult(results, assertEquals(childrenCount, children.getTotalNumItems(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1953" href="#1953">1953</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>             addResult(results, createResult(WARNING, <span class="jxr_string">"getChildren did not report the total number of items!"</span>));
<a class="jxr_linenumber" name="1955" href="#1955">1955</a>         }
<a class="jxr_linenumber" name="1956" href="#1956">1956</a> 
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>         <strong class="jxr_keyword">if</strong> (supportsOrderByName) {
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>             f = createResult(WARNING,
<a class="jxr_linenumber" name="1959" href="#1959">1959</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="1960" href="#1960">1960</a>             addResult(results, assertEquals(0, orderByNameIssues, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1962" href="#1962">1962</a>             addResult(results, createResult(INFO, <span class="jxr_string">"Repository doesn't support Order By for getChildren()."</span>));
<a class="jxr_linenumber" name="1963" href="#1963">1963</a>         }
<a class="jxr_linenumber" name="1964" href="#1964">1964</a> 
<a class="jxr_linenumber" name="1965" href="#1965">1965</a>         <em class="jxr_comment">// test path segments</em>
<a class="jxr_linenumber" name="1966" href="#1966">1966</a> 
<a class="jxr_linenumber" name="1967" href="#1967">1967</a>         ObjectInFolderList pathSegementChildren = session
<a class="jxr_linenumber" name="1968" href="#1968">1968</a>                 .getBinding()
<a class="jxr_linenumber" name="1969" href="#1969">1969</a>                 .getNavigationService()
<a class="jxr_linenumber" name="1970" href="#1970">1970</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="1971" href="#1971">1971</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="1972" href="#1972">1972</a> 
<a class="jxr_linenumber" name="1973" href="#1973">1973</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="1974" href="#1974">1974</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData objectInFolder : pathSegementChildren.getObjects()) {
<a class="jxr_linenumber" name="1975" href="#1975">1975</a>                 String pathSegement = objectInFolder.getPathSegment();
<a class="jxr_linenumber" name="1976" href="#1976">1976</a>                 String objectId = (String) objectInFolder.getObject().getProperties().getProperties()
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>                         .get(PropertyIds.OBJECT_ID).getFirstValue();
<a class="jxr_linenumber" name="1978" href="#1978">1978</a> 
<a class="jxr_linenumber" name="1979" href="#1979">1979</a>                 <strong class="jxr_keyword">if</strong> (pathSegement == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1980" href="#1980">1980</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"getChildren omitted path segement! Id: "</span> + objectId));
<a class="jxr_linenumber" name="1981" href="#1981">1981</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>                     CmisObject pathSegementChild = session.getObjectByPath(folder.getPath(), pathSegement);
<a class="jxr_linenumber" name="1983" href="#1983">1983</a> 
<a class="jxr_linenumber" name="1984" href="#1984">1984</a>                     f = createResult(FAILURE,
<a class="jxr_linenumber" name="1985" href="#1985">1985</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="1986" href="#1986">1986</a>                                     + objectId);
<a class="jxr_linenumber" name="1987" href="#1987">1987</a>                     addResult(results, assertEquals(objectId, pathSegementChild.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>                 }
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>             }
<a class="jxr_linenumber" name="1990" href="#1990">1990</a>         }
<a class="jxr_linenumber" name="1991" href="#1991">1991</a> 
<a class="jxr_linenumber" name="1992" href="#1992">1992</a>         <em class="jxr_comment">// getDescendants</em>
<a class="jxr_linenumber" name="1993" href="#1993">1993</a> 
<a class="jxr_linenumber" name="1994" href="#1994">1994</a>         <strong class="jxr_keyword">if</strong> (isGetDescendantsSupported(session)) {
<a class="jxr_linenumber" name="1995" href="#1995">1995</a>             <strong class="jxr_keyword">long</strong> descendantsCount = 0;
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>             List&lt;Tree&lt;FileableCmisObject&gt;&gt; descendants = folder.getDescendants(1, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="1997" href="#1997">1997</a> 
<a class="jxr_linenumber" name="1998" href="#1998">1998</a>             <strong class="jxr_keyword">for</strong> (Tree&lt;FileableCmisObject&gt; child : descendants) {
<a class="jxr_linenumber" name="1999" href="#1999">1999</a>                 descendantsCount++;
<a class="jxr_linenumber" name="2000" href="#2000">2000</a> 
<a class="jxr_linenumber" name="2001" href="#2001">2001</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder descendants contain a null tree!"</span>));
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>                     checkChild(session, results, folder, child.getItem());
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>                 }
<a class="jxr_linenumber" name="2006" href="#2006">2006</a>             }
<a class="jxr_linenumber" name="2007" href="#2007">2007</a> 
<a class="jxr_linenumber" name="2008" href="#2008">2008</a>             f = createResult(FAILURE,
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>                     <span class="jxr_string">"Number of descendants doesn't match the number of children returned by getChildren!"</span>);
<a class="jxr_linenumber" name="2010" href="#2010">2010</a>             addResult(results, assertEquals(childrenCount, descendantsCount, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2012" href="#2012">2012</a>             addResult(results, createResult(SKIPPED, <span class="jxr_string">"getDescendants is not supported."</span>));
<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>         <em class="jxr_comment">// getFolderTree</em>
<a class="jxr_linenumber" name="2016" href="#2016">2016</a> 
<a class="jxr_linenumber" name="2017" href="#2017">2017</a>         <strong class="jxr_keyword">if</strong> (isGetFolderTreeSupported(session)) {
<a class="jxr_linenumber" name="2018" href="#2018">2018</a>             <strong class="jxr_keyword">long</strong> folderTreeCount = 0;
<a class="jxr_linenumber" name="2019" href="#2019">2019</a>             List&lt;Tree&lt;FileableCmisObject&gt;&gt; folderTree = folder.getFolderTree(1, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2020" href="#2020">2020</a> 
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>             <strong class="jxr_keyword">for</strong> (Tree&lt;FileableCmisObject&gt; child : folderTree) {
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>                 folderTreeCount++;
<a class="jxr_linenumber" name="2023" href="#2023">2023</a> 
<a class="jxr_linenumber" name="2024" href="#2024">2024</a>                 <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2025" href="#2025">2025</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder tree contains a null tree!"</span>));
<a class="jxr_linenumber" name="2026" href="#2026">2026</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2027" href="#2027">2027</a>                     checkChild(session, results, folder, child.getItem());
<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>             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="2032" href="#2032">2032</a>             addResult(results, assertEquals(childrenFolderCount, folderTreeCount, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2033" href="#2033">2033</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>             addResult(results, createResult(SKIPPED, <span class="jxr_string">"getFolderTree is not supported."</span>));
<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>         <em class="jxr_comment">// --- wrap up ---</em>
<a class="jxr_linenumber" name="2038" href="#2038">2038</a> 
<a class="jxr_linenumber" name="2039" href="#2039">2039</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2041" href="#2041">2041</a> 
<a class="jxr_linenumber" name="2042" href="#2042">2042</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="2043" href="#2043">2043</a>     }
<a class="jxr_linenumber" name="2044" href="#2044">2044</a> 
<a class="jxr_linenumber" name="2045" href="#2045">2045</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="2046" href="#2046">2046</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2047" href="#2047">2047</a> 
<a class="jxr_linenumber" name="2048" href="#2048">2048</a>         <strong class="jxr_keyword">if</strong> (child == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2049" href="#2049">2049</a>             addResult(results, createResult(FAILURE, <span class="jxr_string">"Folder contains a null child!"</span>));
<a class="jxr_linenumber" name="2050" href="#2050">2050</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2051" href="#2051">2051</a>             String[] propertiesToCheck = <strong class="jxr_keyword">new</strong> String[child.getType().getPropertyDefinitions().size()];
<a class="jxr_linenumber" name="2052" href="#2052">2052</a> 
<a class="jxr_linenumber" name="2053" href="#2053">2053</a>             <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>             <strong class="jxr_keyword">for</strong> (String propId : child.getType().getPropertyDefinitions().keySet()) {
<a class="jxr_linenumber" name="2055" href="#2055">2055</a>                 propertiesToCheck[i++] = propId;
<a class="jxr_linenumber" name="2056" href="#2056">2056</a>             }
<a class="jxr_linenumber" name="2057" href="#2057">2057</a> 
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>             addResult(results, checkObject(session, child, propertiesToCheck, <span class="jxr_string">"Child check: "</span> + child.getId()));
<a class="jxr_linenumber" name="2059" href="#2059">2059</a>             addResult(
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>                     results,
<a class="jxr_linenumber" name="2061" href="#2061">2061</a>                     checkVersionHistory(session, child, propertiesToCheck,
<a class="jxr_linenumber" name="2062" href="#2062">2062</a>                             <span class="jxr_string">"Child version history check: "</span> + child.getId()));
<a class="jxr_linenumber" name="2063" href="#2063">2063</a> 
<a class="jxr_linenumber" name="2064" href="#2064">2064</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="2065" href="#2065">2065</a>                     + child.getType().getId());
<a class="jxr_linenumber" name="2066" href="#2066">2066</a>             addResult(results, assertIsTrue(child instanceof FileableCmisObject, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2067" href="#2067">2067</a> 
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>             <strong class="jxr_keyword">if</strong> (child instanceof FileableCmisObject) {
<a class="jxr_linenumber" name="2069" href="#2069">2069</a>                 FileableCmisObject fileableChild = (FileableCmisObject) child;
<a class="jxr_linenumber" name="2070" href="#2070">2070</a> 
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>                 Set&lt;Action&gt; actions = fileableChild.getAllowableActions().getAllowableActions();
<a class="jxr_linenumber" name="2072" href="#2072">2072</a>                 <strong class="jxr_keyword">boolean</strong> hasObjectParentsAction = actions.contains(Action.CAN_GET_OBJECT_PARENTS);
<a class="jxr_linenumber" name="2073" href="#2073">2073</a>                 <strong class="jxr_keyword">boolean</strong> hasFolderParentAction = actions.contains(Action.CAN_GET_FOLDER_PARENT);
<a class="jxr_linenumber" name="2074" href="#2074">2074</a> 
<a class="jxr_linenumber" name="2075" href="#2075">2075</a>                 <strong class="jxr_keyword">if</strong> (hasObjectParentsAction || hasFolderParentAction) {
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>                     List&lt;Folder&gt; parents = fileableChild.getParents();
<a class="jxr_linenumber" name="2077" href="#2077">2077</a> 
<a class="jxr_linenumber" name="2078" href="#2078">2078</a>                     f = createResult(FAILURE, <span class="jxr_string">"Child has no parents! Id: "</span> + child.getId());
<a class="jxr_linenumber" name="2079" href="#2079">2079</a>                     addResult(results, assertListNotEmpty(parents, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2080" href="#2080">2080</a> 
<a class="jxr_linenumber" name="2081" href="#2081">2081</a>                     <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="2082" href="#2082">2082</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>                                 <span class="jxr_string">"Child is a folder and has more than one parent! Id: "</span> + child.getId());
<a class="jxr_linenumber" name="2084" href="#2084">2084</a>                         addResult(results, assertIsFalse(parents.size() &gt; 1, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2085" href="#2085">2085</a> 
<a class="jxr_linenumber" name="2086" href="#2086">2086</a>                         Folder folderParent = ((Folder) child).getFolderParent();
<a class="jxr_linenumber" name="2087" href="#2087">2087</a>                         <strong class="jxr_keyword">if</strong> (folderParent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2088" href="#2088">2088</a>                             addResult(
<a class="jxr_linenumber" name="2089" href="#2089">2089</a>                                     results,
<a class="jxr_linenumber" name="2090" href="#2090">2090</a>                                     createResult(
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>                                             FAILURE,
<a class="jxr_linenumber" name="2092" href="#2092">2092</a>                                             <span class="jxr_string">"getFolderParent() returns null for a non-root folder object! Id: "</span>
<a class="jxr_linenumber" name="2093" href="#2093">2093</a>                                                     + child.getId()));
<a class="jxr_linenumber" name="2094" href="#2094">2094</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2095" href="#2095">2095</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="2096" href="#2096">2096</a>                                     <span class="jxr_string">"getFolderParent() returns wrong parent object! Id: "</span> + child.getId());
<a class="jxr_linenumber" name="2097" href="#2097">2097</a>                             addResult(results, assertEquals(folder.getId(), folderParent.getId(), <strong class="jxr_keyword">null</strong>, f));
<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> (parents.size() &gt; 0 &amp;&amp; parents.get(0) != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2100" href="#2100">2100</a>                                 f = createResult(FAILURE,
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>                                         <span class="jxr_string">"getFolderParent() and getParents() return different parents for a folder object! Id: "</span>
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>                                                 + child.getId());
<a class="jxr_linenumber" name="2103" href="#2103">2103</a>                                 addResult(results, assertEquals(parents.get(0).getId(), folderParent.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2104" href="#2104">2104</a>                             }
<a class="jxr_linenumber" name="2105" href="#2105">2105</a>                         }
<a class="jxr_linenumber" name="2106" href="#2106">2106</a>                     }
<a class="jxr_linenumber" name="2107" href="#2107">2107</a> 
<a class="jxr_linenumber" name="2108" href="#2108">2108</a>                     <strong class="jxr_keyword">boolean</strong> foundParent = false;
<a class="jxr_linenumber" name="2109" href="#2109">2109</a>                     <strong class="jxr_keyword">for</strong> (Folder parent : parents) {
<a class="jxr_linenumber" name="2110" href="#2110">2110</a>                         <strong class="jxr_keyword">if</strong> (parent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2111" href="#2111">2111</a>                             f = createResult(FAILURE, <span class="jxr_string">"One of childs parents is null! Id: "</span> + child.getId());
<a class="jxr_linenumber" name="2112" href="#2112">2112</a>                             addResult(results, assertListNotEmpty(parents, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2113" href="#2113">2113</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (folder.getId().equals(parent.getId())) {
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>                             foundParent = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>                             <strong class="jxr_keyword">break</strong>;
<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> 
<a class="jxr_linenumber" name="2119" href="#2119">2119</a>                     <strong class="jxr_keyword">if</strong> (!foundParent) {
<a class="jxr_linenumber" name="2120" href="#2120">2120</a>                         addResult(
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>                                 results,
<a class="jxr_linenumber" name="2122" href="#2122">2122</a>                                 createResult(FAILURE,
<a class="jxr_linenumber" name="2123" href="#2123">2123</a>                                         <span class="jxr_string">"Parent folder is not in parents of the child! Id: "</span> + child.getId()));
<a class="jxr_linenumber" name="2124" href="#2124">2124</a>                     }
<a class="jxr_linenumber" name="2125" href="#2125">2125</a>                 }
<a class="jxr_linenumber" name="2126" href="#2126">2126</a> 
<a class="jxr_linenumber" name="2127" href="#2127">2127</a>                 <em class="jxr_comment">// get object by id and compare</em>
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>                 CmisObject objectById = session.getObject(child.getId(), SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2129" href="#2129">2129</a> 
<a class="jxr_linenumber" name="2130" href="#2130">2130</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="2131" href="#2131">2131</a>                 addResult(results, assertEquals(child, objectById, <strong class="jxr_keyword">null</strong>, f, false, false));
<a class="jxr_linenumber" name="2132" href="#2132">2132</a> 
<a class="jxr_linenumber" name="2133" href="#2133">2133</a>                 <em class="jxr_comment">// get object by path and compare</em>
<a class="jxr_linenumber" name="2134" href="#2134">2134</a>                 List&lt;String&gt; paths = ((FileableCmisObject) child).getPaths();
<a class="jxr_linenumber" name="2135" href="#2135">2135</a> 
<a class="jxr_linenumber" name="2136" href="#2136">2136</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(paths)) {
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Child has no path! "</span> + child.getId()));
<a class="jxr_linenumber" name="2138" href="#2138">2138</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2139" href="#2139">2139</a>                     <strong class="jxr_keyword">for</strong> (String path : paths) {
<a class="jxr_linenumber" name="2140" href="#2140">2140</a>                         CmisObject objectByPath = session.getObjectByPath(path, SELECT_ALL_NO_CACHE_OC);
<a class="jxr_linenumber" name="2141" href="#2141">2141</a> 
<a class="jxr_linenumber" name="2142" href="#2142">2142</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="2143" href="#2143">2143</a>                                 + <span class="jxr_string">" / Path: "</span> + path);
<a class="jxr_linenumber" name="2144" href="#2144">2144</a>                         addResult(results, assertEquals(child, objectByPath, <strong class="jxr_keyword">null</strong>, f, false, false));
<a class="jxr_linenumber" name="2145" href="#2145">2145</a> 
<a class="jxr_linenumber" name="2146" href="#2146">2146</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="2147" href="#2147">2147</a>                                 + child.getId() + <span class="jxr_string">" / Path: "</span> + path);
<a class="jxr_linenumber" name="2148" href="#2148">2148</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="2149" href="#2149">2149</a>                     }
<a class="jxr_linenumber" name="2150" href="#2150">2150</a>                 }
<a class="jxr_linenumber" name="2151" href="#2151">2151</a>             }
<a class="jxr_linenumber" name="2152" href="#2152">2152</a> 
<a class="jxr_linenumber" name="2153" href="#2153">2153</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="2154" href="#2154">2154</a>             addResult(results, assertAllowableAction(child, Action.CAN_GET_OBJECT_PARENTS, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2155" href="#2155">2155</a> 
<a class="jxr_linenumber" name="2156" href="#2156">2156</a>             <strong class="jxr_keyword">if</strong> (child instanceof Folder) {
<a class="jxr_linenumber" name="2157" href="#2157">2157</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="2158" href="#2158">2158</a>                 addResult(results, assertAllowableAction(child, Action.CAN_GET_FOLDER_PARENT, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>             }
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>         }
<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>     <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="2164" href="#2164">2164</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2165" href="#2165">2165</a> 
<a class="jxr_linenumber" name="2166" href="#2166">2166</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2167" href="#2167">2167</a> 
<a class="jxr_linenumber" name="2168" href="#2168">2168</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2169" href="#2169">2169</a> 
<a class="jxr_linenumber" name="2170" href="#2170">2170</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="2171" href="#2171">2171</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2172" href="#2172">2172</a>         }
<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> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected object is null, but actual object is not!"</span>);
<a class="jxr_linenumber" name="2176" href="#2176">2176</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2177" href="#2177">2177</a> 
<a class="jxr_linenumber" name="2178" href="#2178">2178</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2179" href="#2179">2179</a>         }
<a class="jxr_linenumber" name="2180" href="#2180">2180</a> 
<a class="jxr_linenumber" name="2181" href="#2181">2181</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="2183" href="#2183">2183</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2184" href="#2184">2184</a> 
<a class="jxr_linenumber" name="2185" href="#2185">2185</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2186" href="#2186">2186</a>         }
<a class="jxr_linenumber" name="2187" href="#2187">2187</a> 
<a class="jxr_linenumber" name="2188" href="#2188">2188</a>         f = createResult(FAILURE, <span class="jxr_string">"Ids don't match!"</span>);
<a class="jxr_linenumber" name="2189" href="#2189">2189</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2190" href="#2190">2190</a> 
<a class="jxr_linenumber" name="2191" href="#2191">2191</a>         f = createResult(FAILURE, <span class="jxr_string">"Base types don't match!"</span>);
<a class="jxr_linenumber" name="2192" href="#2192">2192</a>         addResult(results, assertEquals(expected.getBaseTypeId(), actual.getBaseTypeId(), <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>         f = createResult(FAILURE, <span class="jxr_string">"Types don't match!"</span>);
<a class="jxr_linenumber" name="2195" href="#2195">2195</a>         addResult(results, assertEquals(expected.getType().getId(), actual.getType().getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2196" href="#2196">2196</a> 
<a class="jxr_linenumber" name="2197" href="#2197">2197</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2198" href="#2198">2198</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2199" href="#2199">2199</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2200" href="#2200">2200</a>             }
<a class="jxr_linenumber" name="2201" href="#2201">2201</a> 
<a class="jxr_linenumber" name="2202" href="#2202">2202</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2203" href="#2203">2203</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2204" href="#2204">2204</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2206" href="#2206">2206</a>             }
<a class="jxr_linenumber" name="2207" href="#2207">2207</a> 
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2209" href="#2209">2209</a>         }
<a class="jxr_linenumber" name="2210" href="#2210">2210</a>     }
<a class="jxr_linenumber" name="2211" href="#2211">2211</a> 
<a class="jxr_linenumber" name="2212" href="#2212">2212</a>     <em class="jxr_comment">// --- type checks ---</em>
<a class="jxr_linenumber" name="2213" href="#2213">2213</a> 
<a class="jxr_linenumber" name="2214" href="#2214">2214</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="2215" href="#2215">2215</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2216" href="#2216">2216</a> 
<a class="jxr_linenumber" name="2217" href="#2217">2217</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2218" href="#2218">2218</a> 
<a class="jxr_linenumber" name="2219" href="#2219">2219</a>         <strong class="jxr_keyword">if</strong> (queryName == <strong class="jxr_keyword">null</strong> || queryName.length() == 0) {
<a class="jxr_linenumber" name="2220" href="#2220">2220</a>             addResult(results, createResult(isRequired ? FAILURE : WARNING, <span class="jxr_string">"Query name is not set!"</span>));
<a class="jxr_linenumber" name="2221" href="#2221">2221</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2222" href="#2222">2222</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ' '"</span>);
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>             addResult(results, assertIsTrue(queryName.indexOf(' ') &lt; 0, <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>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ','"</span>);
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>             addResult(results, assertIsTrue(queryName.indexOf(',') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2227" href="#2227">2227</a> 
<a class="jxr_linenumber" name="2228" href="#2228">2228</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '\&quot;'"</span>);
<a class="jxr_linenumber" name="2229" href="#2229">2229</a>             addResult(results, assertIsTrue(queryName.indexOf('&quot;') &lt; 0, <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>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '''"</span>);
<a class="jxr_linenumber" name="2232" href="#2232">2232</a>             addResult(results, assertIsTrue(queryName.indexOf('\'') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2233" href="#2233">2233</a> 
<a class="jxr_linenumber" name="2234" href="#2234">2234</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;'"</span>);
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>             addResult(results, assertIsTrue(queryName.indexOf('&#92;&#92;') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2236" href="#2236">2236</a> 
<a class="jxr_linenumber" name="2237" href="#2237">2237</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '.'"</span>);
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>             addResult(results, assertIsTrue(queryName.indexOf('.') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2239" href="#2239">2239</a> 
<a class="jxr_linenumber" name="2240" href="#2240">2240</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '('"</span>);
<a class="jxr_linenumber" name="2241" href="#2241">2241</a>             addResult(results, assertIsTrue(queryName.indexOf('(') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2242" href="#2242">2242</a> 
<a class="jxr_linenumber" name="2243" href="#2243">2243</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: ')'"</span>);
<a class="jxr_linenumber" name="2244" href="#2244">2244</a>             addResult(results, assertIsTrue(queryName.indexOf(')') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2245" href="#2245">2245</a> 
<a class="jxr_linenumber" name="2246" href="#2246">2246</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;t'"</span>);
<a class="jxr_linenumber" name="2247" href="#2247">2247</a>             addResult(results, assertIsTrue(queryName.indexOf('\t') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2248" href="#2248">2248</a> 
<a class="jxr_linenumber" name="2249" href="#2249">2249</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;n'"</span>);
<a class="jxr_linenumber" name="2250" href="#2250">2250</a>             addResult(results, assertIsTrue(queryName.indexOf('\n') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2251" href="#2251">2251</a> 
<a class="jxr_linenumber" name="2252" href="#2252">2252</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name contains invalid character: '&#92;&#92;r'"</span>);
<a class="jxr_linenumber" name="2253" href="#2253">2253</a>             addResult(results, assertIsTrue(queryName.indexOf('\r') &lt; 0, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>         }
<a class="jxr_linenumber" name="2255" href="#2255">2255</a> 
<a class="jxr_linenumber" name="2256" href="#2256">2256</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2258" href="#2258">2258</a> 
<a class="jxr_linenumber" name="2259" href="#2259">2259</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="2260" href="#2260">2260</a>     }
<a class="jxr_linenumber" name="2261" href="#2261">2261</a> 
<a class="jxr_linenumber" name="2262" href="#2262">2262</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="2263" href="#2263">2263</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2264" href="#2264">2264</a> 
<a class="jxr_linenumber" name="2265" href="#2265">2265</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2266" href="#2266">2266</a> 
<a class="jxr_linenumber" name="2267" href="#2267">2267</a>         f = createResult(FAILURE, <span class="jxr_string">"Type is null!"</span>);
<a class="jxr_linenumber" name="2268" href="#2268">2268</a>         addResult(results, assertNotNull(type, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2269" href="#2269">2269</a> 
<a class="jxr_linenumber" name="2270" href="#2270">2270</a>         <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2271" href="#2271">2271</a>             f = createResult(FAILURE, <span class="jxr_string">"Type id is not set!"</span>);
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>             addResult(results, assertStringNotEmpty(type.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2273" href="#2273">2273</a> 
<a class="jxr_linenumber" name="2274" href="#2274">2274</a>             f = createResult(FAILURE, <span class="jxr_string">"Base type id is not set!"</span>);
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>             addResult(results, assertNotNull(type.getBaseTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2276" href="#2276">2276</a> 
<a class="jxr_linenumber" name="2277" href="#2277">2277</a>             f = createResult(FAILURE, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="2278" href="#2278">2278</a>             addResult(results, assertStringNotEmpty(type.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2279" href="#2279">2279</a> 
<a class="jxr_linenumber" name="2280" href="#2280">2280</a>             <em class="jxr_comment">// f = createResult(FAILURE, "Local namespace is not set!");</em>
<a class="jxr_linenumber" name="2281" href="#2281">2281</a>             <em class="jxr_comment">// addResult(results, assertStringNotEmpty(type.(), null, f));</em>
<a class="jxr_linenumber" name="2282" href="#2282">2282</a> 
<a class="jxr_linenumber" name="2283" href="#2283">2283</a>             <strong class="jxr_keyword">boolean</strong> isQueryNameRequired = Boolean.TRUE.equals(type.isQueryable());
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>             addResult(results,
<a class="jxr_linenumber" name="2285" href="#2285">2285</a>                     checkQueryName(type.getQueryName(), isQueryNameRequired, <span class="jxr_string">"Type Query Name: "</span> + type.getQueryName()));
<a class="jxr_linenumber" name="2286" href="#2286">2286</a> 
<a class="jxr_linenumber" name="2287" href="#2287">2287</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="2288" href="#2288">2288</a>                 <strong class="jxr_keyword">if</strong> (type.getBaseTypeId().value().equals(type.getId())) {
<a class="jxr_linenumber" name="2289" href="#2289">2289</a>                     f = createResult(FAILURE, <span class="jxr_string">"Base type has parent type!"</span>);
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>                     addResult(results, assertStringNullOrEmpty(type.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2291" href="#2291">2291</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2292" href="#2292">2292</a>                     f = createResult(FAILURE, <span class="jxr_string">"Parent type is not set!"</span>);
<a class="jxr_linenumber" name="2293" href="#2293">2293</a>                     addResult(results, assertStringNotEmpty(type.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2294" href="#2294">2294</a>                 }
<a class="jxr_linenumber" name="2295" href="#2295">2295</a>             }
<a class="jxr_linenumber" name="2296" href="#2296">2296</a> 
<a class="jxr_linenumber" name="2297" href="#2297">2297</a>             f = createResult(FAILURE, <span class="jxr_string">"Creatable flag is not set!"</span>);
<a class="jxr_linenumber" name="2298" href="#2298">2298</a>             addResult(results, assertNotNull(type.isCreatable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2299" href="#2299">2299</a> 
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>             f = createResult(FAILURE, <span class="jxr_string">"Fileable flag is not set!"</span>);
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>             addResult(results, assertNotNull(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2302" href="#2302">2302</a> 
<a class="jxr_linenumber" name="2303" href="#2303">2303</a>             f = createResult(FAILURE, <span class="jxr_string">"Controllable ACL flag is not set!"</span>);
<a class="jxr_linenumber" name="2304" href="#2304">2304</a>             addResult(results, assertNotNull(type.isControllableAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2305" href="#2305">2305</a> 
<a class="jxr_linenumber" name="2306" href="#2306">2306</a>             f = createResult(FAILURE, <span class="jxr_string">"Controllable Policy flag is not set!"</span>);
<a class="jxr_linenumber" name="2307" href="#2307">2307</a>             addResult(results, assertNotNull(type.isControllablePolicy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2308" href="#2308">2308</a> 
<a class="jxr_linenumber" name="2309" href="#2309">2309</a>             f = createResult(FAILURE, <span class="jxr_string">"Fulltext indexed flag is not set!"</span>);
<a class="jxr_linenumber" name="2310" href="#2310">2310</a>             addResult(results, assertNotNull(type.isFulltextIndexed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2311" href="#2311">2311</a> 
<a class="jxr_linenumber" name="2312" href="#2312">2312</a>             f = createResult(FAILURE, <span class="jxr_string">"Included in super type flag is not set!"</span>);
<a class="jxr_linenumber" name="2313" href="#2313">2313</a>             addResult(results, assertNotNull(type.isIncludedInSupertypeQuery(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2314" href="#2314">2314</a> 
<a class="jxr_linenumber" name="2315" href="#2315">2315</a>             f = createResult(FAILURE, <span class="jxr_string">"Queryable flag is not set!"</span>);
<a class="jxr_linenumber" name="2316" href="#2316">2316</a>             addResult(results, assertNotNull(type.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2317" href="#2317">2317</a> 
<a class="jxr_linenumber" name="2318" href="#2318">2318</a>             f = createResult(WARNING, <span class="jxr_string">"Type display name is not set!"</span>);
<a class="jxr_linenumber" name="2319" href="#2319">2319</a>             addResult(results, assertStringNotEmpty(type.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2320" href="#2320">2320</a> 
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>             f = createResult(WARNING, <span class="jxr_string">"Type description is not set!"</span>);
<a class="jxr_linenumber" name="2322" href="#2322">2322</a>             addResult(results, assertStringNotEmpty(type.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2323" href="#2323">2323</a> 
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>             <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2325" href="#2325">2325</a>                 DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
<a class="jxr_linenumber" name="2326" href="#2326">2326</a> 
<a class="jxr_linenumber" name="2327" href="#2327">2327</a>                 f = createResult(FAILURE, <span class="jxr_string">"Versionable flag is not set!"</span>);
<a class="jxr_linenumber" name="2328" href="#2328">2328</a>                 addResult(results, assertNotNull(docType.isVersionable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2329" href="#2329">2329</a> 
<a class="jxr_linenumber" name="2330" href="#2330">2330</a>                 f = createResult(FAILURE, <span class="jxr_string">"Content stream allowed flag is not set!"</span>);
<a class="jxr_linenumber" name="2331" href="#2331">2331</a>                 addResult(results, assertNotNull(docType.getContentStreamAllowed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2332" href="#2332">2332</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2333" href="#2333">2333</a>                 <strong class="jxr_keyword">if</strong> (type.isFileable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2334" href="#2334">2334</a>                     f = createResult(FAILURE, <span class="jxr_string">"Folder types must be fileable!"</span>);
<a class="jxr_linenumber" name="2335" href="#2335">2335</a>                     addResult(results, assertIsTrue(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2336" href="#2336">2336</a>                 }
<a class="jxr_linenumber" name="2337" href="#2337">2337</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2338" href="#2338">2338</a>                 RelationshipTypeDefinition relType = (RelationshipTypeDefinition) type;
<a class="jxr_linenumber" name="2339" href="#2339">2339</a> 
<a class="jxr_linenumber" name="2340" href="#2340">2340</a>                 f = createResult(FAILURE, <span class="jxr_string">"Allowed Source Type Ids are not set!"</span>);
<a class="jxr_linenumber" name="2341" href="#2341">2341</a>                 addResult(results, assertNotNull(relType.getAllowedSourceTypeIds(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2342" href="#2342">2342</a> 
<a class="jxr_linenumber" name="2343" href="#2343">2343</a>                 <strong class="jxr_keyword">if</strong> (relType.getAllowedSourceTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2344" href="#2344">2344</a>                     <strong class="jxr_keyword">for</strong> (String typeId : relType.getAllowedSourceTypeIds()) {
<a class="jxr_linenumber" name="2345" href="#2345">2345</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2346" href="#2346">2346</a>                             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="2347" href="#2347">2347</a>                         } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>                             addResult(
<a class="jxr_linenumber" name="2349" href="#2349">2349</a>                                     results,
<a class="jxr_linenumber" name="2350" href="#2350">2350</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2351" href="#2351">2351</a>                                             <span class="jxr_string">"Allowed Source Type Ids contain a type id that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2352" href="#2352">2352</a>                         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="2353" href="#2353">2353</a>                             addResult(
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>                                     results,
<a class="jxr_linenumber" name="2355" href="#2355">2355</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2356" href="#2356">2356</a>                                             <span class="jxr_string">"Allowed Source Type Ids contain a type id that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>                         }
<a class="jxr_linenumber" name="2358" href="#2358">2358</a>                     }
<a class="jxr_linenumber" name="2359" href="#2359">2359</a>                 }
<a class="jxr_linenumber" name="2360" href="#2360">2360</a> 
<a class="jxr_linenumber" name="2361" href="#2361">2361</a>                 f = createResult(FAILURE, <span class="jxr_string">"Allowed Target Type Ids are not set!"</span>);
<a class="jxr_linenumber" name="2362" href="#2362">2362</a>                 addResult(results, assertNotNull(relType.getAllowedTargetTypeIds(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2363" href="#2363">2363</a> 
<a class="jxr_linenumber" name="2364" href="#2364">2364</a>                 <strong class="jxr_keyword">if</strong> (relType.getAllowedTargetTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2365" href="#2365">2365</a>                     <strong class="jxr_keyword">for</strong> (String typeId : relType.getAllowedTargetTypeIds()) {
<a class="jxr_linenumber" name="2366" href="#2366">2366</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>                             session.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="2368" href="#2368">2368</a>                         } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="2369" href="#2369">2369</a>                             addResult(
<a class="jxr_linenumber" name="2370" href="#2370">2370</a>                                     results,
<a class="jxr_linenumber" name="2371" href="#2371">2371</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2372" href="#2372">2372</a>                                             <span class="jxr_string">"Allowed Target Type Ids contain a type id that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>                         } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="2374" href="#2374">2374</a>                             addResult(
<a class="jxr_linenumber" name="2375" href="#2375">2375</a>                                     results,
<a class="jxr_linenumber" name="2376" href="#2376">2376</a>                                     createResult(WARNING,
<a class="jxr_linenumber" name="2377" href="#2377">2377</a>                                             <span class="jxr_string">"Allowed Target Type Ids contain a type id that doesn't exist: "</span> + typeId));
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>                         }
<a class="jxr_linenumber" name="2379" href="#2379">2379</a>                     }
<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>                 <strong class="jxr_keyword">if</strong> (type.isFileable() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>                     f = createResult(FAILURE, <span class="jxr_string">"Relationship types must not be fileable!"</span>);
<a class="jxr_linenumber" name="2384" href="#2384">2384</a>                     addResult(results, assertIsFalse(type.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2385" href="#2385">2385</a>                 }
<a class="jxr_linenumber" name="2386" href="#2386">2386</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2387" href="#2387">2387</a>                 <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="2388" href="#2388">2388</a>             }
<a class="jxr_linenumber" name="2389" href="#2389">2389</a> 
<a class="jxr_linenumber" name="2390" href="#2390">2390</a>             <em class="jxr_comment">// check properties</em>
<a class="jxr_linenumber" name="2391" href="#2391">2391</a>             <strong class="jxr_keyword">if</strong> (!BaseTypeId.CMIS_SECONDARY.equals(type.getBaseTypeId())) {
<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 has no property definitions!"</span>);
<a class="jxr_linenumber" name="2394" href="#2394">2394</a>                 addResult(results, assertNotNull(type.getPropertyDefinitions(), <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.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2397" href="#2397">2397</a>                     <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : type.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>                         <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2399" href="#2399">2399</a>                             addResult(results, createResult(FAILURE, <span class="jxr_string">"A property definition is null!"</span>));
<a class="jxr_linenumber" name="2400" href="#2400">2400</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="2401" href="#2401">2401</a>                             addResult(results, createResult(FAILURE, <span class="jxr_string">"A property definition id is null!"</span>));
<a class="jxr_linenumber" name="2402" href="#2402">2402</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>                             addResult(results,
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>                                     checkPropertyDefinition(propDef, <span class="jxr_string">"Property definition: "</span> + propDef.getId()));
<a class="jxr_linenumber" name="2405" href="#2405">2405</a>                         }
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>                     }
<a class="jxr_linenumber" name="2407" href="#2407">2407</a>                 }
<a class="jxr_linenumber" name="2408" href="#2408">2408</a> 
<a class="jxr_linenumber" name="2409" href="#2409">2409</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">CmisPropertyDefintion</a> cpd;
<a class="jxr_linenumber" name="2410" href="#2410">2410</a> 
<a class="jxr_linenumber" name="2411" href="#2411">2411</a>                 <em class="jxr_comment">// cmis:name</em>
<a class="jxr_linenumber" name="2412" href="#2412">2412</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="2413" href="#2413">2413</a>                         <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2415" href="#2415">2415</a> 
<a class="jxr_linenumber" name="2416" href="#2416">2416</a>                 <em class="jxr_comment">// cmis:objectId</em>
<a class="jxr_linenumber" name="2417" href="#2417">2417</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="2418" href="#2418">2418</a>                         Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2419" href="#2419">2419</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2420" href="#2420">2420</a> 
<a class="jxr_linenumber" name="2421" href="#2421">2421</a>                 <em class="jxr_comment">// cmis:baseTypeId</em>
<a class="jxr_linenumber" name="2422" href="#2422">2422</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="2423" href="#2423">2423</a>                         Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2424" href="#2424">2424</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2425" href="#2425">2425</a> 
<a class="jxr_linenumber" name="2426" href="#2426">2426</a>                 <em class="jxr_comment">// cmis:objectTypeId</em>
<a class="jxr_linenumber" name="2427" href="#2427">2427</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="2428" href="#2428">2428</a>                         Updatability.ONCREATE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2429" href="#2429">2429</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2430" href="#2430">2430</a> 
<a class="jxr_linenumber" name="2431" href="#2431">2431</a>                 <em class="jxr_comment">// cmis:createdBy</em>
<a class="jxr_linenumber" name="2432" href="#2432">2432</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="2433" href="#2433">2433</a>                         Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2434" href="#2434">2434</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2435" href="#2435">2435</a> 
<a class="jxr_linenumber" name="2436" href="#2436">2436</a>                 <em class="jxr_comment">// cmis:creationDate</em>
<a class="jxr_linenumber" name="2437" href="#2437">2437</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="2438" href="#2438">2438</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2439" href="#2439">2439</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2440" href="#2440">2440</a> 
<a class="jxr_linenumber" name="2441" href="#2441">2441</a>                 <em class="jxr_comment">// cmis:lastModifiedBy</em>
<a class="jxr_linenumber" name="2442" href="#2442">2442</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="2443" href="#2443">2443</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2444" href="#2444">2444</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2445" href="#2445">2445</a> 
<a class="jxr_linenumber" name="2446" href="#2446">2446</a>                 <em class="jxr_comment">// cmis:lastModificationDate</em>
<a class="jxr_linenumber" name="2447" href="#2447">2447</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="2448" href="#2448">2448</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2449" href="#2449">2449</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2450" href="#2450">2450</a> 
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>                 <em class="jxr_comment">// cmis:changeToken</em>
<a class="jxr_linenumber" name="2452" href="#2452">2452</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="2453" href="#2453">2453</a>                         Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>                 addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2455" href="#2455">2455</a> 
<a class="jxr_linenumber" name="2456" href="#2456">2456</a>                 <em class="jxr_comment">// CMIS 1.1 properties</em>
<a class="jxr_linenumber" name="2457" href="#2457">2457</a>                 <strong class="jxr_keyword">if</strong> (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_1) {
<a class="jxr_linenumber" name="2458" href="#2458">2458</a>                     <em class="jxr_comment">// cmis:description</em>
<a class="jxr_linenumber" name="2459" href="#2459">2459</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="2460" href="#2460">2460</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="2461" href="#2461">2461</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2462" href="#2462">2462</a> 
<a class="jxr_linenumber" name="2463" href="#2463">2463</a>                     <em class="jxr_comment">// cmis:secondaryObjectTypeIds</em>
<a class="jxr_linenumber" name="2464" href="#2464">2464</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="2465" href="#2465">2465</a>                             Cardinality.MULTI, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, false);
<a class="jxr_linenumber" name="2466" href="#2466">2466</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2467" href="#2467">2467</a> 
<a class="jxr_linenumber" name="2468" href="#2468">2468</a>                     <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2469" href="#2469">2469</a>                         <em class="jxr_comment">// cmis:isPrivateWorkingCopy</em>
<a class="jxr_linenumber" name="2470" href="#2470">2470</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="2471" href="#2471">2471</a>                                 PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2472" href="#2472">2472</a>                         addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>                     }
<a class="jxr_linenumber" name="2474" href="#2474">2474</a>                 }
<a class="jxr_linenumber" name="2475" href="#2475">2475</a> 
<a class="jxr_linenumber" name="2476" href="#2476">2476</a>                 <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2477" href="#2477">2477</a>                     <em class="jxr_comment">// cmis:isImmutable</em>
<a class="jxr_linenumber" name="2478" href="#2478">2478</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="2479" href="#2479">2479</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2480" href="#2480">2480</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2481" href="#2481">2481</a> 
<a class="jxr_linenumber" name="2482" href="#2482">2482</a>                     <em class="jxr_comment">// cmis:isLatestVersion</em>
<a class="jxr_linenumber" name="2483" href="#2483">2483</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="2484" href="#2484">2484</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2485" href="#2485">2485</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2486" href="#2486">2486</a> 
<a class="jxr_linenumber" name="2487" href="#2487">2487</a>                     <em class="jxr_comment">// cmis:isMajorVersion</em>
<a class="jxr_linenumber" name="2488" href="#2488">2488</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="2489" href="#2489">2489</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2490" href="#2490">2490</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2491" href="#2491">2491</a> 
<a class="jxr_linenumber" name="2492" href="#2492">2492</a>                     <em class="jxr_comment">// cmis:isLatestMajorVersion</em>
<a class="jxr_linenumber" name="2493" href="#2493">2493</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="2494" href="#2494">2494</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2495" href="#2495">2495</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2496" href="#2496">2496</a> 
<a class="jxr_linenumber" name="2497" href="#2497">2497</a>                     <em class="jxr_comment">// cmis:versionLabel</em>
<a class="jxr_linenumber" name="2498" href="#2498">2498</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="2499" href="#2499">2499</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2500" href="#2500">2500</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2501" href="#2501">2501</a> 
<a class="jxr_linenumber" name="2502" href="#2502">2502</a>                     <em class="jxr_comment">// cmis:versionSeriesId</em>
<a class="jxr_linenumber" name="2503" href="#2503">2503</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="2504" href="#2504">2504</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2505" href="#2505">2505</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2506" href="#2506">2506</a> 
<a class="jxr_linenumber" name="2507" href="#2507">2507</a>                     <em class="jxr_comment">// cmis:isVersionSeriesCheckedOut</em>
<a class="jxr_linenumber" name="2508" href="#2508">2508</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="2509" href="#2509">2509</a>                             PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2510" href="#2510">2510</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2511" href="#2511">2511</a> 
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>                     <em class="jxr_comment">// cmis:versionSeriesCheckedOutBy</em>
<a class="jxr_linenumber" name="2513" href="#2513">2513</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="2514" href="#2514">2514</a>                             PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2515" href="#2515">2515</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2516" href="#2516">2516</a> 
<a class="jxr_linenumber" name="2517" href="#2517">2517</a>                     <em class="jxr_comment">// cmis:versionSeriesCheckedOutId</em>
<a class="jxr_linenumber" name="2518" href="#2518">2518</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="2519" href="#2519">2519</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2521" href="#2521">2521</a> 
<a class="jxr_linenumber" name="2522" href="#2522">2522</a>                     <em class="jxr_comment">// cmis:checkinComment</em>
<a class="jxr_linenumber" name="2523" href="#2523">2523</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="2524" href="#2524">2524</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2525" href="#2525">2525</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2526" href="#2526">2526</a> 
<a class="jxr_linenumber" name="2527" href="#2527">2527</a>                     <em class="jxr_comment">// cmis:contentStreamLength</em>
<a class="jxr_linenumber" name="2528" href="#2528">2528</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="2529" href="#2529">2529</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2530" href="#2530">2530</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2531" href="#2531">2531</a> 
<a class="jxr_linenumber" name="2532" href="#2532">2532</a>                     <em class="jxr_comment">// cmis:contentStreamMimeType</em>
<a class="jxr_linenumber" name="2533" href="#2533">2533</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="2534" href="#2534">2534</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2535" href="#2535">2535</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2536" href="#2536">2536</a> 
<a class="jxr_linenumber" name="2537" href="#2537">2537</a>                     <em class="jxr_comment">// cmis:contentStreamFileName</em>
<a class="jxr_linenumber" name="2538" href="#2538">2538</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="2539" href="#2539">2539</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2540" href="#2540">2540</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2541" href="#2541">2541</a> 
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>                     <em class="jxr_comment">// cmis:contentStreamId</em>
<a class="jxr_linenumber" name="2543" href="#2543">2543</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="2544" href="#2544">2544</a>                             Cardinality.SINGLE, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2545" href="#2545">2545</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2546" href="#2546">2546</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2547" href="#2547">2547</a>                     <em class="jxr_comment">// cmis:parentId</em>
<a class="jxr_linenumber" name="2548" href="#2548">2548</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="2549" href="#2549">2549</a>                             Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2550" href="#2550">2550</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2551" href="#2551">2551</a> 
<a class="jxr_linenumber" name="2552" href="#2552">2552</a>                     <em class="jxr_comment">// cmis:path</em>
<a class="jxr_linenumber" name="2553" href="#2553">2553</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="2554" href="#2554">2554</a>                             Updatability.READONLY, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2555" href="#2555">2555</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2556" href="#2556">2556</a> 
<a class="jxr_linenumber" name="2557" href="#2557">2557</a>                     <em class="jxr_comment">// cmis:allowedChildObjectTypeIds</em>
<a class="jxr_linenumber" name="2558" href="#2558">2558</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="2559" href="#2559">2559</a>                             Cardinality.MULTI, Updatability.READONLY, <strong class="jxr_keyword">null</strong>, false);
<a class="jxr_linenumber" name="2560" href="#2560">2560</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2562" href="#2562">2562</a>                     <em class="jxr_comment">// cmis:sourceId</em>
<a class="jxr_linenumber" name="2563" href="#2563">2563</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="2564" href="#2564">2564</a>                             <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2565" href="#2565">2565</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2566" href="#2566">2566</a> 
<a class="jxr_linenumber" name="2567" href="#2567">2567</a>                     <em class="jxr_comment">// cmis:targetId</em>
<a class="jxr_linenumber" name="2568" href="#2568">2568</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="2569" href="#2569">2569</a>                             <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2570" href="#2570">2570</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2571" href="#2571">2571</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) {
<a class="jxr_linenumber" name="2572" href="#2572">2572</a>                     <em class="jxr_comment">// cmis:policyText</em>
<a class="jxr_linenumber" name="2573" href="#2573">2573</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="2574" href="#2574">2574</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="2575" href="#2575">2575</a>                     addResult(results, cpd.check(type));
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>                 }
<a class="jxr_linenumber" name="2577" href="#2577">2577</a>             }
<a class="jxr_linenumber" name="2578" href="#2578">2578</a>         }
<a class="jxr_linenumber" name="2579" href="#2579">2579</a> 
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2581" href="#2581">2581</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2582" href="#2582">2582</a> 
<a class="jxr_linenumber" name="2583" href="#2583">2583</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="2584" href="#2584">2584</a>     }
<a class="jxr_linenumber" name="2585" href="#2585">2585</a> 
<a class="jxr_linenumber" name="2586" href="#2586">2586</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="2587" href="#2587">2587</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2588" href="#2588">2588</a> 
<a class="jxr_linenumber" name="2589" href="#2589">2589</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2590" href="#2590">2590</a> 
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>         f = createResult(FAILURE, <span class="jxr_string">"Property definition is null!"</span>);
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>         addResult(results, assertNotNull(propDef, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2593" href="#2593">2593</a> 
<a class="jxr_linenumber" name="2594" href="#2594">2594</a>         <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>             f = createResult(FAILURE, <span class="jxr_string">"Property id is not set!"</span>);
<a class="jxr_linenumber" name="2596" href="#2596">2596</a>             addResult(results, assertStringNotEmpty(propDef.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2597" href="#2597">2597</a> 
<a class="jxr_linenumber" name="2598" href="#2598">2598</a>             f = createResult(WARNING, <span class="jxr_string">"Local name is not set!"</span>);
<a class="jxr_linenumber" name="2599" href="#2599">2599</a>             addResult(results, assertStringNotEmpty(propDef.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2600" href="#2600">2600</a> 
<a class="jxr_linenumber" name="2601" href="#2601">2601</a>             <em class="jxr_comment">// f = createResult(WARNING, "Local namespace is not set!");</em>
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>             <em class="jxr_comment">// addResult(results,</em>
<a class="jxr_linenumber" name="2603" href="#2603">2603</a>             <em class="jxr_comment">// assertStringNotEmpty(propDef.getLocalNamespace(), null, f));</em>
<a class="jxr_linenumber" name="2604" href="#2604">2604</a> 
<a class="jxr_linenumber" name="2605" href="#2605">2605</a>             f = createResult(FAILURE, <span class="jxr_string">"Query name is not set!"</span>);
<a class="jxr_linenumber" name="2606" href="#2606">2606</a>             addResult(results, assertStringNotEmpty(propDef.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2607" href="#2607">2607</a> 
<a class="jxr_linenumber" name="2608" href="#2608">2608</a>             f = createResult(WARNING, <span class="jxr_string">"Display name is not set!"</span>);
<a class="jxr_linenumber" name="2609" href="#2609">2609</a>             addResult(results, assertStringNotEmpty(propDef.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2610" href="#2610">2610</a> 
<a class="jxr_linenumber" name="2611" href="#2611">2611</a>             f = createResult(WARNING, <span class="jxr_string">"Description is not set!"</span>);
<a class="jxr_linenumber" name="2612" href="#2612">2612</a>             addResult(results, assertStringNotEmpty(propDef.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2613" href="#2613">2613</a> 
<a class="jxr_linenumber" name="2614" href="#2614">2614</a>             f = createResult(FAILURE, <span class="jxr_string">"Property type is not set!"</span>);
<a class="jxr_linenumber" name="2615" href="#2615">2615</a>             addResult(results, assertNotNull(propDef.getPropertyType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2616" href="#2616">2616</a> 
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>             f = createResult(FAILURE, <span class="jxr_string">"Cardinality is not set!"</span>);
<a class="jxr_linenumber" name="2618" href="#2618">2618</a>             addResult(results, assertNotNull(propDef.getCardinality(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2619" href="#2619">2619</a> 
<a class="jxr_linenumber" name="2620" href="#2620">2620</a>             f = createResult(FAILURE, <span class="jxr_string">"Updatability is not set!"</span>);
<a class="jxr_linenumber" name="2621" href="#2621">2621</a>             addResult(results, assertNotNull(propDef.getUpdatability(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2622" href="#2622">2622</a> 
<a class="jxr_linenumber" name="2623" href="#2623">2623</a>             f = createResult(FAILURE, <span class="jxr_string">"Inherited flag is not set!"</span>);
<a class="jxr_linenumber" name="2624" href="#2624">2624</a>             addResult(results, assertNotNull(propDef.isInherited(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2625" href="#2625">2625</a> 
<a class="jxr_linenumber" name="2626" href="#2626">2626</a>             f = createResult(FAILURE, <span class="jxr_string">"Required flag is not set!"</span>);
<a class="jxr_linenumber" name="2627" href="#2627">2627</a>             addResult(results, assertNotNull(propDef.isRequired(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2628" href="#2628">2628</a> 
<a class="jxr_linenumber" name="2629" href="#2629">2629</a>             f = createResult(FAILURE, <span class="jxr_string">"Queryable flag is not set!"</span>);
<a class="jxr_linenumber" name="2630" href="#2630">2630</a>             addResult(results, assertNotNull(propDef.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2631" href="#2631">2631</a> 
<a class="jxr_linenumber" name="2632" href="#2632">2632</a>             f = createResult(FAILURE, <span class="jxr_string">"Orderable flag is not set!"</span>);
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>             addResult(results, assertNotNull(propDef.isOrderable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2634" href="#2634">2634</a>         }
<a class="jxr_linenumber" name="2635" href="#2635">2635</a> 
<a class="jxr_linenumber" name="2636" href="#2636">2636</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a> result = createResult(getWorst(results), message);
<a class="jxr_linenumber" name="2637" href="#2637">2637</a>         result.getChildren().addAll(results);
<a class="jxr_linenumber" name="2638" href="#2638">2638</a> 
<a class="jxr_linenumber" name="2639" href="#2639">2639</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="2640" href="#2640">2640</a>     }
<a class="jxr_linenumber" name="2641" href="#2641">2641</a> 
<a class="jxr_linenumber" name="2642" href="#2642">2642</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="2643" href="#2643">2643</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2644" href="#2644">2644</a> 
<a class="jxr_linenumber" name="2645" href="#2645">2645</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2646" href="#2646">2646</a> 
<a class="jxr_linenumber" name="2647" href="#2647">2647</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2648" href="#2648">2648</a> 
<a class="jxr_linenumber" name="2649" href="#2649">2649</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="2650" href="#2650">2650</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>         }
<a class="jxr_linenumber" name="2652" href="#2652">2652</a> 
<a class="jxr_linenumber" name="2653" href="#2653">2653</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2654" href="#2654">2654</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="2655" href="#2655">2655</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2656" href="#2656">2656</a> 
<a class="jxr_linenumber" name="2657" href="#2657">2657</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2658" href="#2658">2658</a>         }
<a class="jxr_linenumber" name="2659" href="#2659">2659</a> 
<a class="jxr_linenumber" name="2660" href="#2660">2660</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2661" href="#2661">2661</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="2662" href="#2662">2662</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2663" href="#2663">2663</a> 
<a class="jxr_linenumber" name="2664" href="#2664">2664</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2665" href="#2665">2665</a>         }
<a class="jxr_linenumber" name="2666" href="#2666">2666</a> 
<a class="jxr_linenumber" name="2667" href="#2667">2667</a>         f = createResult(FAILURE, <span class="jxr_string">"Type ids don't match!"</span>);
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2669" href="#2669">2669</a> 
<a class="jxr_linenumber" name="2670" href="#2670">2670</a>         f = createResult(FAILURE, <span class="jxr_string">"Base type ids don't match!"</span>);
<a class="jxr_linenumber" name="2671" href="#2671">2671</a>         addResult(results, assertEquals(expected.getBaseTypeId(), actual.getBaseTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2672" href="#2672">2672</a> 
<a class="jxr_linenumber" name="2673" href="#2673">2673</a>         f = createResult(FAILURE, <span class="jxr_string">"Parent type ids don't match!"</span>);
<a class="jxr_linenumber" name="2674" href="#2674">2674</a>         addResult(results, assertEquals(expected.getParentTypeId(), actual.getParentTypeId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2675" href="#2675">2675</a> 
<a class="jxr_linenumber" name="2676" href="#2676">2676</a>         f = createResult(FAILURE, <span class="jxr_string">"Query names don't match!"</span>);
<a class="jxr_linenumber" name="2677" href="#2677">2677</a>         addResult(results, assertEquals(expected.getQueryName(), actual.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2678" href="#2678">2678</a> 
<a class="jxr_linenumber" name="2679" href="#2679">2679</a>         f = createResult(FAILURE, <span class="jxr_string">"Local names don't match!"</span>);
<a class="jxr_linenumber" name="2680" href="#2680">2680</a>         addResult(results, assertEquals(expected.getLocalName(), actual.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2681" href="#2681">2681</a> 
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>         f = createResult(FAILURE, <span class="jxr_string">"Local namespaces don't match!"</span>);
<a class="jxr_linenumber" name="2683" href="#2683">2683</a>         addResult(results, assertEquals(expected.getLocalNamespace(), actual.getLocalNamespace(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2684" href="#2684">2684</a> 
<a class="jxr_linenumber" name="2685" href="#2685">2685</a>         f = createResult(FAILURE, <span class="jxr_string">"Display names don't match!"</span>);
<a class="jxr_linenumber" name="2686" href="#2686">2686</a>         addResult(results, assertEquals(expected.getDisplayName(), actual.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2687" href="#2687">2687</a> 
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>         f = createResult(FAILURE, <span class="jxr_string">"Descriptions don't match!"</span>);
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>         addResult(results, assertEquals(expected.getDescription(), actual.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2690" href="#2690">2690</a> 
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>         f = createResult(FAILURE, <span class="jxr_string">"Controllable ACl flags don't match!"</span>);
<a class="jxr_linenumber" name="2692" href="#2692">2692</a>         addResult(results, assertEquals(expected.isControllableAcl(), actual.isControllableAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2693" href="#2693">2693</a> 
<a class="jxr_linenumber" name="2694" href="#2694">2694</a>         f = createResult(FAILURE, <span class="jxr_string">"Controllable Policy flags don't match!"</span>);
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>         addResult(results, assertEquals(expected.isControllablePolicy(), actual.isControllablePolicy(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2696" href="#2696">2696</a> 
<a class="jxr_linenumber" name="2697" href="#2697">2697</a>         f = createResult(FAILURE, <span class="jxr_string">"Creatable flags don't match!"</span>);
<a class="jxr_linenumber" name="2698" href="#2698">2698</a>         addResult(results, assertEquals(expected.isCreatable(), actual.isCreatable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2699" href="#2699">2699</a> 
<a class="jxr_linenumber" name="2700" href="#2700">2700</a>         f = createResult(FAILURE, <span class="jxr_string">"Fileable flags don't match!"</span>);
<a class="jxr_linenumber" name="2701" href="#2701">2701</a>         addResult(results, assertEquals(expected.isFileable(), actual.isFileable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2702" href="#2702">2702</a> 
<a class="jxr_linenumber" name="2703" href="#2703">2703</a>         f = createResult(FAILURE, <span class="jxr_string">"Fulltext indexed flags don't match!"</span>);
<a class="jxr_linenumber" name="2704" href="#2704">2704</a>         addResult(results, assertEquals(expected.isFulltextIndexed(), actual.isFulltextIndexed(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2705" href="#2705">2705</a> 
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>         f = createResult(FAILURE, <span class="jxr_string">"Queryable flags don't match!"</span>);
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>         addResult(results, assertEquals(expected.isQueryable(), actual.isQueryable(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2708" href="#2708">2708</a> 
<a class="jxr_linenumber" name="2709" href="#2709">2709</a>         f = createResult(FAILURE, <span class="jxr_string">"Included in supertype query flags don't match!"</span>);
<a class="jxr_linenumber" name="2710" href="#2710">2710</a>         addResult(results,
<a class="jxr_linenumber" name="2711" href="#2711">2711</a>                 assertEquals(expected.isIncludedInSupertypeQuery(), actual.isIncludedInSupertypeQuery(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2712" href="#2712">2712</a> 
<a class="jxr_linenumber" name="2713" href="#2713">2713</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="2714" href="#2714">2714</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: Create flags don't match!"</span>);
<a class="jxr_linenumber" name="2715" href="#2715">2715</a>             addResult(
<a class="jxr_linenumber" name="2716" href="#2716">2716</a>                     results,
<a class="jxr_linenumber" name="2717" href="#2717">2717</a>                     assertEquals(expected.getTypeMutability().canCreate(), actual.getTypeMutability().canCreate(),
<a class="jxr_linenumber" name="2718" href="#2718">2718</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2719" href="#2719">2719</a> 
<a class="jxr_linenumber" name="2720" href="#2720">2720</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: update flags don't match!"</span>);
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>             addResult(
<a class="jxr_linenumber" name="2722" href="#2722">2722</a>                     results,
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>                     assertEquals(expected.getTypeMutability().canUpdate(), actual.getTypeMutability().canUpdate(),
<a class="jxr_linenumber" name="2724" href="#2724">2724</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2725" href="#2725">2725</a> 
<a class="jxr_linenumber" name="2726" href="#2726">2726</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability: delete flags don't match!"</span>);
<a class="jxr_linenumber" name="2727" href="#2727">2727</a>             addResult(
<a class="jxr_linenumber" name="2728" href="#2728">2728</a>                     results,
<a class="jxr_linenumber" name="2729" href="#2729">2729</a>                     assertEquals(expected.getTypeMutability().canDelete(), actual.getTypeMutability().canDelete(),
<a class="jxr_linenumber" name="2730" href="#2730">2730</a>                             <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2731" href="#2731">2731</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2732" href="#2732">2732</a>             f = createResult(FAILURE, <span class="jxr_string">"Type Mutability infos don't match!"</span>);
<a class="jxr_linenumber" name="2733" href="#2733">2733</a>             addResult(results, assertEquals(expected.getTypeMutability(), actual.getTypeMutability(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2734" href="#2734">2734</a>         }
<a class="jxr_linenumber" name="2735" href="#2735">2735</a> 
<a class="jxr_linenumber" name="2736" href="#2736">2736</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="2737" href="#2737">2737</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; epd = expected.getPropertyDefinitions();
<a class="jxr_linenumber" name="2738" href="#2738">2738</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; apd = actual.getPropertyDefinitions();
<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">"Different number of property defintions!"</span>);
<a class="jxr_linenumber" name="2741" href="#2741">2741</a>             addResult(results, assertEquals(epd.size(), apd.size(), <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">for</strong> (PropertyDefinition&lt;?&gt; pd : epd.values()) {
<a class="jxr_linenumber" name="2744" href="#2744">2744</a>                 f = createResult(FAILURE, <span class="jxr_string">"Property definition mismatch: "</span> + pd.getId());
<a class="jxr_linenumber" name="2745" href="#2745">2745</a>                 addResult(results, assertEquals(pd, apd.get(pd.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>         }
<a class="jxr_linenumber" name="2748" href="#2748">2748</a> 
<a class="jxr_linenumber" name="2749" href="#2749">2749</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2750" href="#2750">2750</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2751" href="#2751">2751</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2752" href="#2752">2752</a>             }
<a class="jxr_linenumber" name="2753" href="#2753">2753</a> 
<a class="jxr_linenumber" name="2754" href="#2754">2754</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2755" href="#2755">2755</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2756" href="#2756">2756</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2757" href="#2757">2757</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2758" href="#2758">2758</a>             }
<a class="jxr_linenumber" name="2759" href="#2759">2759</a> 
<a class="jxr_linenumber" name="2760" href="#2760">2760</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2761" href="#2761">2761</a>         }
<a class="jxr_linenumber" name="2762" href="#2762">2762</a>     }
<a class="jxr_linenumber" name="2763" href="#2763">2763</a> 
<a class="jxr_linenumber" name="2764" href="#2764">2764</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="2765" href="#2765">2765</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="2766" href="#2766">2766</a> 
<a class="jxr_linenumber" name="2767" href="#2767">2767</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2768" href="#2768">2768</a> 
<a class="jxr_linenumber" name="2769" href="#2769">2769</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2770" href="#2770">2770</a> 
<a class="jxr_linenumber" name="2771" href="#2771">2771</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="2772" href="#2772">2772</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2773" href="#2773">2773</a>         }
<a class="jxr_linenumber" name="2774" href="#2774">2774</a> 
<a class="jxr_linenumber" name="2775" href="#2775">2775</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2776" href="#2776">2776</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="2777" href="#2777">2777</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2778" href="#2778">2778</a> 
<a class="jxr_linenumber" name="2779" href="#2779">2779</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2780" href="#2780">2780</a>         }
<a class="jxr_linenumber" name="2781" href="#2781">2781</a> 
<a class="jxr_linenumber" name="2782" href="#2782">2782</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2783" href="#2783">2783</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="2784" href="#2784">2784</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2785" href="#2785">2785</a> 
<a class="jxr_linenumber" name="2786" href="#2786">2786</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2787" href="#2787">2787</a>         }
<a class="jxr_linenumber" name="2788" href="#2788">2788</a> 
<a class="jxr_linenumber" name="2789" href="#2789">2789</a>         f = createResult(FAILURE, <span class="jxr_string">"Property ids don't match!"</span>);
<a class="jxr_linenumber" name="2790" href="#2790">2790</a>         addResult(results, assertEquals(expected.getId(), actual.getId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2791" href="#2791">2791</a> 
<a class="jxr_linenumber" name="2792" href="#2792">2792</a>         f = createResult(FAILURE, <span class="jxr_string">"Local names don't match!"</span>);
<a class="jxr_linenumber" name="2793" href="#2793">2793</a>         addResult(results, assertEquals(expected.getLocalName(), actual.getLocalName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2794" href="#2794">2794</a> 
<a class="jxr_linenumber" name="2795" href="#2795">2795</a>         f = createResult(FAILURE, <span class="jxr_string">"Local namespaces don't match!"</span>);
<a class="jxr_linenumber" name="2796" href="#2796">2796</a>         addResult(results, assertEquals(expected.getLocalNamespace(), actual.getLocalNamespace(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2797" href="#2797">2797</a> 
<a class="jxr_linenumber" name="2798" href="#2798">2798</a>         f = createResult(FAILURE, <span class="jxr_string">"Display names don't match!"</span>);
<a class="jxr_linenumber" name="2799" href="#2799">2799</a>         addResult(results, assertEquals(expected.getDisplayName(), actual.getDisplayName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2800" href="#2800">2800</a> 
<a class="jxr_linenumber" name="2801" href="#2801">2801</a>         f = createResult(FAILURE, <span class="jxr_string">"Query names don't match!"</span>);
<a class="jxr_linenumber" name="2802" href="#2802">2802</a>         addResult(results, assertEquals(expected.getQueryName(), actual.getQueryName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2803" href="#2803">2803</a> 
<a class="jxr_linenumber" name="2804" href="#2804">2804</a>         f = createResult(FAILURE, <span class="jxr_string">"Property types don't match!"</span>);
<a class="jxr_linenumber" name="2805" href="#2805">2805</a>         addResult(results, assertEquals(expected.getPropertyType(), actual.getPropertyType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2806" href="#2806">2806</a> 
<a class="jxr_linenumber" name="2807" href="#2807">2807</a>         f = createResult(FAILURE, <span class="jxr_string">"Cardinalities don't match!"</span>);
<a class="jxr_linenumber" name="2808" href="#2808">2808</a>         addResult(results, assertEquals(expected.getCardinality(), actual.getCardinality(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2809" href="#2809">2809</a> 
<a class="jxr_linenumber" name="2810" href="#2810">2810</a>         f = createResult(FAILURE, <span class="jxr_string">"Descriptions don't match!"</span>);
<a class="jxr_linenumber" name="2811" href="#2811">2811</a>         addResult(results, assertEquals(expected.getDescription(), actual.getDescription(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2812" href="#2812">2812</a> 
<a class="jxr_linenumber" name="2813" href="#2813">2813</a>         f = createResult(FAILURE, <span class="jxr_string">"Updatability flags don't match!"</span>);
<a class="jxr_linenumber" name="2814" href="#2814">2814</a>         addResult(results, assertEquals(expected.getUpdatability(), actual.getUpdatability(), <strong class="jxr_keyword">null</strong>, f));
<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">"Default values don't match!"</span>);
<a class="jxr_linenumber" name="2817" href="#2817">2817</a>         addResult(results, assertEqualLists(expected.getDefaultValue(), actual.getDefaultValue(), <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">"Inherited flags don't match!"</span>);
<a class="jxr_linenumber" name="2820" href="#2820">2820</a>         addResult(results, assertEquals(expected.isInherited(), actual.isInherited(), <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">"Required flags don't match!"</span>);
<a class="jxr_linenumber" name="2823" href="#2823">2823</a>         addResult(results, assertEquals(expected.isRequired(), actual.isRequired(), <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">"Queryable flags don't match!"</span>);
<a class="jxr_linenumber" name="2826" href="#2826">2826</a>         addResult(results, assertEquals(expected.isQueryable(), actual.isQueryable(), <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">"Orderable flags don't match!"</span>);
<a class="jxr_linenumber" name="2829" href="#2829">2829</a>         addResult(results, assertEquals(expected.isOrderable(), actual.isOrderable(), <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">"Open choice flags don't match!"</span>);
<a class="jxr_linenumber" name="2832" href="#2832">2832</a>         addResult(results, assertEquals(expected.isOpenChoice(), actual.isOpenChoice(), <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>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2835" href="#2835">2835</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2836" href="#2836">2836</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2837" href="#2837">2837</a>             }
<a class="jxr_linenumber" name="2838" href="#2838">2838</a> 
<a class="jxr_linenumber" name="2839" href="#2839">2839</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2840" href="#2840">2840</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2841" href="#2841">2841</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2842" href="#2842">2842</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2843" href="#2843">2843</a>             }
<a class="jxr_linenumber" name="2844" href="#2844">2844</a> 
<a class="jxr_linenumber" name="2845" href="#2845">2845</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2846" href="#2846">2846</a>         }
<a class="jxr_linenumber" name="2847" href="#2847">2847</a>     }
<a class="jxr_linenumber" name="2848" href="#2848">2848</a> 
<a class="jxr_linenumber" name="2849" href="#2849">2849</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="2850" href="#2850">2850</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="2851" href="#2851">2851</a> 
<a class="jxr_linenumber" name="2852" href="#2852">2852</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2853" href="#2853">2853</a> 
<a class="jxr_linenumber" name="2854" href="#2854">2854</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2855" href="#2855">2855</a> 
<a class="jxr_linenumber" name="2856" href="#2856">2856</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="2857" href="#2857">2857</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2858" href="#2858">2858</a>         }
<a class="jxr_linenumber" name="2859" href="#2859">2859</a> 
<a class="jxr_linenumber" name="2860" href="#2860">2860</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2861" href="#2861">2861</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected object is null, but actual object is not!"</span>);
<a class="jxr_linenumber" name="2862" href="#2862">2862</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2863" href="#2863">2863</a> 
<a class="jxr_linenumber" name="2864" href="#2864">2864</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2865" href="#2865">2865</a>         }
<a class="jxr_linenumber" name="2866" href="#2866">2866</a> 
<a class="jxr_linenumber" name="2867" href="#2867">2867</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2868" href="#2868">2868</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="2869" href="#2869">2869</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2870" href="#2870">2870</a> 
<a class="jxr_linenumber" name="2871" href="#2871">2871</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2872" href="#2872">2872</a>         }
<a class="jxr_linenumber" name="2873" href="#2873">2873</a> 
<a class="jxr_linenumber" name="2874" href="#2874">2874</a>         <strong class="jxr_keyword">if</strong> (expected.getProperties().size() != actual.getProperties().size()) {
<a class="jxr_linenumber" name="2875" href="#2875">2875</a>             f = createResult(FAILURE, <span class="jxr_string">"Number of properties don't match"</span>);
<a class="jxr_linenumber" name="2876" href="#2876">2876</a>             addResult(results, assertEquals(expected.getProperties().size(), actual.getProperties().size(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2877" href="#2877">2877</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2878" href="#2878">2878</a>             <strong class="jxr_keyword">for</strong> (Property&lt;?&gt; expectedProperty : expected.getProperties()) {
<a class="jxr_linenumber" name="2879" href="#2879">2879</a>                 Property&lt;?&gt; actualProperty = actual.getProperty(expectedProperty.getId());
<a class="jxr_linenumber" name="2880" href="#2880">2880</a> 
<a class="jxr_linenumber" name="2881" href="#2881">2881</a>                 f = createResult(FAILURE, <span class="jxr_string">"Properties don't match! Property: "</span> + expectedProperty.getId());
<a class="jxr_linenumber" name="2882" href="#2882">2882</a>                 addResult(results, assertEquals(expectedProperty, actualProperty, <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> 
<a class="jxr_linenumber" name="2886" href="#2886">2886</a>         f = createResult(FAILURE, <span class="jxr_string">"Allowable actions don't match!"</span>);
<a class="jxr_linenumber" name="2887" href="#2887">2887</a>         addResult(results, assertEquals(expected.getAllowableActions(), actual.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2888" href="#2888">2888</a> 
<a class="jxr_linenumber" name="2889" href="#2889">2889</a>         <strong class="jxr_keyword">if</strong> (checkAcls) {
<a class="jxr_linenumber" name="2890" href="#2890">2890</a>             f = createResult(FAILURE, <span class="jxr_string">"ACLs don't match!"</span>);
<a class="jxr_linenumber" name="2891" href="#2891">2891</a>             addResult(results, assertEquals(expected.getAcl(), actual.getAcl(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2892" href="#2892">2892</a>         }
<a class="jxr_linenumber" name="2893" href="#2893">2893</a> 
<a class="jxr_linenumber" name="2894" href="#2894">2894</a>         <strong class="jxr_keyword">if</strong> (checkPolicies) {
<a class="jxr_linenumber" name="2895" href="#2895">2895</a>             f = createResult(FAILURE, <span class="jxr_string">"Policies don't match!"</span>);
<a class="jxr_linenumber" name="2896" href="#2896">2896</a>             addResult(results, assertEqualObjectList(expected.getPolicies(), actual.getPolicies(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2897" href="#2897">2897</a>         }
<a class="jxr_linenumber" name="2898" href="#2898">2898</a> 
<a class="jxr_linenumber" name="2899" href="#2899">2899</a>         f = createResult(FAILURE, <span class="jxr_string">"Relationships don't match!"</span>);
<a class="jxr_linenumber" name="2900" href="#2900">2900</a>         addResult(results, assertEqualObjectList(expected.getRelationships(), actual.getRelationships(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2901" href="#2901">2901</a> 
<a class="jxr_linenumber" name="2902" href="#2902">2902</a>         f = createResult(FAILURE, <span class="jxr_string">"Renditions don't match!"</span>);
<a class="jxr_linenumber" name="2903" href="#2903">2903</a>         addResult(results, assertEqualRenditionLists(expected.getRenditions(), actual.getRenditions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="2904" href="#2904">2904</a> 
<a class="jxr_linenumber" name="2905" href="#2905">2905</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2906" href="#2906">2906</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2907" href="#2907">2907</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2908" href="#2908">2908</a>             }
<a class="jxr_linenumber" name="2909" href="#2909">2909</a> 
<a class="jxr_linenumber" name="2910" href="#2910">2910</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2911" href="#2911">2911</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2912" href="#2912">2912</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2913" href="#2913">2913</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2914" href="#2914">2914</a>             }
<a class="jxr_linenumber" name="2915" href="#2915">2915</a> 
<a class="jxr_linenumber" name="2916" href="#2916">2916</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2917" href="#2917">2917</a>         }
<a class="jxr_linenumber" name="2918" href="#2918">2918</a>     }
<a class="jxr_linenumber" name="2919" href="#2919">2919</a> 
<a class="jxr_linenumber" name="2920" href="#2920">2920</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="2921" href="#2921">2921</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="2922" href="#2922">2922</a> 
<a class="jxr_linenumber" name="2923" href="#2923">2923</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2924" href="#2924">2924</a> 
<a class="jxr_linenumber" name="2925" href="#2925">2925</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2926" href="#2926">2926</a> 
<a class="jxr_linenumber" name="2927" href="#2927">2927</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="2928" href="#2928">2928</a>             <strong class="jxr_keyword">return</strong> success;
<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> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2932" href="#2932">2932</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="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>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2939" href="#2939">2939</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="2940" href="#2940">2940</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2941" href="#2941">2941</a> 
<a class="jxr_linenumber" name="2942" href="#2942">2942</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2943" href="#2943">2943</a>         }
<a class="jxr_linenumber" name="2944" href="#2944">2944</a> 
<a class="jxr_linenumber" name="2945" href="#2945">2945</a>         <strong class="jxr_keyword">if</strong> (expected.size() != actual.size()) {
<a class="jxr_linenumber" name="2946" href="#2946">2946</a>             addResult(
<a class="jxr_linenumber" name="2947" href="#2947">2947</a>                     results,
<a class="jxr_linenumber" name="2948" href="#2948">2948</a>                     createResult(
<a class="jxr_linenumber" name="2949" href="#2949">2949</a>                             CmisTestResultStatus.INFO,
<a class="jxr_linenumber" name="2950" href="#2950">2950</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="2951" href="#2951">2951</a>                                     + actual.size()));
<a class="jxr_linenumber" name="2952" href="#2952">2952</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2953" href="#2953">2953</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="2954" href="#2954">2954</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="2955" href="#2955">2955</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="2956" href="#2956">2956</a>             }
<a class="jxr_linenumber" name="2957" href="#2957">2957</a>         }
<a class="jxr_linenumber" name="2958" href="#2958">2958</a> 
<a class="jxr_linenumber" name="2959" href="#2959">2959</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="2960" href="#2960">2960</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2961" href="#2961">2961</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="2962" href="#2962">2962</a>             }
<a class="jxr_linenumber" name="2963" href="#2963">2963</a> 
<a class="jxr_linenumber" name="2964" href="#2964">2964</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2965" href="#2965">2965</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2966" href="#2966">2966</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="2967" href="#2967">2967</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="2968" href="#2968">2968</a>             }
<a class="jxr_linenumber" name="2969" href="#2969">2969</a> 
<a class="jxr_linenumber" name="2970" href="#2970">2970</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2971" href="#2971">2971</a>         }
<a class="jxr_linenumber" name="2972" href="#2972">2972</a>     }
<a class="jxr_linenumber" name="2973" href="#2973">2973</a> 
<a class="jxr_linenumber" name="2974" href="#2974">2974</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="2975" href="#2975">2975</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="2976" href="#2976">2976</a> 
<a class="jxr_linenumber" name="2977" href="#2977">2977</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="2978" href="#2978">2978</a> 
<a class="jxr_linenumber" name="2979" href="#2979">2979</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="2980" href="#2980">2980</a> 
<a class="jxr_linenumber" name="2981" href="#2981">2981</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="2982" href="#2982">2982</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="2983" href="#2983">2983</a>         }
<a class="jxr_linenumber" name="2984" href="#2984">2984</a> 
<a class="jxr_linenumber" name="2985" href="#2985">2985</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2986" href="#2986">2986</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected property is null, but actual property is not!"</span>);
<a class="jxr_linenumber" name="2987" href="#2987">2987</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2988" href="#2988">2988</a> 
<a class="jxr_linenumber" name="2989" href="#2989">2989</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2990" href="#2990">2990</a>         }
<a class="jxr_linenumber" name="2991" href="#2991">2991</a> 
<a class="jxr_linenumber" name="2992" href="#2992">2992</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2993" href="#2993">2993</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual property is null, but expected property is not!"</span>);
<a class="jxr_linenumber" name="2994" href="#2994">2994</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="2995" href="#2995">2995</a> 
<a class="jxr_linenumber" name="2996" href="#2996">2996</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="2997" href="#2997">2997</a>         }
<a class="jxr_linenumber" name="2998" href="#2998">2998</a> 
<a class="jxr_linenumber" name="2999" href="#2999">2999</a>         f = createResult(FAILURE, <span class="jxr_string">"Property definitions don't match!"</span>);
<a class="jxr_linenumber" name="3000" href="#3000">3000</a>         addResult(results, assertEquals(expected.getDefinition(), actual.getDefinition(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3001" href="#3001">3001</a> 
<a class="jxr_linenumber" name="3002" href="#3002">3002</a>         f = createResult(FAILURE, <span class="jxr_string">"Property values don't match!"</span>);
<a class="jxr_linenumber" name="3003" href="#3003">3003</a>         addResult(results, assertEqualLists(expected.getValues(), actual.getValues(), <strong class="jxr_keyword">null</strong>, 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> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3006" href="#3006">3006</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3007" href="#3007">3007</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3008" href="#3008">3008</a>             }
<a class="jxr_linenumber" name="3009" href="#3009">3009</a> 
<a class="jxr_linenumber" name="3010" href="#3010">3010</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3011" href="#3011">3011</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3012" href="#3012">3012</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3013" href="#3013">3013</a>                 addResultChild(failure, result);
<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">return</strong> failure;
<a class="jxr_linenumber" name="3017" href="#3017">3017</a>         }
<a class="jxr_linenumber" name="3018" href="#3018">3018</a>     }
<a class="jxr_linenumber" name="3019" href="#3019">3019</a> 
<a class="jxr_linenumber" name="3020" href="#3020">3020</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="3021" href="#3021">3021</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3022" href="#3022">3022</a> 
<a class="jxr_linenumber" name="3023" href="#3023">3023</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3024" href="#3024">3024</a> 
<a class="jxr_linenumber" name="3025" href="#3025">3025</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3026" href="#3026">3026</a> 
<a class="jxr_linenumber" name="3027" href="#3027">3027</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="3028" href="#3028">3028</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3029" href="#3029">3029</a>         }
<a class="jxr_linenumber" name="3030" href="#3030">3030</a> 
<a class="jxr_linenumber" name="3031" href="#3031">3031</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3032" href="#3032">3032</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="3033" href="#3033">3033</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3034" href="#3034">3034</a> 
<a class="jxr_linenumber" name="3035" href="#3035">3035</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3036" href="#3036">3036</a>         }
<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> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3039" href="#3039">3039</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="3040" href="#3040">3040</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3041" href="#3041">3041</a> 
<a class="jxr_linenumber" name="3042" href="#3042">3042</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3043" href="#3043">3043</a>         }
<a class="jxr_linenumber" name="3044" href="#3044">3044</a> 
<a class="jxr_linenumber" name="3045" href="#3045">3045</a>         f = createResult(FAILURE, <span class="jxr_string">"Allowable action sets don't match!"</span>);
<a class="jxr_linenumber" name="3046" href="#3046">3046</a>         addResult(results, assertEqualSet(expected.getAllowableActions(), actual.getAllowableActions(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3047" href="#3047">3047</a> 
<a class="jxr_linenumber" name="3048" href="#3048">3048</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3049" href="#3049">3049</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3050" href="#3050">3050</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3051" href="#3051">3051</a>             }
<a class="jxr_linenumber" name="3052" href="#3052">3052</a> 
<a class="jxr_linenumber" name="3053" href="#3053">3053</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3054" href="#3054">3054</a>         } <strong class="jxr_keyword">else</strong> {
<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(failure, 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> failure;
<a class="jxr_linenumber" name="3060" href="#3060">3060</a>         }
<a class="jxr_linenumber" name="3061" href="#3061">3061</a>     }
<a class="jxr_linenumber" name="3062" href="#3062">3062</a> 
<a class="jxr_linenumber" name="3063" href="#3063">3063</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="3064" href="#3064">3064</a> 
<a class="jxr_linenumber" name="3065" href="#3065">3065</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3066" href="#3066">3066</a> 
<a class="jxr_linenumber" name="3067" href="#3067">3067</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3068" href="#3068">3068</a> 
<a class="jxr_linenumber" name="3069" href="#3069">3069</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="3070" href="#3070">3070</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3071" href="#3071">3071</a>         }
<a class="jxr_linenumber" name="3072" href="#3072">3072</a> 
<a class="jxr_linenumber" name="3073" href="#3073">3073</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3074" href="#3074">3074</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected ACL is null, but actual ACL is not!"</span>);
<a class="jxr_linenumber" name="3075" href="#3075">3075</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3076" href="#3076">3076</a> 
<a class="jxr_linenumber" name="3077" href="#3077">3077</a>             <strong class="jxr_keyword">return</strong> failure;
<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> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3081" href="#3081">3081</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual ACL is null, but expected ACL 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>         f = createResult(FAILURE, <span class="jxr_string">"ACEs don't match!"</span>);
<a class="jxr_linenumber" name="3088" href="#3088">3088</a>         addResult(results, assertEqualAceLists(expected.getAces(), actual.getAces(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3089" href="#3089">3089</a> 
<a class="jxr_linenumber" name="3090" href="#3090">3090</a>         f = createResult(FAILURE, <span class="jxr_string">"Exact flags dont't match!"</span>);
<a class="jxr_linenumber" name="3091" href="#3091">3091</a>         addResult(results, assertEquals(expected.isExact(), actual.isExact(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3092" href="#3092">3092</a> 
<a class="jxr_linenumber" name="3093" href="#3093">3093</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3094" href="#3094">3094</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3095" href="#3095">3095</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3096" href="#3096">3096</a>             }
<a class="jxr_linenumber" name="3097" href="#3097">3097</a> 
<a class="jxr_linenumber" name="3098" href="#3098">3098</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3099" href="#3099">3099</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3100" href="#3100">3100</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3101" href="#3101">3101</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3102" href="#3102">3102</a>             }
<a class="jxr_linenumber" name="3103" href="#3103">3103</a> 
<a class="jxr_linenumber" name="3104" href="#3104">3104</a>             <strong class="jxr_keyword">return</strong> failure;
<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">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="3109" href="#3109">3109</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3110" href="#3110">3110</a> 
<a class="jxr_linenumber" name="3111" href="#3111">3111</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3112" href="#3112">3112</a> 
<a class="jxr_linenumber" name="3113" href="#3113">3113</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3114" href="#3114">3114</a> 
<a class="jxr_linenumber" name="3115" href="#3115">3115</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="3116" href="#3116">3116</a>             <strong class="jxr_keyword">return</strong> success;
<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">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3120" href="#3120">3120</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="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">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3124" href="#3124">3124</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="3125" href="#3125">3125</a>         }
<a class="jxr_linenumber" name="3126" href="#3126">3126</a> 
<a class="jxr_linenumber" name="3127" href="#3127">3127</a>         <strong class="jxr_keyword">if</strong> (expected.size() != actual.size()) {
<a class="jxr_linenumber" name="3128" href="#3128">3128</a>             addResult(
<a class="jxr_linenumber" name="3129" href="#3129">3129</a>                     results,
<a class="jxr_linenumber" name="3130" href="#3130">3130</a>                     createResult(CmisTestResultStatus.INFO, <span class="jxr_string">"ACE list sizes don't match! expected: "</span> + expected.size()
<a class="jxr_linenumber" name="3131" href="#3131">3131</a>                             + <span class="jxr_string">" / actual: "</span> + actual.size()));
<a class="jxr_linenumber" name="3132" href="#3132">3132</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3133" href="#3133">3133</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="3134" href="#3134">3134</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="3135" href="#3135">3135</a>                 addResult(results, assertEquals(expected.get(i), actual.get(i), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3136" href="#3136">3136</a>             }
<a class="jxr_linenumber" name="3137" href="#3137">3137</a>         }
<a class="jxr_linenumber" name="3138" href="#3138">3138</a> 
<a class="jxr_linenumber" name="3139" href="#3139">3139</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3140" href="#3140">3140</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3141" href="#3141">3141</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3142" href="#3142">3142</a>             }
<a class="jxr_linenumber" name="3143" href="#3143">3143</a> 
<a class="jxr_linenumber" name="3144" href="#3144">3144</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3145" href="#3145">3145</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3146" href="#3146">3146</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3147" href="#3147">3147</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3148" href="#3148">3148</a>             }
<a class="jxr_linenumber" name="3149" href="#3149">3149</a> 
<a class="jxr_linenumber" name="3150" href="#3150">3150</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3151" href="#3151">3151</a>         }
<a class="jxr_linenumber" name="3152" href="#3152">3152</a>     }
<a class="jxr_linenumber" name="3153" href="#3153">3153</a> 
<a class="jxr_linenumber" name="3154" href="#3154">3154</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="3155" href="#3155">3155</a> 
<a class="jxr_linenumber" name="3156" href="#3156">3156</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3157" href="#3157">3157</a> 
<a class="jxr_linenumber" name="3158" href="#3158">3158</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3159" href="#3159">3159</a> 
<a class="jxr_linenumber" name="3160" href="#3160">3160</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="3161" href="#3161">3161</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3162" href="#3162">3162</a>         }
<a class="jxr_linenumber" name="3163" href="#3163">3163</a> 
<a class="jxr_linenumber" name="3164" href="#3164">3164</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3165" href="#3165">3165</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected ACE is null, but actual ACE is not!"</span>);
<a class="jxr_linenumber" name="3166" href="#3166">3166</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3167" href="#3167">3167</a> 
<a class="jxr_linenumber" name="3168" href="#3168">3168</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3169" href="#3169">3169</a>         }
<a class="jxr_linenumber" name="3170" href="#3170">3170</a> 
<a class="jxr_linenumber" name="3171" href="#3171">3171</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3172" href="#3172">3172</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual ACE is null, but expected ACE is not!"</span>);
<a class="jxr_linenumber" name="3173" href="#3173">3173</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3174" href="#3174">3174</a> 
<a class="jxr_linenumber" name="3175" href="#3175">3175</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3176" href="#3176">3176</a>         }
<a class="jxr_linenumber" name="3177" href="#3177">3177</a> 
<a class="jxr_linenumber" name="3178" href="#3178">3178</a>         f = createResult(FAILURE, <span class="jxr_string">"Principal ids dont't match!"</span>);
<a class="jxr_linenumber" name="3179" href="#3179">3179</a>         addResult(results, assertEquals(expected.getPrincipalId(), actual.getPrincipalId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3180" href="#3180">3180</a> 
<a class="jxr_linenumber" name="3181" href="#3181">3181</a>         f = createResult(FAILURE, <span class="jxr_string">"Permissions dont't match!"</span>);
<a class="jxr_linenumber" name="3182" href="#3182">3182</a>         addResult(results, assertEqualLists(expected.getPermissions(), actual.getPermissions(), <strong class="jxr_keyword">null</strong>, 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">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3185" href="#3185">3185</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3186" href="#3186">3186</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3187" href="#3187">3187</a>             }
<a class="jxr_linenumber" name="3188" href="#3188">3188</a> 
<a class="jxr_linenumber" name="3189" href="#3189">3189</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3190" href="#3190">3190</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3191" href="#3191">3191</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3192" href="#3192">3192</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3193" href="#3193">3193</a>             }
<a class="jxr_linenumber" name="3194" href="#3194">3194</a> 
<a class="jxr_linenumber" name="3195" href="#3195">3195</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3196" href="#3196">3196</a>         }
<a class="jxr_linenumber" name="3197" href="#3197">3197</a>     }
<a class="jxr_linenumber" name="3198" href="#3198">3198</a> 
<a class="jxr_linenumber" name="3199" href="#3199">3199</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="3200" href="#3200">3200</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="3201" href="#3201">3201</a> 
<a class="jxr_linenumber" name="3202" href="#3202">3202</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3203" href="#3203">3203</a> 
<a class="jxr_linenumber" name="3204" href="#3204">3204</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3205" href="#3205">3205</a> 
<a class="jxr_linenumber" name="3206" href="#3206">3206</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="3207" href="#3207">3207</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3208" href="#3208">3208</a>         }
<a class="jxr_linenumber" name="3209" href="#3209">3209</a> 
<a class="jxr_linenumber" name="3210" href="#3210">3210</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3211" href="#3211">3211</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="3212" href="#3212">3212</a>         }
<a class="jxr_linenumber" name="3213" href="#3213">3213</a> 
<a class="jxr_linenumber" name="3214" href="#3214">3214</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3215" href="#3215">3215</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="3216" href="#3216">3216</a>         }
<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.size() != actual.size()) {
<a class="jxr_linenumber" name="3219" href="#3219">3219</a>             addResult(
<a class="jxr_linenumber" name="3220" href="#3220">3220</a>                     results,
<a class="jxr_linenumber" name="3221" href="#3221">3221</a>                     createResult(
<a class="jxr_linenumber" name="3222" href="#3222">3222</a>                             CmisTestResultStatus.INFO,
<a class="jxr_linenumber" name="3223" href="#3223">3223</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="3224" href="#3224">3224</a>                                     + actual.size()));
<a class="jxr_linenumber" name="3225" href="#3225">3225</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3226" href="#3226">3226</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="3227" href="#3227">3227</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="3228" href="#3228">3228</a>                 addResult(results, assertEquals(expected.get(i), actual.get(i), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3229" href="#3229">3229</a>             }
<a class="jxr_linenumber" name="3230" href="#3230">3230</a>         }
<a class="jxr_linenumber" name="3231" href="#3231">3231</a> 
<a class="jxr_linenumber" name="3232" href="#3232">3232</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3233" href="#3233">3233</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3234" href="#3234">3234</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3235" href="#3235">3235</a>             }
<a class="jxr_linenumber" name="3236" href="#3236">3236</a> 
<a class="jxr_linenumber" name="3237" href="#3237">3237</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3238" href="#3238">3238</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3239" href="#3239">3239</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3240" href="#3240">3240</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3241" href="#3241">3241</a>             }
<a class="jxr_linenumber" name="3242" href="#3242">3242</a> 
<a class="jxr_linenumber" name="3243" href="#3243">3243</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3244" href="#3244">3244</a>         }
<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">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="3248" href="#3248">3248</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3249" href="#3249">3249</a> 
<a class="jxr_linenumber" name="3250" href="#3250">3250</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3251" href="#3251">3251</a> 
<a class="jxr_linenumber" name="3252" href="#3252">3252</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3253" href="#3253">3253</a> 
<a class="jxr_linenumber" name="3254" href="#3254">3254</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="3255" href="#3255">3255</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3256" href="#3256">3256</a>         }
<a class="jxr_linenumber" name="3257" href="#3257">3257</a> 
<a class="jxr_linenumber" name="3258" href="#3258">3258</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3259" href="#3259">3259</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected rendition is null, but actual rendition is not!"</span>);
<a class="jxr_linenumber" name="3260" href="#3260">3260</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3261" href="#3261">3261</a> 
<a class="jxr_linenumber" name="3262" href="#3262">3262</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3263" href="#3263">3263</a>         }
<a class="jxr_linenumber" name="3264" href="#3264">3264</a> 
<a class="jxr_linenumber" name="3265" href="#3265">3265</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3266" href="#3266">3266</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual rendition is null, but expected rendition is not!"</span>);
<a class="jxr_linenumber" name="3267" href="#3267">3267</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3268" href="#3268">3268</a> 
<a class="jxr_linenumber" name="3269" href="#3269">3269</a>             <strong class="jxr_keyword">return</strong> failure;
<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>         f = createResult(FAILURE, <span class="jxr_string">"Stream ids dont't match!"</span>);
<a class="jxr_linenumber" name="3273" href="#3273">3273</a>         addResult(results, assertEquals(expected.getStreamId(), actual.getStreamId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3274" href="#3274">3274</a> 
<a class="jxr_linenumber" name="3275" href="#3275">3275</a>         f = createResult(FAILURE, <span class="jxr_string">"Kinds dont't match!"</span>);
<a class="jxr_linenumber" name="3276" href="#3276">3276</a>         addResult(results, assertEquals(expected.getKind(), actual.getKind(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3277" href="#3277">3277</a> 
<a class="jxr_linenumber" name="3278" href="#3278">3278</a>         f = createResult(FAILURE, <span class="jxr_string">"MIME types dont't match!"</span>);
<a class="jxr_linenumber" name="3279" href="#3279">3279</a>         addResult(results, assertEquals(expected.getMimeType(), actual.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3280" href="#3280">3280</a> 
<a class="jxr_linenumber" name="3281" href="#3281">3281</a>         f = createResult(FAILURE, <span class="jxr_string">"Titles dont't match!"</span>);
<a class="jxr_linenumber" name="3282" href="#3282">3282</a>         addResult(results, assertEquals(expected.getTitle(), actual.getTitle(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3283" href="#3283">3283</a> 
<a class="jxr_linenumber" name="3284" href="#3284">3284</a>         f = createResult(FAILURE, <span class="jxr_string">"Lengths dont't match!"</span>);
<a class="jxr_linenumber" name="3285" href="#3285">3285</a>         addResult(results, assertEquals(expected.getLength(), actual.getLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3286" href="#3286">3286</a> 
<a class="jxr_linenumber" name="3287" href="#3287">3287</a>         f = createResult(FAILURE, <span class="jxr_string">"Heights dont't match!"</span>);
<a class="jxr_linenumber" name="3288" href="#3288">3288</a>         addResult(results, assertEquals(expected.getBigHeight(), actual.getBigHeight(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3289" href="#3289">3289</a> 
<a class="jxr_linenumber" name="3290" href="#3290">3290</a>         f = createResult(FAILURE, <span class="jxr_string">"Widths dont't match!"</span>);
<a class="jxr_linenumber" name="3291" href="#3291">3291</a>         addResult(results, assertEquals(expected.getBigWidth(), actual.getBigWidth(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3292" href="#3292">3292</a> 
<a class="jxr_linenumber" name="3293" href="#3293">3293</a>         f = createResult(FAILURE, <span class="jxr_string">"Rendition document ids dont't match!"</span>);
<a class="jxr_linenumber" name="3294" href="#3294">3294</a>         addResult(results, assertEquals(expected.getRenditionDocumentId(), actual.getRenditionDocumentId(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3295" href="#3295">3295</a> 
<a class="jxr_linenumber" name="3296" href="#3296">3296</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3297" href="#3297">3297</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3298" href="#3298">3298</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3299" href="#3299">3299</a>             }
<a class="jxr_linenumber" name="3300" href="#3300">3300</a> 
<a class="jxr_linenumber" name="3301" href="#3301">3301</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3302" href="#3302">3302</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3303" href="#3303">3303</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3304" href="#3304">3304</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3305" href="#3305">3305</a>             }
<a class="jxr_linenumber" name="3306" href="#3306">3306</a> 
<a class="jxr_linenumber" name="3307" href="#3307">3307</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3308" href="#3308">3308</a>         }
<a class="jxr_linenumber" name="3309" href="#3309">3309</a>     }
<a class="jxr_linenumber" name="3310" href="#3310">3310</a> 
<a class="jxr_linenumber" name="3311" href="#3311">3311</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="3312" href="#3312">3312</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> failure) {
<a class="jxr_linenumber" name="3313" href="#3313">3313</a> 
<a class="jxr_linenumber" name="3314" href="#3314">3314</a>         List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3315" href="#3315">3315</a> 
<a class="jxr_linenumber" name="3316" href="#3316">3316</a>         <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3317" href="#3317">3317</a> 
<a class="jxr_linenumber" name="3318" href="#3318">3318</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="3319" href="#3319">3319</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3320" href="#3320">3320</a>         }
<a class="jxr_linenumber" name="3321" href="#3321">3321</a> 
<a class="jxr_linenumber" name="3322" href="#3322">3322</a>         <strong class="jxr_keyword">if</strong> (expected == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3323" href="#3323">3323</a>             f = createResult(FAILURE, <span class="jxr_string">"Expected stream is null, but actual stream is not!"</span>);
<a class="jxr_linenumber" name="3324" href="#3324">3324</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3325" href="#3325">3325</a> 
<a class="jxr_linenumber" name="3326" href="#3326">3326</a>             IOUtils.closeQuietly(actual);
<a class="jxr_linenumber" name="3327" href="#3327">3327</a> 
<a class="jxr_linenumber" name="3328" href="#3328">3328</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3329" href="#3329">3329</a>         }
<a class="jxr_linenumber" name="3330" href="#3330">3330</a> 
<a class="jxr_linenumber" name="3331" href="#3331">3331</a>         <strong class="jxr_keyword">if</strong> (actual == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3332" href="#3332">3332</a>             f = createResult(FAILURE, <span class="jxr_string">"Actual object is null, but expected object is not!"</span>);
<a class="jxr_linenumber" name="3333" href="#3333">3333</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3334" href="#3334">3334</a> 
<a class="jxr_linenumber" name="3335" href="#3335">3335</a>             IOUtils.closeQuietly(expected);
<a class="jxr_linenumber" name="3336" href="#3336">3336</a> 
<a class="jxr_linenumber" name="3337" href="#3337">3337</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3338" href="#3338">3338</a>         }
<a class="jxr_linenumber" name="3339" href="#3339">3339</a> 
<a class="jxr_linenumber" name="3340" href="#3340">3340</a>         f = createResult(WARNING, <span class="jxr_string">"Filenames don't match!"</span>);
<a class="jxr_linenumber" name="3341" href="#3341">3341</a>         addResult(results, assertEquals(expected.getFileName(), actual.getFileName(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3342" href="#3342">3342</a> 
<a class="jxr_linenumber" name="3343" href="#3343">3343</a>         f = createResult(FAILURE, <span class="jxr_string">"MIME types don't match!"</span>);
<a class="jxr_linenumber" name="3344" href="#3344">3344</a>         addResult(results, assertEquals(expected.getMimeType(), actual.getMimeType(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3345" href="#3345">3345</a> 
<a class="jxr_linenumber" name="3346" href="#3346">3346</a>         f = createResult(WARNING, <span class="jxr_string">"Lengths don't match!"</span>);
<a class="jxr_linenumber" name="3347" href="#3347">3347</a>         addResult(results, assertEquals(expected.getBigLength(), actual.getBigLength(), <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="3348" href="#3348">3348</a> 
<a class="jxr_linenumber" name="3349" href="#3349">3349</a>         <strong class="jxr_keyword">boolean</strong> match = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="3350" href="#3350">3350</a> 
<a class="jxr_linenumber" name="3351" href="#3351">3351</a>         BufferedInputStream as = <strong class="jxr_keyword">new</strong> BufferedInputStream(actual.getStream(), 64 * 1024);
<a class="jxr_linenumber" name="3352" href="#3352">3352</a>         BufferedInputStream es = <strong class="jxr_keyword">new</strong> BufferedInputStream(expected.getStream(), 64 * 1024);
<a class="jxr_linenumber" name="3353" href="#3353">3353</a> 
<a class="jxr_linenumber" name="3354" href="#3354">3354</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="3355" href="#3355">3355</a>             <strong class="jxr_keyword">int</strong> ab = 0;
<a class="jxr_linenumber" name="3356" href="#3356">3356</a>             <strong class="jxr_keyword">int</strong> eb = 0;
<a class="jxr_linenumber" name="3357" href="#3357">3357</a> 
<a class="jxr_linenumber" name="3358" href="#3358">3358</a>             <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a class="jxr_linenumber" name="3359" href="#3359">3359</a>                 <strong class="jxr_keyword">if</strong> (ab &gt; -1) {
<a class="jxr_linenumber" name="3360" href="#3360">3360</a>                     ab = as.read();
<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> (eb &gt; -1) {
<a class="jxr_linenumber" name="3364" href="#3364">3364</a>                     eb = es.read();
<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> (ab == -1 &amp;&amp; eb == -1) {
<a class="jxr_linenumber" name="3368" href="#3368">3368</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="3369" href="#3369">3369</a>                 }
<a class="jxr_linenumber" name="3370" href="#3370">3370</a> 
<a class="jxr_linenumber" name="3371" href="#3371">3371</a>                 <strong class="jxr_keyword">if</strong> (ab != eb) {
<a class="jxr_linenumber" name="3372" href="#3372">3372</a>                     match = false;
<a class="jxr_linenumber" name="3373" href="#3373">3373</a>                 }
<a class="jxr_linenumber" name="3374" href="#3374">3374</a>             }
<a class="jxr_linenumber" name="3375" href="#3375">3375</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="3376" href="#3376">3376</a>             f = createResult(UNEXPECTED_EXCEPTION, e.getMessage(), e, false);
<a class="jxr_linenumber" name="3377" href="#3377">3377</a>             addResultChild(failure, 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>         <strong class="jxr_keyword">if</strong> (!match) {
<a class="jxr_linenumber" name="3381" href="#3381">3381</a>             f = createResult(FAILURE, <span class="jxr_string">"Content streams don't match!"</span>);
<a class="jxr_linenumber" name="3382" href="#3382">3382</a>             addResultChild(failure, f);
<a class="jxr_linenumber" name="3383" href="#3383">3383</a>         }
<a class="jxr_linenumber" name="3384" href="#3384">3384</a> 
<a class="jxr_linenumber" name="3385" href="#3385">3385</a>         IOUtils.closeQuietly(as);
<a class="jxr_linenumber" name="3386" href="#3386">3386</a>         IOUtils.closeQuietly(es);
<a class="jxr_linenumber" name="3387" href="#3387">3387</a> 
<a class="jxr_linenumber" name="3388" href="#3388">3388</a>         <strong class="jxr_keyword">if</strong> (getWorst(results).getLevel() &lt;= OK.getLevel()) {
<a class="jxr_linenumber" name="3389" href="#3389">3389</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3390" href="#3390">3390</a>                 addResultChild(success, result);
<a class="jxr_linenumber" name="3391" href="#3391">3391</a>             }
<a class="jxr_linenumber" name="3392" href="#3392">3392</a> 
<a class="jxr_linenumber" name="3393" href="#3393">3393</a>             <strong class="jxr_keyword">return</strong> success;
<a class="jxr_linenumber" name="3394" href="#3394">3394</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3395" href="#3395">3395</a>             <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3396" href="#3396">3396</a>                 addResultChild(failure, result);
<a class="jxr_linenumber" name="3397" href="#3397">3397</a>             }
<a class="jxr_linenumber" name="3398" href="#3398">3398</a> 
<a class="jxr_linenumber" name="3399" href="#3399">3399</a>             <strong class="jxr_keyword">return</strong> failure;
<a class="jxr_linenumber" name="3400" href="#3400">3400</a>         }
<a class="jxr_linenumber" name="3401" href="#3401">3401</a>     }
<a class="jxr_linenumber" name="3402" href="#3402">3402</a> 
<a class="jxr_linenumber" name="3403" href="#3403">3403</a>     <em class="jxr_comment">// --- helpers ---</em>
<a class="jxr_linenumber" name="3404" href="#3404">3404</a> 
<a class="jxr_linenumber" name="3405" href="#3405">3405</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="3406" href="#3406">3406</a>         <strong class="jxr_keyword">if</strong> (result != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3407" href="#3407">3407</a>             <strong class="jxr_keyword">if</strong> (result instanceof CmisTestResultImpl) {
<a class="jxr_linenumber" name="3408" href="#3408">3408</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/tck/impl/CmisTestResultImpl.html">CmisTestResultImpl</a>) result).setStackTrace(getStackTrace());
<a class="jxr_linenumber" name="3409" href="#3409">3409</a>             }
<a class="jxr_linenumber" name="3410" href="#3410">3410</a> 
<a class="jxr_linenumber" name="3411" href="#3411">3411</a>             results.add(result);
<a class="jxr_linenumber" name="3412" href="#3412">3412</a>             <strong class="jxr_keyword">if</strong> (result.isFatal()) {
<a class="jxr_linenumber" name="3413" href="#3413">3413</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="3414" href="#3414">3414</a>             }
<a class="jxr_linenumber" name="3415" href="#3415">3415</a>         }
<a class="jxr_linenumber" name="3416" href="#3416">3416</a>     }
<a class="jxr_linenumber" name="3417" href="#3417">3417</a> 
<a class="jxr_linenumber" name="3418" href="#3418">3418</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="3419" href="#3419">3419</a>         <strong class="jxr_keyword">if</strong> (isNullOrEmpty(results)) {
<a class="jxr_linenumber" name="3420" href="#3420">3420</a>             <strong class="jxr_keyword">return</strong> CmisTestResultStatus.OK;
<a class="jxr_linenumber" name="3421" href="#3421">3421</a>         }
<a class="jxr_linenumber" name="3422" href="#3422">3422</a> 
<a class="jxr_linenumber" name="3423" href="#3423">3423</a>         <strong class="jxr_keyword">int</strong> max = 0;
<a class="jxr_linenumber" name="3424" href="#3424">3424</a> 
<a class="jxr_linenumber" name="3425" href="#3425">3425</a>         <strong class="jxr_keyword">for</strong> (CmisTestResult result : results) {
<a class="jxr_linenumber" name="3426" href="#3426">3426</a>             <strong class="jxr_keyword">if</strong> (max &lt; result.getStatus().getLevel()) {
<a class="jxr_linenumber" name="3427" href="#3427">3427</a>                 max = result.getStatus().getLevel();
<a class="jxr_linenumber" name="3428" href="#3428">3428</a>             }
<a class="jxr_linenumber" name="3429" href="#3429">3429</a>         }
<a class="jxr_linenumber" name="3430" href="#3430">3430</a> 
<a class="jxr_linenumber" name="3431" href="#3431">3431</a>         <strong class="jxr_keyword">return</strong> CmisTestResultStatus.fromLevel(max);
<a class="jxr_linenumber" name="3432" href="#3432">3432</a>     }
<a class="jxr_linenumber" name="3433" href="#3433">3433</a> 
<a class="jxr_linenumber" name="3434" href="#3434">3434</a>     <em class="jxr_comment">// --- helper classes ---</em>
<a class="jxr_linenumber" name="3435" href="#3435">3435</a> 
<a class="jxr_linenumber" name="3436" href="#3436">3436</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="3437" href="#3437">3437</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String id;
<a class="jxr_linenumber" name="3438" href="#3438">3438</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean required;
<a class="jxr_linenumber" name="3439" href="#3439">3439</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> PropertyType propertyType;
<a class="jxr_linenumber" name="3440" href="#3440">3440</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Cardinality cardinality;
<a class="jxr_linenumber" name="3441" href="#3441">3441</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Updatability updatability;
<a class="jxr_linenumber" name="3442" href="#3442">3442</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean queryable;
<a class="jxr_linenumber" name="3443" href="#3443">3443</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Boolean orderable;
<a class="jxr_linenumber" name="3444" href="#3444">3444</a> 
<a class="jxr_linenumber" name="3445" href="#3445">3445</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="3446" href="#3446">3446</a>                 Updatability updatability, Boolean queryable, Boolean orderable) {
<a class="jxr_linenumber" name="3447" href="#3447">3447</a>             <strong class="jxr_keyword">this</strong>.id = id;
<a class="jxr_linenumber" name="3448" href="#3448">3448</a>             <strong class="jxr_keyword">this</strong>.required = required;
<a class="jxr_linenumber" name="3449" href="#3449">3449</a>             <strong class="jxr_keyword">this</strong>.propertyType = propertyType;
<a class="jxr_linenumber" name="3450" href="#3450">3450</a>             <strong class="jxr_keyword">this</strong>.cardinality = cardinality;
<a class="jxr_linenumber" name="3451" href="#3451">3451</a>             <strong class="jxr_keyword">this</strong>.updatability = updatability;
<a class="jxr_linenumber" name="3452" href="#3452">3452</a>             <strong class="jxr_keyword">this</strong>.queryable = queryable;
<a class="jxr_linenumber" name="3453" href="#3453">3453</a>             <strong class="jxr_keyword">this</strong>.orderable = (cardinality == Cardinality.MULTI ? Boolean.FALSE : orderable);
<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">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> check(TypeDefinition type) {
<a class="jxr_linenumber" name="3457" href="#3457">3457</a>             List&lt;CmisTestResult&gt; results = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisTestResult&gt;();
<a class="jxr_linenumber" name="3458" href="#3458">3458</a> 
<a class="jxr_linenumber" name="3459" href="#3459">3459</a>             <a href="../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="3460" href="#3460">3460</a> 
<a class="jxr_linenumber" name="3461" href="#3461">3461</a>             Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs = type.getPropertyDefinitions();
<a class="jxr_linenumber" name="3462" href="#3462">3462</a>             <strong class="jxr_keyword">if</strong> (propDefs == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3463" href="#3463">3463</a>                 addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definitions are missing!"</span>));
<a class="jxr_linenumber" name="3464" href="#3464">3464</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3465" href="#3465">3465</a>                 PropertyDefinition&lt;?&gt; propDef = propDefs.get(id);
<a class="jxr_linenumber" name="3466" href="#3466">3466</a>                 <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3467" href="#3467">3467</a>                     addResult(results, createResult(FAILURE, <span class="jxr_string">"Property definition is missing!"</span>));
<a class="jxr_linenumber" name="3468" href="#3468">3468</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3469" href="#3469">3469</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="3470" href="#3470">3470</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3471" href="#3471">3471</a>                                 <span class="jxr_string">"Required flag: expected: "</span> + required + <span class="jxr_string">" / actual: "</span> + propDef.isRequired());
<a class="jxr_linenumber" name="3472" href="#3472">3472</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3473" href="#3473">3473</a>                     }
<a class="jxr_linenumber" name="3474" href="#3474">3474</a> 
<a class="jxr_linenumber" name="3475" href="#3475">3475</a>                     <strong class="jxr_keyword">if</strong> (!propertyType.equals(propDef.getPropertyType())) {
<a class="jxr_linenumber" name="3476" href="#3476">3476</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3477" href="#3477">3477</a>                                 <span class="jxr_string">"Property type: expected: "</span> + propertyType + <span class="jxr_string">" / actual: "</span> + propDef.getPropertyType());
<a class="jxr_linenumber" name="3478" href="#3478">3478</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3479" href="#3479">3479</a>                     }
<a class="jxr_linenumber" name="3480" href="#3480">3480</a> 
<a class="jxr_linenumber" name="3481" href="#3481">3481</a>                     <strong class="jxr_keyword">if</strong> (!cardinality.equals(propDef.getCardinality())) {
<a class="jxr_linenumber" name="3482" href="#3482">3482</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3483" href="#3483">3483</a>                                 <span class="jxr_string">"Cardinality: expected: "</span> + cardinality + <span class="jxr_string">" / actual: "</span> + propDef.getCardinality());
<a class="jxr_linenumber" name="3484" href="#3484">3484</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3485" href="#3485">3485</a>                     }
<a class="jxr_linenumber" name="3486" href="#3486">3486</a> 
<a class="jxr_linenumber" name="3487" href="#3487">3487</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="3488" href="#3488">3488</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3489" href="#3489">3489</a>                                 <span class="jxr_string">"Updatability: expected: "</span> + updatability + <span class="jxr_string">" / actual: "</span> + propDef.getUpdatability());
<a class="jxr_linenumber" name="3490" href="#3490">3490</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3491" href="#3491">3491</a>                     }
<a class="jxr_linenumber" name="3492" href="#3492">3492</a> 
<a class="jxr_linenumber" name="3493" href="#3493">3493</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="3494" href="#3494">3494</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3495" href="#3495">3495</a>                                 <span class="jxr_string">"Queryable: expected: "</span> + queryable + <span class="jxr_string">" / actual: "</span> + propDef.isQueryable());
<a class="jxr_linenumber" name="3496" href="#3496">3496</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3497" href="#3497">3497</a>                     }
<a class="jxr_linenumber" name="3498" href="#3498">3498</a> 
<a class="jxr_linenumber" name="3499" href="#3499">3499</a>                     <strong class="jxr_keyword">boolean</strong> isPropertyQueryNameRequired = Boolean.TRUE.equals(queryable);
<a class="jxr_linenumber" name="3500" href="#3500">3500</a>                     checkQueryName(propDef.getQueryName(), isPropertyQueryNameRequired, <span class="jxr_string">"Property Query Name: "</span>
<a class="jxr_linenumber" name="3501" href="#3501">3501</a>                             + propDef.getQueryName());
<a class="jxr_linenumber" name="3502" href="#3502">3502</a> 
<a class="jxr_linenumber" name="3503" href="#3503">3503</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="3504" href="#3504">3504</a>                         f = createResult(FAILURE,
<a class="jxr_linenumber" name="3505" href="#3505">3505</a>                                 <span class="jxr_string">"Orderable: expected: "</span> + orderable + <span class="jxr_string">" / actual: "</span> + propDef.isOrderable());
<a class="jxr_linenumber" name="3506" href="#3506">3506</a>                         addResult(results, f);
<a class="jxr_linenumber" name="3507" href="#3507">3507</a>                     }
<a class="jxr_linenumber" name="3508" href="#3508">3508</a> 
<a class="jxr_linenumber" name="3509" href="#3509">3509</a>                     <strong class="jxr_keyword">if</strong> (type.getBaseTypeId() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3510" href="#3510">3510</a>                         Boolean inherited = !type.getBaseTypeId().value().equals(type.getId());
<a class="jxr_linenumber" name="3511" href="#3511">3511</a>                         <strong class="jxr_keyword">if</strong> (!inherited.equals(propDef.isInherited())) {
<a class="jxr_linenumber" name="3512" href="#3512">3512</a>                             f = createResult(FAILURE,
<a class="jxr_linenumber" name="3513" href="#3513">3513</a>                                     <span class="jxr_string">"Inhertited: expected: "</span> + inherited + <span class="jxr_string">" / actual: "</span> + propDef.isInherited());
<a class="jxr_linenumber" name="3514" href="#3514">3514</a>                             addResult(results, f);
<a class="jxr_linenumber" name="3515" href="#3515">3515</a>                         }
<a class="jxr_linenumber" name="3516" href="#3516">3516</a>                     }
<a class="jxr_linenumber" name="3517" href="#3517">3517</a> 
<a class="jxr_linenumber" name="3518" href="#3518">3518</a>                     <em class="jxr_comment">// data type specific tests</em>
<a class="jxr_linenumber" name="3519" href="#3519">3519</a>                     <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="3520" href="#3520">3520</a>                         PropertyStringDefinition stringPropDef = (PropertyStringDefinition) propDef;
<a class="jxr_linenumber" name="3521" href="#3521">3521</a> 
<a class="jxr_linenumber" name="3522" href="#3522">3522</a>                         <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3523" href="#3523">3523</a>                             <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength().signum() == 0) {
<a class="jxr_linenumber" name="3524" href="#3524">3524</a>                                 f = createResult(WARNING, <span class="jxr_string">"Max length is 0!"</span>);
<a class="jxr_linenumber" name="3525" href="#3525">3525</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3526" href="#3526">3526</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (stringPropDef.getMaxLength().signum() == -1) {
<a class="jxr_linenumber" name="3527" href="#3527">3527</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Max length is negative!"</span>);
<a class="jxr_linenumber" name="3528" href="#3528">3528</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3529" href="#3529">3529</a>                             }
<a class="jxr_linenumber" name="3530" href="#3530">3530</a>                         }
<a class="jxr_linenumber" name="3531" href="#3531">3531</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="3532" href="#3532">3532</a>                         PropertyIntegerDefinition intPropDef = (PropertyIntegerDefinition) propDef;
<a class="jxr_linenumber" name="3533" href="#3533">3533</a> 
<a class="jxr_linenumber" name="3534" href="#3534">3534</a>                         <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue() != <strong class="jxr_keyword">null</strong> &amp; intPropDef.getMaxValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3535" href="#3535">3535</a>                             <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue().compareTo(intPropDef.getMaxValue()) == 0) {
<a class="jxr_linenumber" name="3536" href="#3536">3536</a>                                 f = createResult(WARNING, <span class="jxr_string">"Min and max values are equal!"</span>);
<a class="jxr_linenumber" name="3537" href="#3537">3537</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3538" href="#3538">3538</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (intPropDef.getMinValue().compareTo(intPropDef.getMaxValue()) == 1) {
<a class="jxr_linenumber" name="3539" href="#3539">3539</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Min value is greater than max value!"</span>);
<a class="jxr_linenumber" name="3540" href="#3540">3540</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3541" href="#3541">3541</a>                             }
<a class="jxr_linenumber" name="3542" href="#3542">3542</a>                         }
<a class="jxr_linenumber" name="3543" href="#3543">3543</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="3544" href="#3544">3544</a>                         PropertyDecimalDefinition decPropDef = (PropertyDecimalDefinition) propDef;
<a class="jxr_linenumber" name="3545" href="#3545">3545</a> 
<a class="jxr_linenumber" name="3546" href="#3546">3546</a>                         <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue() != <strong class="jxr_keyword">null</strong> &amp; decPropDef.getMaxValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3547" href="#3547">3547</a>                             <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue().compareTo(decPropDef.getMaxValue()) == 0) {
<a class="jxr_linenumber" name="3548" href="#3548">3548</a>                                 f = createResult(WARNING, <span class="jxr_string">"Min and max values are equal!"</span>);
<a class="jxr_linenumber" name="3549" href="#3549">3549</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3550" href="#3550">3550</a>                             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (decPropDef.getMinValue().compareTo(decPropDef.getMaxValue()) == 1) {
<a class="jxr_linenumber" name="3551" href="#3551">3551</a>                                 f = createResult(FAILURE, <span class="jxr_string">"Min value is greater than max value!"</span>);
<a class="jxr_linenumber" name="3552" href="#3552">3552</a>                                 addResult(results, f);
<a class="jxr_linenumber" name="3553" href="#3553">3553</a>                             }
<a class="jxr_linenumber" name="3554" href="#3554">3554</a>                         }
<a class="jxr_linenumber" name="3555" href="#3555">3555</a>                     }
<a class="jxr_linenumber" name="3556" href="#3556">3556</a>                 }
<a class="jxr_linenumber" name="3557" href="#3557">3557</a>             }
<a class="jxr_linenumber" name="3558" href="#3558">3558</a> 
<a class="jxr_linenumber" name="3559" href="#3559">3559</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="3560" href="#3560">3560</a>             result.getChildren().addAll(results);
<a class="jxr_linenumber" name="3561" href="#3561">3561</a> 
<a class="jxr_linenumber" name="3562" href="#3562">3562</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="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> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

