blob: d129ea18607e58076ae980c2d58fe40d68a8f164 [file] [log] [blame]
<!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>ObjectServiceTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../testapidocs/org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="1" href="#1">1</a> <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a> <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a> <em class="jxr_comment"> * or more contributor license agreements. See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a> <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a> <em class="jxr_comment"> * regarding copyright ownership. The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a> <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a> <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a> <em class="jxr_comment"> * with the License. You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a> <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a> <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a> <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a> <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a> <em class="jxr_comment"> * KIND, either express or implied. See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a> <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a> <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a> <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a> <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.inmemory;
<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.junit.Assert.assertEquals;
<a class="jxr_linenumber" name="22" href="#22">22</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="23" href="#23">23</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNotNull;
<a class="jxr_linenumber" name="24" href="#24">24</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNull;
<a class="jxr_linenumber" name="25" href="#25">25</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a class="jxr_linenumber" name="26" href="#26">26</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
<a class="jxr_linenumber" name="27" href="#27">27</a>
<a class="jxr_linenumber" name="28" href="#28">28</a> <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a class="jxr_linenumber" name="29" href="#29">29</a> <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a class="jxr_linenumber" name="30" href="#30">30</a> <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="31" href="#31">31</a> <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a class="jxr_linenumber" name="32" href="#32">32</a> <strong class="jxr_keyword">import</strong> java.io.PrintStream;
<a class="jxr_linenumber" name="33" href="#33">33</a> <strong class="jxr_keyword">import</strong> java.io.UnsupportedEncodingException;
<a class="jxr_linenumber" name="34" href="#34">34</a> <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="35" href="#35">35</a> <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="36" href="#36">36</a> <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="37" href="#37">37</a> <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="38" href="#38">38</a> <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="39" href="#39">39</a> <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="40" href="#40">40</a> <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="41" href="#41">41</a> <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="42" href="#42">42</a>
<a class="jxr_linenumber" name="43" href="#43">43</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="44" href="#44">44</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="45" href="#45">45</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="46" href="#46">46</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="47" href="#47">47</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a class="jxr_linenumber" name="48" href="#48">48</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="49" href="#49">49</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="50" href="#50">50</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="51" href="#51">51</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a class="jxr_linenumber" name="52" href="#52">52</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="53" href="#53">53</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="54" href="#54">54</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="55" href="#55">55</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="56" href="#56">56</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableDocumentTypeDefinition;
<a class="jxr_linenumber" name="57" href="#57">57</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableFolderTypeDefinition;
<a class="jxr_linenumber" name="58" href="#58">58</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableItemTypeDefinition;
<a class="jxr_linenumber" name="59" href="#59">59</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutablePolicyTypeDefinition;
<a class="jxr_linenumber" name="60" href="#60">60</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableRelationshipTypeDefinition;
<a class="jxr_linenumber" name="61" href="#61">61</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableSecondaryTypeDefinition;
<a class="jxr_linenumber" name="62" href="#62">62</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.MutableTypeDefinition;
<a class="jxr_linenumber" name="63" href="#63">63</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="64" href="#64">64</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="65" href="#65">65</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="66" href="#66">66</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="67" href="#67">67</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CmisVersion;
<a class="jxr_linenumber" name="68" href="#68">68</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="69" href="#69">69</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="70" href="#70">70</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a class="jxr_linenumber" name="71" href="#71">71</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="72" href="#72">72</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a class="jxr_linenumber" name="73" href="#73">73</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
<a class="jxr_linenumber" name="74" href="#74">74</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException;
<a class="jxr_linenumber" name="75" href="#75">75</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="76" href="#76">76</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNameConstraintViolationException;
<a class="jxr_linenumber" name="77" href="#77">77</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
<a class="jxr_linenumber" name="78" href="#78">78</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
<a class="jxr_linenumber" name="79" href="#79">79</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a class="jxr_linenumber" name="80" href="#80">80</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
<a class="jxr_linenumber" name="81" href="#81">81</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.IOUtils;
<a class="jxr_linenumber" name="82" href="#82">82</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateObjectIdAndChangeTokenImpl;
<a class="jxr_linenumber" name="83" href="#83">83</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a class="jxr_linenumber" name="84" href="#84">84</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a class="jxr_linenumber" name="85" href="#85">85</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a class="jxr_linenumber" name="86" href="#86">86</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.content.ObjectGenerator;
<a class="jxr_linenumber" name="87" href="#87">87</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.impl.ContentStreamDataImpl;
<a class="jxr_linenumber" name="88" href="#88">88</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.impl.RenditionUtil;
<a class="jxr_linenumber" name="89" href="#89">89</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.types.DocumentTypeCreationHelper;
<a class="jxr_linenumber" name="90" href="#90">90</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
<a class="jxr_linenumber" name="91" href="#91">91</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.server.support.TypeDefinitionFactory;
<a class="jxr_linenumber" name="92" href="#92">92</a> <strong class="jxr_keyword">import</strong> org.junit.After;
<a class="jxr_linenumber" name="93" href="#93">93</a> <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="94" href="#94">94</a> <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="95" href="#95">95</a> <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="96" href="#96">96</a> <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="97" href="#97">97</a>
<a class="jxr_linenumber" name="98" href="#98">98</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.html">ObjectServiceTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.html">AbstractServiceTest</a> {
<a class="jxr_linenumber" name="99" href="#99">99</a>
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger log = LoggerFactory.getLogger(ObjectServiceTest.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_TYPE_ID = <span class="jxr_string">"MyFolderType"</span>;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_TYPE_ID = <span class="jxr_string">"MyDocumentType"</span>;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOC_TYPE_WITH_DEFAULTS_ID = <span class="jxr_string">"DocumentTypeWithDefault"</span>;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_TYPE_WITH_DEFAULTS_ID = <span class="jxr_string">"FolderTypeWithDefault"</span>;
<a class="jxr_linenumber" name="105" href="#105">105</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_STRING_PROP_ID = <span class="jxr_string">"MyFolderStringProp"</span>;
<a class="jxr_linenumber" name="106" href="#106">106</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_STRING_PROP_ID = <span class="jxr_string">"MyDocumentStringProp"</span>;
<a class="jxr_linenumber" name="107" href="#107">107</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_VERSION_DOCUMENT_TYPE_ID = <span class="jxr_string">"MyVersionedType"</span>;
<a class="jxr_linenumber" name="108" href="#108">108</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_VER_PROPERTY_ID = <span class="jxr_string">"VerStringProp"</span>;
<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> String TEST_CUSTOM_DOCUMENT_TYPE_ID = <span class="jxr_string">"MyCustomDocumentType"</span>;
<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> String TEST_INHERITED_CUSTOM_DOCUMENT_TYPE_ID = <span class="jxr_string">"MyCustomInheritedDocType"</span>;
<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_CUSTOM_NO_CONTENT_TYPE_ID = <span class="jxr_string">"NoContentType"</span>;
<a class="jxr_linenumber" name="112" href="#112">112</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_CUSTOM_MUST_CONTENT_TYPE_ID = <span class="jxr_string">"MustHaveContentType"</span>;
<a class="jxr_linenumber" name="113" href="#113">113</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_STRING_PROP_ID = <span class="jxr_string">"MyCustomDocumentStringProp"</span>;
<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_MULTI_STRING_PROP_ID = <span class="jxr_string">"MyCustomDocumentMultiStringProp"</span>;
<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_INT_PROP_ID = <span class="jxr_string">"MyCustomDocumentIntProp"</span>;
<a class="jxr_linenumber" name="116" href="#116">116</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_INT_PROP_ID_MANDATORY_DEFAULT = <span class="jxr_string">"MyCustomDocumentIntPropMandatoryDefault"</span>;
<a class="jxr_linenumber" name="117" href="#117">117</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_MY_MULTI_STRING_PROP_ID = <span class="jxr_string">"MyCustomDocumentMultiStringProp"</span>;
<a class="jxr_linenumber" name="118" href="#118">118</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_MY_INT_PROP_ID = <span class="jxr_string">"MyCustomDocumentIntProp"</span>;
<a class="jxr_linenumber" name="119" href="#119">119</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FOLDER_MY_INT_PROP_ID_MANDATORY_DEFAULT = <span class="jxr_string">"MyCustomDocumentIntPropMandatoryDefault"</span>;
<a class="jxr_linenumber" name="120" href="#120">120</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_SUB_STRING_PROP_ID = <span class="jxr_string">"MyInheritedStringProp"</span>;
<a class="jxr_linenumber" name="121" href="#121">121</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_DOCUMENT_MY_SUB_INT_PROP_ID = <span class="jxr_string">"MyInheritedIntProp"</span>;
<a class="jxr_linenumber" name="122" href="#122">122</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_ITEM_TYPE_ID = <span class="jxr_string">"MyItemType"</span>;
<a class="jxr_linenumber" name="123" href="#123">123</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ITEM_STRING_PROP = <span class="jxr_string">"ItemStringProp"</span>;
<a class="jxr_linenumber" name="124" href="#124">124</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DOCUMENT_TYPE_ID = DocumentTypeCreationHelper.getCmisDocumentType().getId();
<a class="jxr_linenumber" name="125" href="#125">125</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DOCUMENT_ID = <span class="jxr_string">"Document_1"</span>;
<a class="jxr_linenumber" name="126" href="#126">126</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FOLDER_TYPE_ID = DocumentTypeCreationHelper.getCmisFolderType().getId();
<a class="jxr_linenumber" name="127" href="#127">127</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FOLDER_ID = <span class="jxr_string">"Folder_1"</span>;
<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MY_CUSTOM_NAME = <span class="jxr_string">"My Custom Document"</span>;
<a class="jxr_linenumber" name="129" href="#129">129</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_SIZE = 100;
<a class="jxr_linenumber" name="130" href="#130">130</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PNG = <span class="jxr_string">"image/png"</span>;
<a class="jxr_linenumber" name="131" href="#131">131</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String JPEG = <span class="jxr_string">"image/jpeg"</span>;
<a class="jxr_linenumber" name="132" href="#132">132</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NEW_STRING_PROP_VAL = <span class="jxr_string">"My ugly string 1"</span>;
<a class="jxr_linenumber" name="133" href="#133">133</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> BigInteger NEW_INT_PROP_VAL = BigInteger.valueOf(815);
<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_SECONDARY_TYPE_ID = <span class="jxr_string">"MySecondaryType"</span>;
<a class="jxr_linenumber" name="135" href="#135">135</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SECONDARY_STRING_PROP = <span class="jxr_string">"SecondaryStringProp"</span>;
<a class="jxr_linenumber" name="136" href="#136">136</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SECONDARY_INTEGER_PROP = <span class="jxr_string">"SecondaryIntegerProp"</span>;
<a class="jxr_linenumber" name="137" href="#137">137</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REL_STRING_PROP = <span class="jxr_string">"CrossReferenceKind"</span>;
<a class="jxr_linenumber" name="138" href="#138">138</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_RELATION_TYPE_ID = <span class="jxr_string">"CrossReferenceType"</span>;
<a class="jxr_linenumber" name="139" href="#139">139</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_RESTRICTED_RELATION_TYPE_ID = <span class="jxr_string">"RestrictedRelationType"</span>;
<a class="jxr_linenumber" name="140" href="#140">140</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_POLICY_TYPE_ID = <span class="jxr_string">"AuditPolicy"</span>;
<a class="jxr_linenumber" name="141" href="#141">141</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_POLICY_PROPERTY_ID = <span class="jxr_string">"AuditSettings"</span>;
<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ENCODING_UTF8 = <span class="jxr_string">"UTF-8"</span>;
<a class="jxr_linenumber" name="143" href="#143">143</a>
<a class="jxr_linenumber" name="144" href="#144">144</a> <a href="../../../../../org/apache/chemistry/opencmis/inmemory/ObjectCreator.html">ObjectCreator</a> fCreator;
<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> @Before
<a class="jxr_linenumber" name="148" href="#148">148</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() {
<a class="jxr_linenumber" name="149" href="#149">149</a> <strong class="jxr_keyword">super</strong>.setTypeCreatorClass(ObjectTestTypeSystemCreator.<strong class="jxr_keyword">class</strong>.getName());
<a class="jxr_linenumber" name="150" href="#150">150</a> <strong class="jxr_keyword">super</strong>.setUp();
<a class="jxr_linenumber" name="151" href="#151">151</a> fCreator = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/chemistry/opencmis/inmemory/ObjectCreator.html">ObjectCreator</a>(fFactory, fObjSvc, fRepositoryId);
<a class="jxr_linenumber" name="152" href="#152">152</a> }
<a class="jxr_linenumber" name="153" href="#153">153</a>
<a class="jxr_linenumber" name="154" href="#154">154</a> @Override
<a class="jxr_linenumber" name="155" href="#155">155</a> @After
<a class="jxr_linenumber" name="156" href="#156">156</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
<a class="jxr_linenumber" name="157" href="#157">157</a> <strong class="jxr_keyword">super</strong>.tearDown();
<a class="jxr_linenumber" name="158" href="#158">158</a> }
<a class="jxr_linenumber" name="159" href="#159">159</a>
<a class="jxr_linenumber" name="160" href="#160">160</a> @Override
<a class="jxr_linenumber" name="161" href="#161">161</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addParameters(Map&lt;String, String&gt; parameters) {
<a class="jxr_linenumber" name="162" href="#162">162</a> parameters.put(ConfigConstants.MAX_CONTENT_SIZE_KB, Integer.valueOf(MAX_SIZE).toString());
<a class="jxr_linenumber" name="163" href="#163">163</a> }
<a class="jxr_linenumber" name="164" href="#164">164</a>
<a class="jxr_linenumber" name="165" href="#165">165</a> @Test
<a class="jxr_linenumber" name="166" href="#166">166</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateDocument() {
<a class="jxr_linenumber" name="167" href="#167">167</a> log.info(<span class="jxr_string">"starting testCreateObject() ..."</span>);
<a class="jxr_linenumber" name="168" href="#168">168</a> String id = createDocument(fRootFolderId, false);
<a class="jxr_linenumber" name="169" href="#169">169</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="170" href="#170">170</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="171" href="#171">171</a> }
<a class="jxr_linenumber" name="172" href="#172">172</a> log.info(<span class="jxr_string">"... testCreateObject() finished."</span>);
<a class="jxr_linenumber" name="173" href="#173">173</a>
<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_comment">// test create a document with a folder type, should fail:</em>
<a class="jxr_linenumber" name="175" href="#175">175</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="176" href="#176">176</a> Properties props = createDocumentProperties(<span class="jxr_string">"DocumentWithAFolderType"</span>, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="177" href="#177">177</a> id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="178" href="#178">178</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="179" href="#179">179</a> assertNotNull(id);
<a class="jxr_linenumber" name="180" href="#180">180</a> fail(<span class="jxr_string">"Creating document with a folder type should fail."</span>);
<a class="jxr_linenumber" name="181" href="#181">181</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="182" href="#182">182</a> log.info(<span class="jxr_string">"Creating document with a folder type failed as expected."</span>);
<a class="jxr_linenumber" name="183" href="#183">183</a> }
<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_comment">// test create a document with an illegal name, should fail:</em>
<a class="jxr_linenumber" name="185" href="#185">185</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="186" href="#186">186</a> Properties props = createDocumentProperties(<span class="jxr_string">"abc (:*)"</span>, DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="187" href="#187">187</a> fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="188" href="#188">188</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="189" href="#189">189</a> fail(<span class="jxr_string">"Creating document with an illegal name should fail."</span>);
<a class="jxr_linenumber" name="190" href="#190">190</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="191" href="#191">191</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="192" href="#192">192</a> log.info(<span class="jxr_string">"Creating document with an illegal name failed as expected."</span>);
<a class="jxr_linenumber" name="193" href="#193">193</a> }
<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> @Test
<a class="jxr_linenumber" name="197" href="#197">197</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateDocumentInvalidNames() {
<a class="jxr_linenumber" name="198" href="#198">198</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="199" href="#199">199</a> createDocumentNoCatch(<strong class="jxr_keyword">null</strong>, fRootFolderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false);
<a class="jxr_linenumber" name="200" href="#200">200</a> fail(<span class="jxr_string">"Document creation with null name should fail."</span>);
<a class="jxr_linenumber" name="201" href="#201">201</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="202" href="#202">202</a> assertTrue(e instanceof CmisInvalidArgumentException);
<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">try</strong> {
<a class="jxr_linenumber" name="206" href="#206">206</a> createDocumentNoCatch(<span class="jxr_string">""</span>, fRootFolderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false);
<a class="jxr_linenumber" name="207" href="#207">207</a> fail(<span class="jxr_string">"Document creation with empty name should fail."</span>);
<a class="jxr_linenumber" name="208" href="#208">208</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="209" href="#209">209</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="210" href="#210">210</a> }
<a class="jxr_linenumber" name="211" href="#211">211</a>
<a class="jxr_linenumber" name="212" href="#212">212</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="213" href="#213">213</a> createDocumentNoCatch(<span class="jxr_string">"/(%#$a������������"</span>, fRootFolderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false);
<a class="jxr_linenumber" name="214" href="#214">214</a> fail(<span class="jxr_string">"Document creation with ilegal name should fail."</span>);
<a class="jxr_linenumber" name="215" href="#215">215</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="216" href="#216">216</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="217" href="#217">217</a> }
<a class="jxr_linenumber" name="218" href="#218">218</a>
<a class="jxr_linenumber" name="219" href="#219">219</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="220" href="#220">220</a> createDocumentNoCatch(<span class="jxr_string">"DuplicatedName"</span>, fRootFolderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false);
<a class="jxr_linenumber" name="221" href="#221">221</a> createDocumentNoCatch(<span class="jxr_string">"DuplicatedName"</span>, fRootFolderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false);
<a class="jxr_linenumber" name="222" href="#222">222</a> fail(<span class="jxr_string">"Document creation with existing name should fail."</span>);
<a class="jxr_linenumber" name="223" href="#223">223</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="224" href="#224">224</a> assertTrue(e instanceof CmisNameConstraintViolationException);
<a class="jxr_linenumber" name="225" href="#225">225</a> }
<a class="jxr_linenumber" name="226" href="#226">226</a> }
<a class="jxr_linenumber" name="227" href="#227">227</a>
<a class="jxr_linenumber" name="228" href="#228">228</a> @Test
<a class="jxr_linenumber" name="229" href="#229">229</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateFolderInvalidNames() {
<a class="jxr_linenumber" name="230" href="#230">230</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="231" href="#231">231</a> createFolderNoCatch(<strong class="jxr_keyword">null</strong>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="232" href="#232">232</a> fail(<span class="jxr_string">"Folder creation with null name should fail."</span>);
<a class="jxr_linenumber" name="233" href="#233">233</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="234" href="#234">234</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="235" href="#235">235</a> }
<a class="jxr_linenumber" name="236" href="#236">236</a>
<a class="jxr_linenumber" name="237" href="#237">237</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="238" href="#238">238</a> createFolderNoCatch(<span class="jxr_string">""</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="239" href="#239">239</a> fail(<span class="jxr_string">"Folder creation with empty name should fail."</span>);
<a class="jxr_linenumber" name="240" href="#240">240</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="241" href="#241">241</a> assertTrue(e instanceof CmisInvalidArgumentException);
<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> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="245" href="#245">245</a> createFolderNoCatch(
<a class="jxr_linenumber" name="246" href="#246">246</a> <span class="jxr_string">"/(%#$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"</span>,
<a class="jxr_linenumber" name="247" href="#247">247</a> fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="248" href="#248">248</a> fail(<span class="jxr_string">"Folder creation with ilegal name should fail."</span>);
<a class="jxr_linenumber" name="249" href="#249">249</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="250" href="#250">250</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="251" href="#251">251</a> }
<a class="jxr_linenumber" name="252" href="#252">252</a>
<a class="jxr_linenumber" name="253" href="#253">253</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="254" href="#254">254</a> createFolderNoCatch(<span class="jxr_string">"DuplicatedName"</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="255" href="#255">255</a> createFolderNoCatch(<span class="jxr_string">"DuplicatedName"</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="256" href="#256">256</a> fail(<span class="jxr_string">"Folder creation with existing name should fail."</span>);
<a class="jxr_linenumber" name="257" href="#257">257</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="258" href="#258">258</a> assertTrue(e instanceof CmisNameConstraintViolationException || e instanceof IllegalArgumentException);
<a class="jxr_linenumber" name="259" href="#259">259</a> }
<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> @Test
<a class="jxr_linenumber" name="263" href="#263">263</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetObject() {
<a class="jxr_linenumber" name="264" href="#264">264</a> log.info(<span class="jxr_string">"starting testGetObject() ..."</span>);
<a class="jxr_linenumber" name="265" href="#265">265</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="266" href="#266">266</a> String id = createDocument(fRootFolderId, false);
<a class="jxr_linenumber" name="267" href="#267">267</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="268" href="#268">268</a> log.info(<span class="jxr_string">" createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="269" href="#269">269</a> }
<a class="jxr_linenumber" name="270" href="#270">270</a>
<a class="jxr_linenumber" name="271" href="#271">271</a> log.info(<span class="jxr_string">" getting object"</span>);
<a class="jxr_linenumber" name="272" href="#272">272</a> retrieveDocument(id);
<a class="jxr_linenumber" name="273" href="#273">273</a> log.info(<span class="jxr_string">"... testGetObject() finished."</span>);
<a class="jxr_linenumber" name="274" href="#274">274</a> }
<a class="jxr_linenumber" name="275" href="#275">275</a>
<a class="jxr_linenumber" name="276" href="#276">276</a> @Test
<a class="jxr_linenumber" name="277" href="#277">277</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetObjectByPath() {
<a class="jxr_linenumber" name="278" href="#278">278</a> log.info(<span class="jxr_string">"starting testGetObjectByPath() ..."</span>);
<a class="jxr_linenumber" name="279" href="#279">279</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="280" href="#280">280</a>
<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_comment">// create a tree for testing paths</em>
<a class="jxr_linenumber" name="282" href="#282">282</a> String f1 = createFolder(<span class="jxr_string">"folder1"</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="283" href="#283">283</a> String f2 = createFolder(<span class="jxr_string">"folder2"</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="284" href="#284">284</a> String f3 = createFolder(<span class="jxr_string">"folder3"</span>, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="285" href="#285">285</a> String f11 = createFolder(<span class="jxr_string">"folder1.1"</span>, f1, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="286" href="#286">286</a> String f12 = createFolder(<span class="jxr_string">"folder1.2"</span>, f1, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="287" href="#287">287</a> String f13 = createFolder(<span class="jxr_string">"folder1.3"</span>, f1, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="288" href="#288">288</a> String f31 = createFolder(<span class="jxr_string">"folder3.1"</span>, f3, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="289" href="#289">289</a> String f32 = createFolder(<span class="jxr_string">"folder3.2"</span>, f3, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="290" href="#290">290</a> String f33 = createFolder(<span class="jxr_string">"folder3.3"</span>, f3, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="291" href="#291">291</a> String f121 = createFolder(<span class="jxr_string">"folder1.2.1"</span>, f12, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="292" href="#292">292</a> String f122 = createFolder(<span class="jxr_string">"folder1.2.2"</span>, f12, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="293" href="#293">293</a> String f123 = createFolder(<span class="jxr_string">"folder1.2.3"</span>, f12, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="294" href="#294">294</a> String f331 = createFolder(<span class="jxr_string">"folder3.3.1"</span>, f33, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="295" href="#295">295</a> String f332 = createFolder(<span class="jxr_string">"folder3.3.2"</span>, f33, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="296" href="#296">296</a> String f333 = createFolder(<span class="jxr_string">"folder3.3.3"</span>, f33, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="297" href="#297">297</a> String doc12 = createDocument(<span class="jxr_string">"Document1.2.Doc"</span>, f12, false);
<a class="jxr_linenumber" name="298" href="#298">298</a> String doc33 = createDocument(<span class="jxr_string">"Document3.3.Doc"</span>, f33, false);
<a class="jxr_linenumber" name="299" href="#299">299</a> String doc331 = createDocument(<span class="jxr_string">"Document3.3.1.Doc"</span>, f331, false);
<a class="jxr_linenumber" name="300" href="#300">300</a> String doc333 = createDocument(<span class="jxr_string">"Document3.3.3.Doc"</span>, f333, false);
<a class="jxr_linenumber" name="301" href="#301">301</a>
<a class="jxr_linenumber" name="302" href="#302">302</a> log.info(<span class="jxr_string">" getting object by path"</span>);
<a class="jxr_linenumber" name="303" href="#303">303</a> getByPath(f1, <span class="jxr_string">"/folder1"</span>);
<a class="jxr_linenumber" name="304" href="#304">304</a> getByPath(f2, <span class="jxr_string">"/folder2"</span>);
<a class="jxr_linenumber" name="305" href="#305">305</a> getByPath(f3, <span class="jxr_string">"/folder3"</span>);
<a class="jxr_linenumber" name="306" href="#306">306</a> getByPath(f11, <span class="jxr_string">"/folder1/folder1.1"</span>);
<a class="jxr_linenumber" name="307" href="#307">307</a> getByPath(f12, <span class="jxr_string">"/folder1/folder1.2"</span>);
<a class="jxr_linenumber" name="308" href="#308">308</a> getByPath(f13, <span class="jxr_string">"/folder1/folder1.3"</span>);
<a class="jxr_linenumber" name="309" href="#309">309</a> getByPath(f31, <span class="jxr_string">"/folder3/folder3.1"</span>);
<a class="jxr_linenumber" name="310" href="#310">310</a> getByPath(f32, <span class="jxr_string">"/folder3/folder3.2"</span>);
<a class="jxr_linenumber" name="311" href="#311">311</a> getByPath(f33, <span class="jxr_string">"/folder3/folder3.3"</span>);
<a class="jxr_linenumber" name="312" href="#312">312</a> getByPath(f121, <span class="jxr_string">"/folder1/folder1.2/folder1.2.1"</span>);
<a class="jxr_linenumber" name="313" href="#313">313</a> getByPath(f122, <span class="jxr_string">"/folder1/folder1.2/folder1.2.2"</span>);
<a class="jxr_linenumber" name="314" href="#314">314</a> getByPath(f123, <span class="jxr_string">"/folder1/folder1.2/folder1.2.3"</span>);
<a class="jxr_linenumber" name="315" href="#315">315</a> getByPath(f331, <span class="jxr_string">"/folder3/folder3.3/folder3.3.1"</span>);
<a class="jxr_linenumber" name="316" href="#316">316</a> getByPath(f332, <span class="jxr_string">"/folder3/folder3.3/folder3.3.2"</span>);
<a class="jxr_linenumber" name="317" href="#317">317</a> getByPath(f333, <span class="jxr_string">"/folder3/folder3.3/folder3.3.3"</span>);
<a class="jxr_linenumber" name="318" href="#318">318</a> getByPath(doc12, <span class="jxr_string">"/folder1/folder1.2/Document1.2.Doc"</span>);
<a class="jxr_linenumber" name="319" href="#319">319</a> getByPath(doc33, <span class="jxr_string">"/folder3/folder3.3/Document3.3.Doc"</span>);
<a class="jxr_linenumber" name="320" href="#320">320</a> getByPath(doc331, <span class="jxr_string">"/folder3/folder3.3/folder3.3.1/Document3.3.1.Doc"</span>);
<a class="jxr_linenumber" name="321" href="#321">321</a> getByPath(doc333, <span class="jxr_string">"/folder3/folder3.3/folder3.3.3/Document3.3.3.Doc"</span>);
<a class="jxr_linenumber" name="322" href="#322">322</a>
<a class="jxr_linenumber" name="323" href="#323">323</a> log.info(<span class="jxr_string">"... testGetObjectByPath() finished."</span>);
<a class="jxr_linenumber" name="324" href="#324">324</a> }
<a class="jxr_linenumber" name="325" href="#325">325</a>
<a class="jxr_linenumber" name="326" href="#326">326</a> @Test
<a class="jxr_linenumber" name="327" href="#327">327</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateDocumentWithContent() {
<a class="jxr_linenumber" name="328" href="#328">328</a> log.info(<span class="jxr_string">"starting testCreateDocumentWithContent() ..."</span>);
<a class="jxr_linenumber" name="329" href="#329">329</a> String id = createDocument(fRootFolderId, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="330" href="#330">330</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="331" href="#331">331</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="332" href="#332">332</a> }
<a class="jxr_linenumber" name="333" href="#333">333</a>
<a class="jxr_linenumber" name="334" href="#334">334</a> ContentStream sd = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> offset */</em>,</em>
<a class="jxr_linenumber" name="335" href="#335">335</a> BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> length */</em>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="336" href="#336">336</a> verifyContentResult(sd);
<a class="jxr_linenumber" name="337" href="#337">337</a>
<a class="jxr_linenumber" name="338" href="#338">338</a> <em class="jxr_comment">// delete content again</em>
<a class="jxr_linenumber" name="339" href="#339">339</a> Holder&lt;String&gt; idHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id);
<a class="jxr_linenumber" name="340" href="#340">340</a> Properties props = fObjSvc.getProperties(fRepositoryId, id, PropertyIds.CHANGE_TOKEN, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="341" href="#341">341</a> String changeToken = (String) props.getProperties().get(PropertyIds.CHANGE_TOKEN).getFirstValue();
<a class="jxr_linenumber" name="342" href="#342">342</a> Holder&lt;String&gt; tokenHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(changeToken);
<a class="jxr_linenumber" name="343" href="#343">343</a> fObjSvc.deleteContentStream(fRepositoryId, idHolder, tokenHolder, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="344" href="#344">344</a>
<a class="jxr_linenumber" name="345" href="#345">345</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="346" href="#346">346</a> props = fObjSvc.getProperties(fRepositoryId, id, PropertyIds.CHANGE_TOKEN, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="347" href="#347">347</a> changeToken = (String) props.getProperties().get(PropertyIds.CHANGE_TOKEN).getFirstValue();
<a class="jxr_linenumber" name="348" href="#348">348</a> tokenHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(changeToken);
<a class="jxr_linenumber" name="349" href="#349">349</a> sd = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> offset */</em>,</em>
<a class="jxr_linenumber" name="350" href="#350">350</a> BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> length */</em>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="351" href="#351">351</a> fail(<span class="jxr_string">"getContentStream with non existing content should raise a CmisConstraintException"</span>);
<a class="jxr_linenumber" name="352" href="#352">352</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="353" href="#353">353</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="354" href="#354">354</a> }
<a class="jxr_linenumber" name="355" href="#355">355</a>
<a class="jxr_linenumber" name="356" href="#356">356</a> <em class="jxr_comment">// create content again in a second call</em>
<a class="jxr_linenumber" name="357" href="#357">357</a> ContentStream contentStream = createContent();
<a class="jxr_linenumber" name="358" href="#358">358</a> fObjSvc.setContentStream(fRepositoryId, idHolder, <strong class="jxr_keyword">true</strong>, tokenHolder, contentStream, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="359" href="#359">359</a> sd = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> offset */</em>,</em>
<a class="jxr_linenumber" name="360" href="#360">360</a> BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> length */</em>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="361" href="#361">361</a> verifyContentResult(sd);
<a class="jxr_linenumber" name="362" href="#362">362</a>
<a class="jxr_linenumber" name="363" href="#363">363</a> <em class="jxr_comment">// update content and do not set overwrite flag, expect failure</em>
<a class="jxr_linenumber" name="364" href="#364">364</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="365" href="#365">365</a> props = fObjSvc.getProperties(fRepositoryId, id, PropertyIds.CHANGE_TOKEN, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="366" href="#366">366</a> changeToken = (String) props.getProperties().get(PropertyIds.CHANGE_TOKEN).getFirstValue();
<a class="jxr_linenumber" name="367" href="#367">367</a> tokenHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(changeToken);
<a class="jxr_linenumber" name="368" href="#368">368</a> fObjSvc.setContentStream(fRepositoryId, idHolder, false, tokenHolder, contentStream, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="369" href="#369">369</a> fail(<span class="jxr_string">"setContentStream with existing content and no overWriteFlag should fail"</span>);
<a class="jxr_linenumber" name="370" href="#370">370</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="371" href="#371">371</a> assertTrue(e instanceof CmisContentAlreadyExistsException);
<a class="jxr_linenumber" name="372" href="#372">372</a> }
<a class="jxr_linenumber" name="373" href="#373">373</a>
<a class="jxr_linenumber" name="374" href="#374">374</a> <em class="jxr_comment">// cleanup</em>
<a class="jxr_linenumber" name="375" href="#375">375</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="376" href="#376">376</a>
<a class="jxr_linenumber" name="377" href="#377">377</a> log.info(<span class="jxr_string">"... testCreateDocumentWithContent() finished."</span>);
<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> @Test
<a class="jxr_linenumber" name="381" href="#381">381</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateDocumentWithContentNoFileNameNoMimeType() {
<a class="jxr_linenumber" name="382" href="#382">382</a> log.info(<span class="jxr_string">"starting testCreateDocumentWithContent() ..."</span>);
<a class="jxr_linenumber" name="383" href="#383">383</a> ContentStreamDataImpl contentStream = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="384" href="#384">384</a> List&lt;String&gt; policies = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="385" href="#385">385</a> Acl addACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="386" href="#386">386</a> Acl removeACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="387" href="#387">387</a> ExtensionsData extension = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="388" href="#388">388</a>
<a class="jxr_linenumber" name="389" href="#389">389</a> Properties props = createDocumentProperties(DOCUMENT_ID, DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="390" href="#390">390</a>
<a class="jxr_linenumber" name="391" href="#391">391</a> contentStream = (ContentStreamDataImpl) createContent();
<a class="jxr_linenumber" name="392" href="#392">392</a> contentStream.setFileName(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="393" href="#393">393</a> contentStream.setMimeType(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="394" href="#394">394</a>
<a class="jxr_linenumber" name="395" href="#395">395</a> String id = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="396" href="#396">396</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="397" href="#397">397</a> id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, contentStream, VersioningState.NONE,
<a class="jxr_linenumber" name="398" href="#398">398</a> policies, addACEs, removeACEs, extension);
<a class="jxr_linenumber" name="399" href="#399">399</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == id) {
<a class="jxr_linenumber" name="400" href="#400">400</a> fail(<span class="jxr_string">"createDocument failed."</span>);
<a class="jxr_linenumber" name="401" href="#401">401</a> }
<a class="jxr_linenumber" name="402" href="#402">402</a>
<a class="jxr_linenumber" name="403" href="#403">403</a> ContentStream sd = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> offset */</em>,</em>
<a class="jxr_linenumber" name="404" href="#404">404</a> BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> length */</em>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="405" href="#405">405</a> assertNotNull(sd.getMimeType());
<a class="jxr_linenumber" name="406" href="#406">406</a> assertNotNull(sd.getFileName());
<a class="jxr_linenumber" name="407" href="#407">407</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="408" href="#408">408</a> fail(<span class="jxr_string">"createDocument() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="409" href="#409">409</a> }
<a class="jxr_linenumber" name="410" href="#410">410</a> }
<a class="jxr_linenumber" name="411" href="#411">411</a>
<a class="jxr_linenumber" name="412" href="#412">412</a> @Test
<a class="jxr_linenumber" name="413" href="#413">413</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateDocumentFromSource() {
<a class="jxr_linenumber" name="414" href="#414">414</a> log.info(<span class="jxr_string">"starting testCreateDocumentFromSource() ..."</span>);
<a class="jxr_linenumber" name="415" href="#415">415</a> <em class="jxr_comment">// create a 1st document</em>
<a class="jxr_linenumber" name="416" href="#416">416</a> String id1 = createDocument(fRootFolderId, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="417" href="#417">417</a> <em class="jxr_comment">// create a second document with first as source</em>
<a class="jxr_linenumber" name="418" href="#418">418</a> String id2 = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="419" href="#419">419</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="420" href="#420">420</a> VersioningState versioningState = VersioningState.NONE;
<a class="jxr_linenumber" name="421" href="#421">421</a> Properties props = createDocumentPropertiesForDocumentFromSource(<span class="jxr_string">"Document From Source"</span>);
<a class="jxr_linenumber" name="422" href="#422">422</a> id2 = fObjSvc.createDocumentFromSource(fRepositoryId, id1, props, fRootFolderId, versioningState, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="423" href="#423">423</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="424" href="#424">424</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == id2) {
<a class="jxr_linenumber" name="425" href="#425">425</a> fail(<span class="jxr_string">"createDocumentFromSource failed."</span>);
<a class="jxr_linenumber" name="426" href="#426">426</a> }
<a class="jxr_linenumber" name="427" href="#427">427</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="428" href="#428">428</a> fail(<span class="jxr_string">"createDocumentFromSource() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="429" href="#429">429</a> }
<a class="jxr_linenumber" name="430" href="#430">430</a>
<a class="jxr_linenumber" name="431" href="#431">431</a> <em class="jxr_comment">// get content from second document and compare it with original one</em>
<a class="jxr_linenumber" name="432" href="#432">432</a> ContentStream sd = fObjSvc.getContentStream(fRepositoryId, id2, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> offset */</em>,</em>
<a class="jxr_linenumber" name="433" href="#433">433</a> BigInteger.valueOf(-1) <em class="jxr_comment">/*<em class="jxr_comment"> length */</em>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="434" href="#434">434</a> verifyContentResult(sd);
<a class="jxr_linenumber" name="435" href="#435">435</a>
<a class="jxr_linenumber" name="436" href="#436">436</a> <em class="jxr_comment">// cleanup</em>
<a class="jxr_linenumber" name="437" href="#437">437</a> fObjSvc.deleteObject(fRepositoryId, id1, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="438" href="#438">438</a> fObjSvc.deleteObject(fRepositoryId, id2, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="439" href="#439">439</a>
<a class="jxr_linenumber" name="440" href="#440">440</a> log.info(<span class="jxr_string">"... testCreateDocumentFromSource() finished."</span>);
<a class="jxr_linenumber" name="441" href="#441">441</a> }
<a class="jxr_linenumber" name="442" href="#442">442</a>
<a class="jxr_linenumber" name="443" href="#443">443</a> @Test
<a class="jxr_linenumber" name="444" href="#444">444</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreatedDocumentInherited() {
<a class="jxr_linenumber" name="445" href="#445">445</a> log.info(<span class="jxr_string">"starting testCreatedDocumentInherited() ..."</span>);
<a class="jxr_linenumber" name="446" href="#446">446</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="447" href="#447">447</a>
<a class="jxr_linenumber" name="448" href="#448">448</a> String id = createDocumentInheritedProperties(fRootFolderId, false);
<a class="jxr_linenumber" name="449" href="#449">449</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="450" href="#450">450</a> log.info(<span class="jxr_string">" createDocument succeeded with created id: "</span> + id);
<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> log.info(<span class="jxr_string">" getting object"</span>);
<a class="jxr_linenumber" name="454" href="#454">454</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="455" href="#455">455</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="456" href="#456">456</a> false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="457" href="#457">457</a> assertNotNull(res);
<a class="jxr_linenumber" name="458" href="#458">458</a>
<a class="jxr_linenumber" name="459" href="#459">459</a> String returnedId = res.getId();
<a class="jxr_linenumber" name="460" href="#460">460</a> assertEquals(id, returnedId);
<a class="jxr_linenumber" name="461" href="#461">461</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="462" href="#462">462</a> <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; pd : props.values()) {
<a class="jxr_linenumber" name="463" href="#463">463</a> log.info(<span class="jxr_string">"return property id: "</span> + pd.getId() + <span class="jxr_string">", value: "</span> + pd.getValues());
<a class="jxr_linenumber" name="464" href="#464">464</a> }
<a class="jxr_linenumber" name="465" href="#465">465</a>
<a class="jxr_linenumber" name="466" href="#466">466</a> PropertyData&lt;?&gt; pd = props.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="467" href="#467">467</a> assertNotNull(pd);
<a class="jxr_linenumber" name="468" href="#468">468</a> assertEquals(MY_CUSTOM_NAME, pd.getFirstValue());
<a class="jxr_linenumber" name="469" href="#469">469</a>
<a class="jxr_linenumber" name="470" href="#470">470</a> pd = props.get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="471" href="#471">471</a> assertEquals(TEST_INHERITED_CUSTOM_DOCUMENT_TYPE_ID, pd.getFirstValue());
<a class="jxr_linenumber" name="472" href="#472">472</a>
<a class="jxr_linenumber" name="473" href="#473">473</a> pd = props.get(TEST_DOCUMENT_MY_STRING_PROP_ID);
<a class="jxr_linenumber" name="474" href="#474">474</a> assertEquals(<span class="jxr_string">"My pretty string"</span>, pd.getFirstValue());
<a class="jxr_linenumber" name="475" href="#475">475</a>
<a class="jxr_linenumber" name="476" href="#476">476</a> pd = props.get(TEST_DOCUMENT_MY_INT_PROP_ID);
<a class="jxr_linenumber" name="477" href="#477">477</a> assertEquals(BigInteger.valueOf(4711), pd.getFirstValue());
<a class="jxr_linenumber" name="478" href="#478">478</a>
<a class="jxr_linenumber" name="479" href="#479">479</a> pd = props.get(TEST_DOCUMENT_MY_SUB_STRING_PROP_ID);
<a class="jxr_linenumber" name="480" href="#480">480</a> assertEquals(<span class="jxr_string">"another cool string"</span>, pd.getFirstValue());
<a class="jxr_linenumber" name="481" href="#481">481</a>
<a class="jxr_linenumber" name="482" href="#482">482</a> pd = props.get(TEST_DOCUMENT_MY_SUB_INT_PROP_ID);
<a class="jxr_linenumber" name="483" href="#483">483</a> assertEquals(BigInteger.valueOf(4712), pd.getFirstValue());
<a class="jxr_linenumber" name="484" href="#484">484</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="485" href="#485">485</a> fail(<span class="jxr_string">"getObject() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="486" href="#486">486</a> }
<a class="jxr_linenumber" name="487" href="#487">487</a> log.info(<span class="jxr_string">"... testCreatedDocumentInherited() finished."</span>);
<a class="jxr_linenumber" name="488" href="#488">488</a> }
<a class="jxr_linenumber" name="489" href="#489">489</a>
<a class="jxr_linenumber" name="490" href="#490">490</a> @Test
<a class="jxr_linenumber" name="491" href="#491">491</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBuildFolderAndDocuments() {
<a class="jxr_linenumber" name="492" href="#492">492</a> <em class="jxr_comment">// Create a hierarchy of folders and fill it with some documents</em>
<a class="jxr_linenumber" name="493" href="#493">493</a>
<a class="jxr_linenumber" name="494" href="#494">494</a> ObjectGenerator gen = <strong class="jxr_keyword">new</strong> ObjectGenerator(fFactory, fNavSvc, fObjSvc, fRepSvc, fRepositoryId,
<a class="jxr_linenumber" name="495" href="#495">495</a> ObjectGenerator.ContentKind.LOREM_IPSUM_TEXT);
<a class="jxr_linenumber" name="496" href="#496">496</a> <strong class="jxr_keyword">int</strong> levels = 2; <em class="jxr_comment">// create a hierarchy with two levels</em>
<a class="jxr_linenumber" name="497" href="#497">497</a> <strong class="jxr_keyword">int</strong> childrenPerLevel = 2; <em class="jxr_comment">// create two folders on each level</em>
<a class="jxr_linenumber" name="498" href="#498">498</a>
<a class="jxr_linenumber" name="499" href="#499">499</a> gen.setNumberOfDocumentsToCreatePerFolder(1); <em class="jxr_comment">// create one document in</em>
<a class="jxr_linenumber" name="500" href="#500">500</a> <em class="jxr_comment">// each folder</em>
<a class="jxr_linenumber" name="501" href="#501">501</a>
<a class="jxr_linenumber" name="502" href="#502">502</a> <em class="jxr_comment">// Set the type id for all created documents:</em>
<a class="jxr_linenumber" name="503" href="#503">503</a> gen.setDocumentTypeId(TEST_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="504" href="#504">504</a>
<a class="jxr_linenumber" name="505" href="#505">505</a> <em class="jxr_comment">// Set the type id for all created folders:</em>
<a class="jxr_linenumber" name="506" href="#506">506</a> gen.setFolderTypeId(TEST_FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="507" href="#507">507</a>
<a class="jxr_linenumber" name="508" href="#508">508</a> <em class="jxr_comment">// set the properties the generator should fill with values for</em>
<a class="jxr_linenumber" name="509" href="#509">509</a> <em class="jxr_comment">// documents:</em>
<a class="jxr_linenumber" name="510" href="#510">510</a> <em class="jxr_comment">// Note: must be valid properties in type TEST_DOCUMENT_TYPE_ID</em>
<a class="jxr_linenumber" name="511" href="#511">511</a> List&lt;String&gt; propsToSet = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="512" href="#512">512</a> propsToSet.add(TEST_DOCUMENT_STRING_PROP_ID);
<a class="jxr_linenumber" name="513" href="#513">513</a> gen.setDocumentPropertiesToGenerate(propsToSet);
<a class="jxr_linenumber" name="514" href="#514">514</a>
<a class="jxr_linenumber" name="515" href="#515">515</a> <em class="jxr_comment">// set the properties the generator should fill with values for folders:</em>
<a class="jxr_linenumber" name="516" href="#516">516</a> <em class="jxr_comment">// Note: must be valid properties in type TEST_FOLDER_TYPE_ID</em>
<a class="jxr_linenumber" name="517" href="#517">517</a> propsToSet = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="518" href="#518">518</a> propsToSet.add(TEST_FOLDER_STRING_PROP_ID);
<a class="jxr_linenumber" name="519" href="#519">519</a> gen.setFolderPropertiesToGenerate(propsToSet);
<a class="jxr_linenumber" name="520" href="#520">520</a>
<a class="jxr_linenumber" name="521" href="#521">521</a> <em class="jxr_comment">// Build the tree</em>
<a class="jxr_linenumber" name="522" href="#522">522</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="523" href="#523">523</a> gen.createFolderHierachy(levels, childrenPerLevel, fRootFolderId);
<a class="jxr_linenumber" name="524" href="#524">524</a> <em class="jxr_comment">// Dump the tree</em>
<a class="jxr_linenumber" name="525" href="#525">525</a> gen.dumpFolder(fRootFolderId, <span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="526" href="#526">526</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="527" href="#527">527</a> fail(<span class="jxr_string">"Could not create folder hierarchy with documents. "</span> + e);
<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>
<a class="jxr_linenumber" name="531" href="#531">531</a> @Test
<a class="jxr_linenumber" name="532" href="#532">532</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteObject() {
<a class="jxr_linenumber" name="533" href="#533">533</a> log.info(<span class="jxr_string">"starting testDeleteObject() ..."</span>);
<a class="jxr_linenumber" name="534" href="#534">534</a> log.info(<span class="jxr_string">"Testing to delete a document"</span>);
<a class="jxr_linenumber" name="535" href="#535">535</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="536" href="#536">536</a> String id = createDocument(fRootFolderId, false);
<a class="jxr_linenumber" name="537" href="#537">537</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="538" href="#538">538</a> log.info(<span class="jxr_string">" createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="539" href="#539">539</a> }
<a class="jxr_linenumber" name="540" href="#540">540</a>
<a class="jxr_linenumber" name="541" href="#541">541</a> log.info(<span class="jxr_string">" getting object"</span>);
<a class="jxr_linenumber" name="542" href="#542">542</a> retrieveDocument(id);
<a class="jxr_linenumber" name="543" href="#543">543</a> log.info(<span class="jxr_string">" deleting object"</span>);
<a class="jxr_linenumber" name="544" href="#544">544</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="545" href="#545">545</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="546" href="#546">546</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="547" href="#547">547</a> fail(<span class="jxr_string">"deleteObject() for document failed with exception: "</span> + e);
<a class="jxr_linenumber" name="548" href="#548">548</a> }
<a class="jxr_linenumber" name="549" href="#549">549</a>
<a class="jxr_linenumber" name="550" href="#550">550</a> <em class="jxr_comment">// check that it does not exist anymore</em>
<a class="jxr_linenumber" name="551" href="#551">551</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="552" href="#552">552</a> fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="553" href="#553">553</a> fail(<span class="jxr_string">"object should not longer exist after it was deleted."</span>);
<a class="jxr_linenumber" name="554" href="#554">554</a> } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="555" href="#555">555</a> assertTrue(e instanceof CmisObjectNotFoundException);
<a class="jxr_linenumber" name="556" href="#556">556</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="557" href="#557">557</a> fail(<span class="jxr_string">"getting deleted object should raise CMISObjectNotFoundException, but got "</span> + e);
<a class="jxr_linenumber" name="558" href="#558">558</a> }
<a class="jxr_linenumber" name="559" href="#559">559</a>
<a class="jxr_linenumber" name="560" href="#560">560</a> log.info(<span class="jxr_string">"Testing to delete an empty folder"</span>);
<a class="jxr_linenumber" name="561" href="#561">561</a> <em class="jxr_comment">// create and delete an empty folder</em>
<a class="jxr_linenumber" name="562" href="#562">562</a> id = createFolder();
<a class="jxr_linenumber" name="563" href="#563">563</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="564" href="#564">564</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="565" href="#565">565</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="566" href="#566">566</a> fail(<span class="jxr_string">"deleteObject() for folder failed with exception: "</span> + e);
<a class="jxr_linenumber" name="567" href="#567">567</a> }
<a class="jxr_linenumber" name="568" href="#568">568</a> <em class="jxr_comment">// check that it does not exist anymore</em>
<a class="jxr_linenumber" name="569" href="#569">569</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="570" href="#570">570</a> fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="571" href="#571">571</a> fail(<span class="jxr_string">"object should not longer exist after it was deleted."</span>);
<a class="jxr_linenumber" name="572" href="#572">572</a> } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="573" href="#573">573</a> assertTrue(e instanceof CmisObjectNotFoundException);
<a class="jxr_linenumber" name="574" href="#574">574</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="575" href="#575">575</a> fail(<span class="jxr_string">"getting deleted object should raise CMISObjectNotFoundException, but got "</span> + e);
<a class="jxr_linenumber" name="576" href="#576">576</a> }
<a class="jxr_linenumber" name="577" href="#577">577</a>
<a class="jxr_linenumber" name="578" href="#578">578</a> <em class="jxr_comment">// create a folder with a document and delete should fail</em>
<a class="jxr_linenumber" name="579" href="#579">579</a> <em class="jxr_comment">// create and delete an empty folder</em>
<a class="jxr_linenumber" name="580" href="#580">580</a> log.info(<span class="jxr_string">"Testing to delete a folder with a contained document"</span>);
<a class="jxr_linenumber" name="581" href="#581">581</a> String folderId;
<a class="jxr_linenumber" name="582" href="#582">582</a> folderId = createFolder();
<a class="jxr_linenumber" name="583" href="#583">583</a> id = createDocument(folderId, false);
<a class="jxr_linenumber" name="584" href="#584">584</a>
<a class="jxr_linenumber" name="585" href="#585">585</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="586" href="#586">586</a> fObjSvc.deleteObject(fRepositoryId, folderId, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="587" href="#587">587</a> fail(<span class="jxr_string">"deleteObject() for folder with a document should fail."</span>);
<a class="jxr_linenumber" name="588" href="#588">588</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="589" href="#589">589</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="590" href="#590">590</a> }
<a class="jxr_linenumber" name="591" href="#591">591</a> <em class="jxr_comment">// should succeed if we first delete document then folder</em>
<a class="jxr_linenumber" name="592" href="#592">592</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="593" href="#593">593</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="594" href="#594">594</a> fObjSvc.deleteObject(fRepositoryId, folderId, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="595" href="#595">595</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="596" href="#596">596</a> fail(<span class="jxr_string">"deleteObject() for document and folder failed with exception: "</span> + e);
<a class="jxr_linenumber" name="597" href="#597">597</a> }
<a class="jxr_linenumber" name="598" href="#598">598</a> <em class="jxr_comment">// check that it does not exist anymore</em>
<a class="jxr_linenumber" name="599" href="#599">599</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="600" href="#600">600</a> fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="601" href="#601">601</a> fail(<span class="jxr_string">"object should not longer exist after it was deleted."</span>);
<a class="jxr_linenumber" name="602" href="#602">602</a> } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="603" href="#603">603</a> assertTrue(e instanceof CmisObjectNotFoundException);
<a class="jxr_linenumber" name="604" href="#604">604</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="605" href="#605">605</a> fail(<span class="jxr_string">"getting deleted object should raise CMISObjectNotFoundException, but got "</span> + e);
<a class="jxr_linenumber" name="606" href="#606">606</a> }
<a class="jxr_linenumber" name="607" href="#607">607</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="608" href="#608">608</a> fObjSvc.getObject(fRepositoryId, folderId, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="609" href="#609">609</a> fail(<span class="jxr_string">"object should not longer exist after it was deleted."</span>);
<a class="jxr_linenumber" name="610" href="#610">610</a> } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="611" href="#611">611</a> assertTrue(e instanceof CmisObjectNotFoundException);
<a class="jxr_linenumber" name="612" href="#612">612</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="613" href="#613">613</a> fail(<span class="jxr_string">"getting deleted object should raise CMISObjectNotFoundException, but got "</span> + e);
<a class="jxr_linenumber" name="614" href="#614">614</a> }
<a class="jxr_linenumber" name="615" href="#615">615</a> log.info(<span class="jxr_string">"... testDeleteObject() finished."</span>);
<a class="jxr_linenumber" name="616" href="#616">616</a> }
<a class="jxr_linenumber" name="617" href="#617">617</a>
<a class="jxr_linenumber" name="618" href="#618">618</a> @Test
<a class="jxr_linenumber" name="619" href="#619">619</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteTree() {
<a class="jxr_linenumber" name="620" href="#620">620</a> log.info(<span class="jxr_string">"starting testDeleteTree() ..."</span>);
<a class="jxr_linenumber" name="621" href="#621">621</a> ObjectGenerator gen = <strong class="jxr_keyword">new</strong> ObjectGenerator(fFactory, fNavSvc, fObjSvc, fRepSvc, fRepositoryId,
<a class="jxr_linenumber" name="622" href="#622">622</a> ObjectGenerator.ContentKind.LOREM_IPSUM_TEXT);
<a class="jxr_linenumber" name="623" href="#623">623</a> String rootFolderId = createFolder();
<a class="jxr_linenumber" name="624" href="#624">624</a> <em class="jxr_comment">// Set the type id for all created documents:</em>
<a class="jxr_linenumber" name="625" href="#625">625</a> gen.setDocumentTypeId(DocumentTypeCreationHelper.getCmisDocumentType().getId());
<a class="jxr_linenumber" name="626" href="#626">626</a> <em class="jxr_comment">// Set the type id for all created folders:</em>
<a class="jxr_linenumber" name="627" href="#627">627</a> gen.setFolderTypeId(DocumentTypeCreationHelper.getCmisFolderType().getId());
<a class="jxr_linenumber" name="628" href="#628">628</a> gen.setNumberOfDocumentsToCreatePerFolder(2); <em class="jxr_comment">// create two documents in</em>
<a class="jxr_linenumber" name="629" href="#629">629</a> <em class="jxr_comment">// each folder</em>
<a class="jxr_linenumber" name="630" href="#630">630</a> gen.createFolderHierachy(1, 1, rootFolderId);
<a class="jxr_linenumber" name="631" href="#631">631</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="632" href="#632">632</a> fObjSvc.deleteTree(fRepositoryId, rootFolderId, <strong class="jxr_keyword">null</strong> <em class="jxr_comment">/*<em class="jxr_comment"> true */</em>, UnfileObject.DELETE, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);</em>
<a class="jxr_linenumber" name="633" href="#633">633</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="634" href="#634">634</a> fail(<span class="jxr_string">"deleteTree failed unexpected. "</span> + e);
<a class="jxr_linenumber" name="635" href="#635">635</a> }
<a class="jxr_linenumber" name="636" href="#636">636</a> log.info(<span class="jxr_string">"Dumping folder, should only contain one empty folder under root"</span>);
<a class="jxr_linenumber" name="637" href="#637">637</a> gen.dumpFolder(fRootFolderId, <span class="jxr_string">"*"</span>);
<a class="jxr_linenumber" name="638" href="#638">638</a>
<a class="jxr_linenumber" name="639" href="#639">639</a> <em class="jxr_comment">// After that we should be not be able to get the root folder, because</em>
<a class="jxr_linenumber" name="640" href="#640">640</a> <em class="jxr_comment">// it should be deleted</em>
<a class="jxr_linenumber" name="641" href="#641">641</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="642" href="#642">642</a> fObjSvc.getObject(fRepositoryId, rootFolderId, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false,
<a class="jxr_linenumber" name="643" href="#643">643</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="644" href="#644">644</a> fail(<span class="jxr_string">"object should not longer exist after it was deleted."</span>);
<a class="jxr_linenumber" name="645" href="#645">645</a> } <strong class="jxr_keyword">catch</strong> (CmisObjectNotFoundException e) {
<a class="jxr_linenumber" name="646" href="#646">646</a> assertTrue(e instanceof CmisObjectNotFoundException);
<a class="jxr_linenumber" name="647" href="#647">647</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="648" href="#648">648</a> fail(<span class="jxr_string">"getting deleted object should raise CMISObjectNotFoundException, but got "</span> + e);
<a class="jxr_linenumber" name="649" href="#649">649</a> }
<a class="jxr_linenumber" name="650" href="#650">650</a> log.info(<span class="jxr_string">"... testDeleteTree() finished."</span>);
<a class="jxr_linenumber" name="651" href="#651">651</a> }
<a class="jxr_linenumber" name="652" href="#652">652</a>
<a class="jxr_linenumber" name="653" href="#653">653</a> @Test
<a class="jxr_linenumber" name="654" href="#654">654</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMoveFolder() {
<a class="jxr_linenumber" name="655" href="#655">655</a> log.info(<span class="jxr_string">"starting testMoveFolder() ..."</span>);
<a class="jxr_linenumber" name="656" href="#656">656</a> moveObjectTest(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="657" href="#657">657</a> log.info(<span class="jxr_string">"... testMoveFolder() finished."</span>);
<a class="jxr_linenumber" name="658" href="#658">658</a> }
<a class="jxr_linenumber" name="659" href="#659">659</a>
<a class="jxr_linenumber" name="660" href="#660">660</a> @Test
<a class="jxr_linenumber" name="661" href="#661">661</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMoveDocument() {
<a class="jxr_linenumber" name="662" href="#662">662</a> log.info(<span class="jxr_string">"starting testMoveDocument() ..."</span>);
<a class="jxr_linenumber" name="663" href="#663">663</a> moveObjectTest(false);
<a class="jxr_linenumber" name="664" href="#664">664</a> log.info(<span class="jxr_string">"... testMoveDocument() finished."</span>);
<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> @Test
<a class="jxr_linenumber" name="668" href="#668">668</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProperties() {
<a class="jxr_linenumber" name="669" href="#669">669</a> <em class="jxr_comment">// TODO add test rename root folder and non root folder (must be a</em>
<a class="jxr_linenumber" name="670" href="#670">670</a> <em class="jxr_comment">// folder)</em>
<a class="jxr_linenumber" name="671" href="#671">671</a> log.info(<span class="jxr_string">"starting testUpdateProperties() ..."</span>);
<a class="jxr_linenumber" name="672" href="#672">672</a> String oldChangeToken, newChangeToken;
<a class="jxr_linenumber" name="673" href="#673">673</a> String id = createDocumentWithCustomType(MY_CUSTOM_NAME, fRootFolderId, false);
<a class="jxr_linenumber" name="674" href="#674">674</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="675" href="#675">675</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="676" href="#676">676</a> }
<a class="jxr_linenumber" name="677" href="#677">677</a>
<a class="jxr_linenumber" name="678" href="#678">678</a> log.info(<span class="jxr_string">" getting object"</span>);
<a class="jxr_linenumber" name="679" href="#679">679</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="680" href="#680">680</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="681" href="#681">681</a> false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="682" href="#682">682</a> assertNotNull(res);
<a class="jxr_linenumber" name="683" href="#683">683</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="684" href="#684">684</a>
<a class="jxr_linenumber" name="685" href="#685">685</a> <em class="jxr_comment">// check returned properties</em>
<a class="jxr_linenumber" name="686" href="#686">686</a> <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; pd : props.values()) {
<a class="jxr_linenumber" name="687" href="#687">687</a> log.info(<span class="jxr_string">" return property id: "</span> + pd.getId() + <span class="jxr_string">", value: "</span> + pd.getValues());
<a class="jxr_linenumber" name="688" href="#688">688</a> }
<a class="jxr_linenumber" name="689" href="#689">689</a>
<a class="jxr_linenumber" name="690" href="#690">690</a> String returnedId = res.getId();
<a class="jxr_linenumber" name="691" href="#691">691</a> assertEquals(id, returnedId);
<a class="jxr_linenumber" name="692" href="#692">692</a> PropertyData&lt;?&gt; pd = props.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="693" href="#693">693</a> assertNotNull(pd);
<a class="jxr_linenumber" name="694" href="#694">694</a> assertEquals(MY_CUSTOM_NAME, pd.getFirstValue());
<a class="jxr_linenumber" name="695" href="#695">695</a> pd = props.get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="696" href="#696">696</a> assertEquals(TEST_CUSTOM_DOCUMENT_TYPE_ID, pd.getFirstValue());
<a class="jxr_linenumber" name="697" href="#697">697</a> pd = props.get(TEST_DOCUMENT_MY_STRING_PROP_ID);
<a class="jxr_linenumber" name="698" href="#698">698</a> assertEquals(<span class="jxr_string">"My pretty string"</span>, pd.getFirstValue());
<a class="jxr_linenumber" name="699" href="#699">699</a> pd = props.get(TEST_DOCUMENT_MY_INT_PROP_ID);
<a class="jxr_linenumber" name="700" href="#700">700</a> assertEquals(BigInteger.valueOf(4711), pd.getFirstValue());
<a class="jxr_linenumber" name="701" href="#701">701</a>
<a class="jxr_linenumber" name="702" href="#702">702</a> <em class="jxr_comment">// update properties:</em>
<a class="jxr_linenumber" name="703" href="#703">703</a> log.info(<span class="jxr_string">"updating property"</span>);
<a class="jxr_linenumber" name="704" href="#704">704</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="705" href="#705">705</a> <em class="jxr_comment">// properties.add(fFactory.createPropertyIdData(PropertyIds.CMIS_NAME</em>
<a class="jxr_linenumber" name="706" href="#706">706</a> <em class="jxr_comment">// , MY_CUSTOM_NAME));</em>
<a class="jxr_linenumber" name="707" href="#707">707</a> <em class="jxr_comment">// properties.add(fFactory.createPropertyIdData(PropertyIds.</em>
<a class="jxr_linenumber" name="708" href="#708">708</a> <em class="jxr_comment">// CMIS_OBJECT_TYPE_ID, TEST_CUSTOM_DOCUMENT_TYPE_ID));</em>
<a class="jxr_linenumber" name="709" href="#709">709</a> <em class="jxr_comment">// Generate some property values for custom attributes</em>
<a class="jxr_linenumber" name="710" href="#710">710</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, NEW_STRING_PROP_VAL));
<a class="jxr_linenumber" name="711" href="#711">711</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_INT_PROP_ID, NEW_INT_PROP_VAL));
<a class="jxr_linenumber" name="712" href="#712">712</a> Properties newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="713" href="#713">713</a>
<a class="jxr_linenumber" name="714" href="#714">714</a> Holder&lt;String&gt; idHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id);
<a class="jxr_linenumber" name="715" href="#715">715</a> Holder&lt;String&gt; changeTokenHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;();
<a class="jxr_linenumber" name="716" href="#716">716</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="717" href="#717">717</a> oldChangeToken = changeTokenHolder.getValue(); <em class="jxr_comment">// store for later</em>
<a class="jxr_linenumber" name="718" href="#718">718</a> verifyUpdatedProperties(id, MY_CUSTOM_NAME);
<a class="jxr_linenumber" name="719" href="#719">719</a>
<a class="jxr_linenumber" name="720" href="#720">720</a> <em class="jxr_comment">// Test delete properties</em>
<a class="jxr_linenumber" name="721" href="#721">721</a> log.info(<span class="jxr_string">"deleting property"</span>);
<a class="jxr_linenumber" name="722" href="#722">722</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="723" href="#723">723</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, (String) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="724" href="#724">724</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="725" href="#725">725</a> Thread.sleep(100); <em class="jxr_comment">// ensure new change token, timer resolution is</em>
<a class="jxr_linenumber" name="726" href="#726">726</a> <em class="jxr_comment">// not good enough</em>
<a class="jxr_linenumber" name="727" href="#727">727</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="728" href="#728">728</a> res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="729" href="#729">729</a> assertNotNull(res);
<a class="jxr_linenumber" name="730" href="#730">730</a> props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="731" href="#731">731</a> <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; pd2 : props.values()) {
<a class="jxr_linenumber" name="732" href="#732">732</a> log.info(<span class="jxr_string">" return property id: "</span> + pd2.getId() + <span class="jxr_string">", value: "</span> + pd2.getValues());
<a class="jxr_linenumber" name="733" href="#733">733</a> }
<a class="jxr_linenumber" name="734" href="#734">734</a> pd = props.get(TEST_DOCUMENT_MY_STRING_PROP_ID);
<a class="jxr_linenumber" name="735" href="#735">735</a> assertNull(pd.getFirstValue());
<a class="jxr_linenumber" name="736" href="#736">736</a> <em class="jxr_comment">// delete a required property and expect exception:</em>
<a class="jxr_linenumber" name="737" href="#737">737</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="738" href="#738">738</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_INT_PROP_ID, (BigInteger) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="739" href="#739">739</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="740" href="#740">740</a> idHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id);
<a class="jxr_linenumber" name="741" href="#741">741</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="742" href="#742">742</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="743" href="#743">743</a> fail(<span class="jxr_string">"Deleteing a required property should fail."</span>);
<a class="jxr_linenumber" name="744" href="#744">744</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="745" href="#745">745</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="746" href="#746">746</a> }
<a class="jxr_linenumber" name="747" href="#747">747</a>
<a class="jxr_linenumber" name="748" href="#748">748</a> <em class="jxr_comment">// Test violation of property definition constraints</em>
<a class="jxr_linenumber" name="749" href="#749">749</a> log.info(<span class="jxr_string">"Test violation of property definition constraints"</span>);
<a class="jxr_linenumber" name="750" href="#750">750</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="751" href="#751">751</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID,
<a class="jxr_linenumber" name="752" href="#752">752</a> <span class="jxr_string">"A very long String ABCDEFHIJKLMNOPQRSTUVWXYZ"</span>));
<a class="jxr_linenumber" name="753" href="#753">753</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="754" href="#754">754</a> idHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id);
<a class="jxr_linenumber" name="755" href="#755">755</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="756" href="#756">756</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="757" href="#757">757</a> fail(<span class="jxr_string">"Exceeding max String lengt h should fail."</span>);
<a class="jxr_linenumber" name="758" href="#758">758</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="759" href="#759">759</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="760" href="#760">760</a> }
<a class="jxr_linenumber" name="761" href="#761">761</a> <em class="jxr_comment">// Test stale token</em>
<a class="jxr_linenumber" name="762" href="#762">762</a> log.info(<span class="jxr_string">"Test stale token"</span>);
<a class="jxr_linenumber" name="763" href="#763">763</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="764" href="#764">764</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, <span class="jxr_string">"ABC"</span>));
<a class="jxr_linenumber" name="765" href="#765">765</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="766" href="#766">766</a> <em class="jxr_comment">// set outdated token</em>
<a class="jxr_linenumber" name="767" href="#767">767</a> newChangeToken = changeTokenHolder.getValue();
<a class="jxr_linenumber" name="768" href="#768">768</a> changeTokenHolder.setValue(oldChangeToken);
<a class="jxr_linenumber" name="769" href="#769">769</a> assertFalse(oldChangeToken.equals(newChangeToken));
<a class="jxr_linenumber" name="770" href="#770">770</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="771" href="#771">771</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="772" href="#772">772</a> fail(<span class="jxr_string">"Update with an outdated changeToken should fail."</span>);
<a class="jxr_linenumber" name="773" href="#773">773</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="774" href="#774">774</a> assertTrue(e instanceof CmisUpdateConflictException);
<a class="jxr_linenumber" name="775" href="#775">775</a> }
<a class="jxr_linenumber" name="776" href="#776">776</a>
<a class="jxr_linenumber" name="777" href="#777">777</a> <em class="jxr_comment">// test a rename</em>
<a class="jxr_linenumber" name="778" href="#778">778</a> log.info(<span class="jxr_string">"Test renaming"</span>);
<a class="jxr_linenumber" name="779" href="#779">779</a> <strong class="jxr_keyword">final</strong> String newName = <span class="jxr_string">"My Renamed Document"</span>; <em class="jxr_comment">// MY_CUSTOM_NAME</em>
<a class="jxr_linenumber" name="780" href="#780">780</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="781" href="#781">781</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, newName));
<a class="jxr_linenumber" name="782" href="#782">782</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="783" href="#783">783</a> changeTokenHolder.setValue(newChangeToken);
<a class="jxr_linenumber" name="784" href="#784">784</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="785" href="#785">785</a> id = idHolder.getValue(); <em class="jxr_comment">// note that id is path and has changed!</em>
<a class="jxr_linenumber" name="786" href="#786">786</a> res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="787" href="#787">787</a> assertNotNull(res);
<a class="jxr_linenumber" name="788" href="#788">788</a> props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="789" href="#789">789</a> pd = props.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="790" href="#790">790</a> assertNotNull(pd);
<a class="jxr_linenumber" name="791" href="#791">791</a> assertEquals(newName, pd.getFirstValue());
<a class="jxr_linenumber" name="792" href="#792">792</a>
<a class="jxr_linenumber" name="793" href="#793">793</a> <em class="jxr_comment">// test rename with a conflicting name</em>
<a class="jxr_linenumber" name="794" href="#794">794</a> createDocumentWithCustomType(MY_CUSTOM_NAME, fRootFolderId, false);
<a class="jxr_linenumber" name="795" href="#795">795</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="796" href="#796">796</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, MY_CUSTOM_NAME));
<a class="jxr_linenumber" name="797" href="#797">797</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="798" href="#798">798</a> <em class="jxr_comment">// now rename to old name</em>
<a class="jxr_linenumber" name="799" href="#799">799</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="800" href="#800">800</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="801" href="#801">801</a> fail(<span class="jxr_string">"Update with a conflicting name should fail."</span>);
<a class="jxr_linenumber" name="802" href="#802">802</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="803" href="#803">803</a> assertTrue(e instanceof CmisNameConstraintViolationException);
<a class="jxr_linenumber" name="804" href="#804">804</a> }
<a class="jxr_linenumber" name="805" href="#805">805</a>
<a class="jxr_linenumber" name="806" href="#806">806</a> <em class="jxr_comment">// test an invalid name</em>
<a class="jxr_linenumber" name="807" href="#807">807</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="808" href="#808">808</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, <span class="jxr_string">"Invalid/Name"</span>));
<a class="jxr_linenumber" name="809" href="#809">809</a> newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="810" href="#810">810</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="811" href="#811">811</a> fObjSvc.updateProperties(fRepositoryId, idHolder, changeTokenHolder, newProps, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="812" href="#812">812</a> fail(<span class="jxr_string">"Update with an invalid name should fail."</span>);
<a class="jxr_linenumber" name="813" href="#813">813</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="814" href="#814">814</a> assertTrue(e instanceof CmisInvalidArgumentException);
<a class="jxr_linenumber" name="815" href="#815">815</a> }
<a class="jxr_linenumber" name="816" href="#816">816</a>
<a class="jxr_linenumber" name="817" href="#817">817</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="818" href="#818">818</a> fail(<span class="jxr_string">"getObject() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="819" href="#819">819</a> }
<a class="jxr_linenumber" name="820" href="#820">820</a> log.info(<span class="jxr_string">"... testUpdateProperties() finished."</span>);
<a class="jxr_linenumber" name="821" href="#821">821</a> }
<a class="jxr_linenumber" name="822" href="#822">822</a>
<a class="jxr_linenumber" name="823" href="#823">823</a> @Test
<a class="jxr_linenumber" name="824" href="#824">824</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAllowableActions() {
<a class="jxr_linenumber" name="825" href="#825">825</a> log.info(<span class="jxr_string">"starting testAllowableActions() ..."</span>);
<a class="jxr_linenumber" name="826" href="#826">826</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> withContent = false;
<a class="jxr_linenumber" name="827" href="#827">827</a> String id = createDocument(fRootFolderId, withContent);
<a class="jxr_linenumber" name="828" href="#828">828</a>
<a class="jxr_linenumber" name="829" href="#829">829</a> <em class="jxr_comment">// get allowable actions via getObject</em>
<a class="jxr_linenumber" name="830" href="#830">830</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">true</strong>, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false,
<a class="jxr_linenumber" name="831" href="#831">831</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="832" href="#832">832</a> assertNotNull(res.getAllowableActions());
<a class="jxr_linenumber" name="833" href="#833">833</a> Set&lt;Action&gt; actions = res.getAllowableActions().getAllowableActions();
<a class="jxr_linenumber" name="834" href="#834">834</a> assertNotNull(actions);
<a class="jxr_linenumber" name="835" href="#835">835</a> verifyAllowableActionsDocument(actions, false, withContent);
<a class="jxr_linenumber" name="836" href="#836">836</a>
<a class="jxr_linenumber" name="837" href="#837">837</a> <em class="jxr_comment">// get allowable actions via getAllowableActions</em>
<a class="jxr_linenumber" name="838" href="#838">838</a> AllowableActions allowableActions = fObjSvc.getAllowableActions(fRepositoryId, id, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="839" href="#839">839</a> assertNotNull(allowableActions);
<a class="jxr_linenumber" name="840" href="#840">840</a> actions = allowableActions.getAllowableActions();
<a class="jxr_linenumber" name="841" href="#841">841</a> assertNotNull(actions);
<a class="jxr_linenumber" name="842" href="#842">842</a> verifyAllowableActionsDocument(actions, false, withContent);
<a class="jxr_linenumber" name="843" href="#843">843</a>
<a class="jxr_linenumber" name="844" href="#844">844</a> <em class="jxr_comment">// cleanup</em>
<a class="jxr_linenumber" name="845" href="#845">845</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="846" href="#846">846</a> log.info(<span class="jxr_string">"... testAllowableActions() finished."</span>);
<a class="jxr_linenumber" name="847" href="#847">847</a> }
<a class="jxr_linenumber" name="848" href="#848">848</a>
<a class="jxr_linenumber" name="849" href="#849">849</a> @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="850" href="#850">850</a> @Test
<a class="jxr_linenumber" name="851" href="#851">851</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultPropertiesDocument() {
<a class="jxr_linenumber" name="852" href="#852">852</a> log.info(<span class="jxr_string">"starting testDefaultPropertiesDocument() ..."</span>);
<a class="jxr_linenumber" name="853" href="#853">853</a> String id = createDocument(<span class="jxr_string">"DefPropDoc"</span>, fRootFolderId, TEST_DOC_TYPE_WITH_DEFAULTS_ID, false);
<a class="jxr_linenumber" name="854" href="#854">854</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="855" href="#855">855</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="856" href="#856">856</a> }
<a class="jxr_linenumber" name="857" href="#857">857</a> ObjectData res = getDocumentObjectData(id);
<a class="jxr_linenumber" name="858" href="#858">858</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="859" href="#859">859</a> PropertyData&lt;?&gt; pd = props.get(TEST_DOCUMENT_MY_INT_PROP_ID);
<a class="jxr_linenumber" name="860" href="#860">860</a> assertNotNull(pd);
<a class="jxr_linenumber" name="861" href="#861">861</a> Object bi = pd.getFirstValue();
<a class="jxr_linenumber" name="862" href="#862">862</a> assertNotNull(bi);
<a class="jxr_linenumber" name="863" href="#863">863</a> assertEquals(BigInteger.valueOf(100), bi);
<a class="jxr_linenumber" name="864" href="#864">864</a>
<a class="jxr_linenumber" name="865" href="#865">865</a> pd = props.get(TEST_DOCUMENT_MY_MULTI_STRING_PROP_ID);
<a class="jxr_linenumber" name="866" href="#866">866</a> assertNotNull(pd);
<a class="jxr_linenumber" name="867" href="#867">867</a> List&lt;String&gt; valueList = (List&lt;String&gt;) pd.getValues();
<a class="jxr_linenumber" name="868" href="#868">868</a> assertNotNull(valueList);
<a class="jxr_linenumber" name="869" href="#869">869</a> assertTrue(valueList.contains(<span class="jxr_string">"Apache"</span>));
<a class="jxr_linenumber" name="870" href="#870">870</a> assertTrue(valueList.contains(<span class="jxr_string">"CMIS"</span>));
<a class="jxr_linenumber" name="871" href="#871">871</a>
<a class="jxr_linenumber" name="872" href="#872">872</a> pd = props.get(TEST_DOCUMENT_MY_INT_PROP_ID_MANDATORY_DEFAULT);
<a class="jxr_linenumber" name="873" href="#873">873</a> assertNotNull(pd);
<a class="jxr_linenumber" name="874" href="#874">874</a> bi = pd.getFirstValue();
<a class="jxr_linenumber" name="875" href="#875">875</a> assertNotNull(bi);
<a class="jxr_linenumber" name="876" href="#876">876</a> assertEquals(BigInteger.valueOf(100), bi);
<a class="jxr_linenumber" name="877" href="#877">877</a>
<a class="jxr_linenumber" name="878" href="#878">878</a> log.info(<span class="jxr_string">"... testDefaultPropertiesDocument() finished."</span>);
<a class="jxr_linenumber" name="879" href="#879">879</a> }
<a class="jxr_linenumber" name="880" href="#880">880</a>
<a class="jxr_linenumber" name="881" href="#881">881</a> @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="882" href="#882">882</a> @Test
<a class="jxr_linenumber" name="883" href="#883">883</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultPropertiesFolder() {
<a class="jxr_linenumber" name="884" href="#884">884</a> log.info(<span class="jxr_string">"starting testDefaultPropertiesFolder() ..."</span>);
<a class="jxr_linenumber" name="885" href="#885">885</a> String id = createFolder(<span class="jxr_string">"DefPropFolder"</span>, fRootFolderId, TEST_FOLDER_TYPE_WITH_DEFAULTS_ID);
<a class="jxr_linenumber" name="886" href="#886">886</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="887" href="#887">887</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="888" href="#888">888</a> }
<a class="jxr_linenumber" name="889" href="#889">889</a> ObjectData res = getDocumentObjectData(id);
<a class="jxr_linenumber" name="890" href="#890">890</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="891" href="#891">891</a> PropertyData&lt;?&gt; pd = props.get(TEST_FOLDER_MY_INT_PROP_ID);
<a class="jxr_linenumber" name="892" href="#892">892</a> assertNotNull(pd);
<a class="jxr_linenumber" name="893" href="#893">893</a> Object bi = pd.getFirstValue();
<a class="jxr_linenumber" name="894" href="#894">894</a> assertNotNull(bi);
<a class="jxr_linenumber" name="895" href="#895">895</a> assertEquals(BigInteger.valueOf(100), bi);
<a class="jxr_linenumber" name="896" href="#896">896</a>
<a class="jxr_linenumber" name="897" href="#897">897</a> pd = props.get(TEST_FOLDER_MY_MULTI_STRING_PROP_ID);
<a class="jxr_linenumber" name="898" href="#898">898</a> assertNotNull(pd);
<a class="jxr_linenumber" name="899" href="#899">899</a> List&lt;String&gt; valueList = (List&lt;String&gt;) pd.getValues();
<a class="jxr_linenumber" name="900" href="#900">900</a> assertNotNull(valueList);
<a class="jxr_linenumber" name="901" href="#901">901</a> assertTrue(valueList.contains(<span class="jxr_string">"Apache"</span>));
<a class="jxr_linenumber" name="902" href="#902">902</a> assertTrue(valueList.contains(<span class="jxr_string">"CMIS"</span>));
<a class="jxr_linenumber" name="903" href="#903">903</a>
<a class="jxr_linenumber" name="904" href="#904">904</a> pd = props.get(TEST_FOLDER_MY_INT_PROP_ID_MANDATORY_DEFAULT);
<a class="jxr_linenumber" name="905" href="#905">905</a> assertNotNull(pd);
<a class="jxr_linenumber" name="906" href="#906">906</a> bi = pd.getFirstValue();
<a class="jxr_linenumber" name="907" href="#907">907</a> assertNotNull(bi);
<a class="jxr_linenumber" name="908" href="#908">908</a> assertEquals(BigInteger.valueOf(100), bi);
<a class="jxr_linenumber" name="909" href="#909">909</a>
<a class="jxr_linenumber" name="910" href="#910">910</a> log.info(<span class="jxr_string">"... testDefaultPropertiesFolder() finished."</span>);
<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> @Test
<a class="jxr_linenumber" name="914" href="#914">914</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetObjectNoObjectIdInFilter() {
<a class="jxr_linenumber" name="915" href="#915">915</a> log.info(<span class="jxr_string">"starting testGetObjectNoObjectIdInFilter() ..."</span>);
<a class="jxr_linenumber" name="916" href="#916">916</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="917" href="#917">917</a> String id = createDocument(fRootFolderId, false);
<a class="jxr_linenumber" name="918" href="#918">918</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="919" href="#919">919</a> log.info(<span class="jxr_string">" createDocument succeeded with created id: "</span> + id);
<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> log.info(<span class="jxr_string">" getting object"</span>);
<a class="jxr_linenumber" name="923" href="#923">923</a> String filter = PropertyIds.NAME + <span class="jxr_string">","</span> + PropertyIds.CREATION_DATE + <span class="jxr_string">","</span> + PropertyIds.LAST_MODIFICATION_DATE;
<a class="jxr_linenumber" name="924" href="#924">924</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id, filter, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="925" href="#925">925</a> false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="926" href="#926">926</a>
<a class="jxr_linenumber" name="927" href="#927">927</a> String returnedId = res.getId();
<a class="jxr_linenumber" name="928" href="#928">928</a> assertEquals(id, returnedId);
<a class="jxr_linenumber" name="929" href="#929">929</a> log.info(<span class="jxr_string">"... testGetObjectNoObjectIdInFilter() finished."</span>);
<a class="jxr_linenumber" name="930" href="#930">930</a> }
<a class="jxr_linenumber" name="931" href="#931">931</a>
<a class="jxr_linenumber" name="932" href="#932">932</a> @Test
<a class="jxr_linenumber" name="933" href="#933">933</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSpecialChars() {
<a class="jxr_linenumber" name="934" href="#934">934</a>
<a class="jxr_linenumber" name="935" href="#935">935</a> log.info(<span class="jxr_string">"starting testGetObjectByPath() with specal chars..."</span>);
<a class="jxr_linenumber" name="936" href="#936">936</a> log.info(<span class="jxr_string">" creating object"</span>);
<a class="jxr_linenumber" name="937" href="#937">937</a>
<a class="jxr_linenumber" name="938" href="#938">938</a> createDocument(<span class="jxr_string">"H������nschen"</span>, fRootFolderId, false);
<a class="jxr_linenumber" name="939" href="#939">939</a> log.info(<span class="jxr_string">" getting object by path with special chars"</span>);
<a class="jxr_linenumber" name="940" href="#940">940</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="941" href="#941">941</a> ObjectData res = fObjSvc.getObjectByPath(fRepositoryId, <span class="jxr_string">"/H������nschen"</span>, <span class="jxr_string">"*"</span>, false,
<a class="jxr_linenumber" name="942" href="#942">942</a> IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="943" href="#943">943</a> assertNotNull(res);
<a class="jxr_linenumber" name="944" href="#944">944</a> assertNotNull(res.getId());
<a class="jxr_linenumber" name="945" href="#945">945</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="946" href="#946">946</a> fail(<span class="jxr_string">"getObject() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="947" href="#947">947</a> }
<a class="jxr_linenumber" name="948" href="#948">948</a> }
<a class="jxr_linenumber" name="949" href="#949">949</a>
<a class="jxr_linenumber" name="950" href="#950">950</a> @Test
<a class="jxr_linenumber" name="951" href="#951">951</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNoContentAllowed() {
<a class="jxr_linenumber" name="952" href="#952">952</a> log.info(<span class="jxr_string">"starting testNoContentAllowed() ..."</span>);
<a class="jxr_linenumber" name="953" href="#953">953</a> String id = createDocument(<span class="jxr_string">"NoContentAllowedDoc1"</span>, fRootFolderId, TEST_CUSTOM_NO_CONTENT_TYPE_ID, false);
<a class="jxr_linenumber" name="954" href="#954">954</a> assertNotNull(id);
<a class="jxr_linenumber" name="955" href="#955">955</a>
<a class="jxr_linenumber" name="956" href="#956">956</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="957" href="#957">957</a> id = createDocumentNoCatch(<span class="jxr_string">"NoContentAllowedDoc2"</span>, fRootFolderId, TEST_CUSTOM_NO_CONTENT_TYPE_ID,
<a class="jxr_linenumber" name="958" href="#958">958</a> VersioningState.NONE, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="959" href="#959">959</a> fail(<span class="jxr_string">"Creating document with content and type allows no content should fail."</span>);
<a class="jxr_linenumber" name="960" href="#960">960</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="961" href="#961">961</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="962" href="#962">962</a> log.info(<span class="jxr_string">"Creating document with content for no-content type failed as expected."</span>);
<a class="jxr_linenumber" name="963" href="#963">963</a> }
<a class="jxr_linenumber" name="964" href="#964">964</a> log.info(<span class="jxr_string">"... testNoContentAllowed finished."</span>);
<a class="jxr_linenumber" name="965" href="#965">965</a> }
<a class="jxr_linenumber" name="966" href="#966">966</a>
<a class="jxr_linenumber" name="967" href="#967">967</a> @Test
<a class="jxr_linenumber" name="968" href="#968">968</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMustHaveContent() {
<a class="jxr_linenumber" name="969" href="#969">969</a> log.info(<span class="jxr_string">"starting testMustHaveContent() ..."</span>);
<a class="jxr_linenumber" name="970" href="#970">970</a> String id = createDocument(<span class="jxr_string">"MustHaveContentAllowedDoc1"</span>, fRootFolderId, TEST_CUSTOM_MUST_CONTENT_TYPE_ID, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="971" href="#971">971</a> assertNotNull(id);
<a class="jxr_linenumber" name="972" href="#972">972</a>
<a class="jxr_linenumber" name="973" href="#973">973</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="974" href="#974">974</a> id = createDocumentNoCatch(<span class="jxr_string">"MustHaveContentAllowedDoc2"</span>, fRootFolderId, TEST_CUSTOM_MUST_CONTENT_TYPE_ID,
<a class="jxr_linenumber" name="975" href="#975">975</a> VersioningState.NONE, false);
<a class="jxr_linenumber" name="976" href="#976">976</a> fail(<span class="jxr_string">"Creating document without content and type requires content should fail."</span>);
<a class="jxr_linenumber" name="977" href="#977">977</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="978" href="#978">978</a> assertTrue(e instanceof CmisConstraintException);
<a class="jxr_linenumber" name="979" href="#979">979</a> log.info(<span class="jxr_string">"Creating document with content for must-have-content type failed as expected."</span>);
<a class="jxr_linenumber" name="980" href="#980">980</a> }
<a class="jxr_linenumber" name="981" href="#981">981</a> log.info(<span class="jxr_string">"... testMustHaveContent finished."</span>);
<a class="jxr_linenumber" name="982" href="#982">982</a> }
<a class="jxr_linenumber" name="983" href="#983">983</a>
<a class="jxr_linenumber" name="984" href="#984">984</a> @Test
<a class="jxr_linenumber" name="985" href="#985">985</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMaxContentSize() {
<a class="jxr_linenumber" name="986" href="#986">986</a> log.info(<span class="jxr_string">"starting testMaxContentSize() ..."</span>);
<a class="jxr_linenumber" name="987" href="#987">987</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="988" href="#988">988</a> createContent(MAX_SIZE + 1, MAX_SIZE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="989" href="#989">989</a> fail(<span class="jxr_string">"createContent with exceeded content size should fail."</span>);
<a class="jxr_linenumber" name="990" href="#990">990</a> } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="991" href="#991">991</a> log.debug(<span class="jxr_string">"createDocument with exceeded failed as excpected."</span>);
<a class="jxr_linenumber" name="992" href="#992">992</a> } <strong class="jxr_keyword">catch</strong> (Exception e1) {
<a class="jxr_linenumber" name="993" href="#993">993</a> log.debug(<span class="jxr_string">"createDocument with exceeded failed with wrong exception (expected CmisInvalidArgumentException, got "</span>
<a class="jxr_linenumber" name="994" href="#994">994</a> + e1.getClass().getName() + <span class="jxr_string">")."</span>);
<a class="jxr_linenumber" name="995" href="#995">995</a> }
<a class="jxr_linenumber" name="996" href="#996">996</a>
<a class="jxr_linenumber" name="997" href="#997">997</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="998" href="#998">998</a> ContentStream contentStream = createContent(MAX_SIZE + 1, MAX_SIZE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="999" href="#999">999</a> Properties props = createDocumentProperties(<span class="jxr_string">"TestMaxContentSize"</span>, DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1000" href="#1000">1000</a> fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, contentStream, VersioningState.NONE, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1001" href="#1001">1001</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1002" href="#1002">1002</a> fail(<span class="jxr_string">"createDocument with exceeded content size should fail."</span>);
<a class="jxr_linenumber" name="1003" href="#1003">1003</a> } <strong class="jxr_keyword">catch</strong> (CmisInvalidArgumentException e) {
<a class="jxr_linenumber" name="1004" href="#1004">1004</a> log.debug(<span class="jxr_string">"createDocument with exceeded failed as expected."</span>);
<a class="jxr_linenumber" name="1005" href="#1005">1005</a> } <strong class="jxr_keyword">catch</strong> (Exception e1) {
<a class="jxr_linenumber" name="1006" href="#1006">1006</a> log.debug(<span class="jxr_string">"createDocument with exceeded failed with wrong exception (expected CmisInvalidArgumentException, got "</span>
<a class="jxr_linenumber" name="1007" href="#1007">1007</a> + e1.getClass().getName() + <span class="jxr_string">")."</span>);
<a class="jxr_linenumber" name="1008" href="#1008">1008</a> }
<a class="jxr_linenumber" name="1009" href="#1009">1009</a> }
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>
<a class="jxr_linenumber" name="1011" href="#1011">1011</a> @Test
<a class="jxr_linenumber" name="1012" href="#1012">1012</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRenditionImage() {
<a class="jxr_linenumber" name="1013" href="#1013">1013</a> <em class="jxr_comment">// upload an image as JPEG picture</em>
<a class="jxr_linenumber" name="1014" href="#1014">1014</a> log.info(<span class="jxr_string">"starting testRendition() ..."</span>);
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>
<a class="jxr_linenumber" name="1016" href="#1016">1016</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1017" href="#1017">1017</a> InputStream imageStream = <strong class="jxr_keyword">this</strong>.getClass().getResourceAsStream(<span class="jxr_string">"/image.jpg"</span>);
<a class="jxr_linenumber" name="1018" href="#1018">1018</a> assertNotNull(<span class="jxr_string">"Test setup failure no 'image.jpg' in test resources, getResourceAsStream failed"</span>,
<a class="jxr_linenumber" name="1019" href="#1019">1019</a> imageStream);
<a class="jxr_linenumber" name="1020" href="#1020">1020</a> String id = createDocumentFromStream(<span class="jxr_string">"TestJpegImage"</span>, fRootFolderId, DOCUMENT_TYPE_ID, imageStream, JPEG);
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>
<a class="jxr_linenumber" name="1022" href="#1022">1022</a> assertNotNull(id);
<a class="jxr_linenumber" name="1023" href="#1023">1023</a> String renditionFilter = <span class="jxr_string">"*"</span>;
<a class="jxr_linenumber" name="1024" href="#1024">1024</a> List&lt;RenditionData&gt; renditions = fObjSvc
<a class="jxr_linenumber" name="1025" href="#1025">1025</a> .getRenditions(fRepositoryId, id, renditionFilter, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1026" href="#1026">1026</a> assertNotNull(renditions);
<a class="jxr_linenumber" name="1027" href="#1027">1027</a> assertEquals(1, renditions.size());
<a class="jxr_linenumber" name="1028" href="#1028">1028</a> RenditionData rd = renditions.get(0);
<a class="jxr_linenumber" name="1029" href="#1029">1029</a> assertEquals(JPEG, rd.getMimeType());
<a class="jxr_linenumber" name="1030" href="#1030">1030</a> assertEquals(<span class="jxr_string">"cmis:thumbnail"</span>, rd.getKind());
<a class="jxr_linenumber" name="1031" href="#1031">1031</a> assertEquals(id, rd.getRenditionDocumentId());
<a class="jxr_linenumber" name="1032" href="#1032">1032</a> assertNotNull(rd.getBigHeight());
<a class="jxr_linenumber" name="1033" href="#1033">1033</a> assertNotNull(rd.getBigWidth());
<a class="jxr_linenumber" name="1034" href="#1034">1034</a> assertEquals(RenditionUtil.THUMBNAIL_SIZE, rd.getBigHeight().longValue());
<a class="jxr_linenumber" name="1035" href="#1035">1035</a> assertEquals(RenditionUtil.THUMBNAIL_SIZE, rd.getBigWidth().longValue());
<a class="jxr_linenumber" name="1036" href="#1036">1036</a> assertNotNull(rd.getStreamId());
<a class="jxr_linenumber" name="1037" href="#1037">1037</a> ContentStream renditionContent = fObjSvc.getContentStream(fRepositoryId, id, rd.getStreamId(), <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1038" href="#1038">1038</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1039" href="#1039">1039</a> assertEquals(rd.getMimeType(), renditionContent.getMimeType());
<a class="jxr_linenumber" name="1040" href="#1040">1040</a> readThumbnailStream(renditionContent.getStream());
<a class="jxr_linenumber" name="1041" href="#1041">1041</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1042" href="#1042">1042</a> log.error(<span class="jxr_string">"testRendition failed with exception "</span>, e);
<a class="jxr_linenumber" name="1043" href="#1043">1043</a> fail(<span class="jxr_string">"testRendition failed with exceetion "</span> + e);
<a class="jxr_linenumber" name="1044" href="#1044">1044</a> }
<a class="jxr_linenumber" name="1045" href="#1045">1045</a> log.info(<span class="jxr_string">"... testRendition finished."</span>);
<a class="jxr_linenumber" name="1046" href="#1046">1046</a> }
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>
<a class="jxr_linenumber" name="1048" href="#1048">1048</a> @Test
<a class="jxr_linenumber" name="1049" href="#1049">1049</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRenditionIcon() {
<a class="jxr_linenumber" name="1050" href="#1050">1050</a> <em class="jxr_comment">// fake an office document</em>
<a class="jxr_linenumber" name="1051" href="#1051">1051</a> log.info(<span class="jxr_string">"starting testRendition() ..."</span>);
<a class="jxr_linenumber" name="1052" href="#1052">1052</a>
<a class="jxr_linenumber" name="1053" href="#1053">1053</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1054" href="#1054">1054</a> ContentStream content = createContent(4, 0,
<a class="jxr_linenumber" name="1055" href="#1055">1055</a> <span class="jxr_string">"application/vnd.openxmlformats-officedocument.wordprocessingml.document"</span>);
<a class="jxr_linenumber" name="1056" href="#1056">1056</a> Properties props = createDocumentProperties(<span class="jxr_string">"TestJOffice"</span>, DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1057" href="#1057">1057</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, content, VersioningState.NONE,
<a class="jxr_linenumber" name="1058" href="#1058">1058</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>
<a class="jxr_linenumber" name="1060" href="#1060">1060</a> assertNotNull(id);
<a class="jxr_linenumber" name="1061" href="#1061">1061</a> String renditionFilter = <span class="jxr_string">"*"</span>;
<a class="jxr_linenumber" name="1062" href="#1062">1062</a> List&lt;RenditionData&gt; renditions = fObjSvc
<a class="jxr_linenumber" name="1063" href="#1063">1063</a> .getRenditions(fRepositoryId, id, renditionFilter, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1064" href="#1064">1064</a> assertNotNull(renditions);
<a class="jxr_linenumber" name="1065" href="#1065">1065</a> assertEquals(1, renditions.size());
<a class="jxr_linenumber" name="1066" href="#1066">1066</a> RenditionData rd = renditions.get(0);
<a class="jxr_linenumber" name="1067" href="#1067">1067</a> assertEquals(PNG, rd.getMimeType());
<a class="jxr_linenumber" name="1068" href="#1068">1068</a> assertEquals(<span class="jxr_string">"cmis:thumbnail"</span>, rd.getKind());
<a class="jxr_linenumber" name="1069" href="#1069">1069</a> assertEquals(id, rd.getRenditionDocumentId());
<a class="jxr_linenumber" name="1070" href="#1070">1070</a> assertNotNull(rd.getBigHeight());
<a class="jxr_linenumber" name="1071" href="#1071">1071</a> assertNotNull(rd.getBigWidth());
<a class="jxr_linenumber" name="1072" href="#1072">1072</a> assertEquals(RenditionUtil.ICON_SIZE, rd.getBigHeight().longValue());
<a class="jxr_linenumber" name="1073" href="#1073">1073</a> assertEquals(RenditionUtil.ICON_SIZE, rd.getBigWidth().longValue());
<a class="jxr_linenumber" name="1074" href="#1074">1074</a> assertNotNull(rd.getStreamId());
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> ContentStream renditionContent = fObjSvc.getContentStream(fRepositoryId, id, rd.getStreamId(), <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1076" href="#1076">1076</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1077" href="#1077">1077</a> assertEquals(rd.getMimeType(), renditionContent.getMimeType());
<a class="jxr_linenumber" name="1078" href="#1078">1078</a> readThumbnailStream(renditionContent.getStream());
<a class="jxr_linenumber" name="1079" href="#1079">1079</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1080" href="#1080">1080</a> log.error(<span class="jxr_string">"testRendition failed with exception "</span>, e);
<a class="jxr_linenumber" name="1081" href="#1081">1081</a> fail(<span class="jxr_string">"testRendition failed with exceetion "</span> + e);
<a class="jxr_linenumber" name="1082" href="#1082">1082</a> }
<a class="jxr_linenumber" name="1083" href="#1083">1083</a> log.info(<span class="jxr_string">"... testRendition finished."</span>);
<a class="jxr_linenumber" name="1084" href="#1084">1084</a> }
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>
<a class="jxr_linenumber" name="1086" href="#1086">1086</a> @Test
<a class="jxr_linenumber" name="1087" href="#1087">1087</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testFolderRendition() {
<a class="jxr_linenumber" name="1088" href="#1088">1088</a> <em class="jxr_comment">// upload an image as JPEG picture</em>
<a class="jxr_linenumber" name="1089" href="#1089">1089</a> log.info(<span class="jxr_string">"starting testFolderRendition() ..."</span>);
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>
<a class="jxr_linenumber" name="1091" href="#1091">1091</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1092" href="#1092">1092</a> InputStream imageStream = <strong class="jxr_keyword">this</strong>.getClass().getResourceAsStream(<span class="jxr_string">"/image.jpg"</span>);
<a class="jxr_linenumber" name="1093" href="#1093">1093</a> assertNotNull(<span class="jxr_string">"Test setup failure no 'image.jpg' in test resources, getResourceAsStream failed"</span>,
<a class="jxr_linenumber" name="1094" href="#1094">1094</a> imageStream);
<a class="jxr_linenumber" name="1095" href="#1095">1095</a> String id = createFolder();
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>
<a class="jxr_linenumber" name="1097" href="#1097">1097</a> assertNotNull(id);
<a class="jxr_linenumber" name="1098" href="#1098">1098</a> String renditionFilter = <span class="jxr_string">"*"</span>;
<a class="jxr_linenumber" name="1099" href="#1099">1099</a> List&lt;RenditionData&gt; renditions = fObjSvc
<a class="jxr_linenumber" name="1100" href="#1100">1100</a> .getRenditions(fRepositoryId, id, renditionFilter, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1101" href="#1101">1101</a> assertNotNull(renditions);
<a class="jxr_linenumber" name="1102" href="#1102">1102</a> assertEquals(1, renditions.size());
<a class="jxr_linenumber" name="1103" href="#1103">1103</a> RenditionData rd = renditions.get(0);
<a class="jxr_linenumber" name="1104" href="#1104">1104</a> assertEquals(PNG, rd.getMimeType());
<a class="jxr_linenumber" name="1105" href="#1105">1105</a> assertEquals(<span class="jxr_string">"cmis:thumbnail"</span>, rd.getKind());
<a class="jxr_linenumber" name="1106" href="#1106">1106</a> assertEquals(id, rd.getRenditionDocumentId());
<a class="jxr_linenumber" name="1107" href="#1107">1107</a> assertNotNull(rd.getBigHeight());
<a class="jxr_linenumber" name="1108" href="#1108">1108</a> assertNotNull(rd.getBigWidth());
<a class="jxr_linenumber" name="1109" href="#1109">1109</a> assertEquals(RenditionUtil.ICON_SIZE, rd.getBigHeight().longValue());
<a class="jxr_linenumber" name="1110" href="#1110">1110</a> assertEquals(RenditionUtil.ICON_SIZE, rd.getBigWidth().longValue());
<a class="jxr_linenumber" name="1111" href="#1111">1111</a> assertNotNull(rd.getStreamId());
<a class="jxr_linenumber" name="1112" href="#1112">1112</a> ContentStream renditionContent = fObjSvc.getContentStream(fRepositoryId, id, rd.getStreamId(), <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1113" href="#1113">1113</a> <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1114" href="#1114">1114</a> assertEquals(rd.getMimeType(), renditionContent.getMimeType());
<a class="jxr_linenumber" name="1115" href="#1115">1115</a> readThumbnailStream(renditionContent.getStream());
<a class="jxr_linenumber" name="1116" href="#1116">1116</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1117" href="#1117">1117</a> log.error(<span class="jxr_string">"testFolderRendition failed with exception "</span>, e);
<a class="jxr_linenumber" name="1118" href="#1118">1118</a> fail(<span class="jxr_string">"testFolderRendition failed with exceetion "</span> + e);
<a class="jxr_linenumber" name="1119" href="#1119">1119</a> }
<a class="jxr_linenumber" name="1120" href="#1120">1120</a> log.info(<span class="jxr_string">"... testFolderRendition finished."</span>);
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>
<a class="jxr_linenumber" name="1122" href="#1122">1122</a> }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>
<a class="jxr_linenumber" name="1124" href="#1124">1124</a> @Test
<a class="jxr_linenumber" name="1125" href="#1125">1125</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAppendContent() {
<a class="jxr_linenumber" name="1126" href="#1126">1126</a> log.info(<span class="jxr_string">"starting testAppendContent() ..."</span>);
<a class="jxr_linenumber" name="1127" href="#1127">1127</a> String id = createDocument(fRootFolderId, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1128" href="#1128">1128</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1129" href="#1129">1129</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="1130" href="#1130">1130</a> }
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>
<a class="jxr_linenumber" name="1132" href="#1132">1132</a> <em class="jxr_comment">// append content again in a second call</em>
<a class="jxr_linenumber" name="1133" href="#1133">1133</a> Holder&lt;String&gt; idHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id);
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>
<a class="jxr_linenumber" name="1135" href="#1135">1135</a> ContentStream contentStream = createContent();
<a class="jxr_linenumber" name="1136" href="#1136">1136</a> fObjSvc.appendContentStream(fRepositoryId, idHolder, <strong class="jxr_keyword">null</strong>, contentStream, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1137" href="#1137">1137</a> ContentStream sd = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1138" href="#1138">1138</a> verifyContentResult(sd, 64);
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>
<a class="jxr_linenumber" name="1140" href="#1140">1140</a> <em class="jxr_comment">// cleanup</em>
<a class="jxr_linenumber" name="1141" href="#1141">1141</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1142" href="#1142">1142</a>
<a class="jxr_linenumber" name="1143" href="#1143">1143</a> log.info(<span class="jxr_string">"... testAppendContent() finished."</span>);
<a class="jxr_linenumber" name="1144" href="#1144">1144</a> }
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>
<a class="jxr_linenumber" name="1146" href="#1146">1146</a> @Test
<a class="jxr_linenumber" name="1147" href="#1147">1147</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetPartialContent() <strong class="jxr_keyword">throws</strong> IOException, UnsupportedEncodingException {
<a class="jxr_linenumber" name="1148" href="#1148">1148</a> log.info(<span class="jxr_string">"starting testGetPartialContent() ..."</span>);
<a class="jxr_linenumber" name="1149" href="#1149">1149</a> <strong class="jxr_keyword">final</strong> String STREAM_NAME = <span class="jxr_string">"data.txt"</span>;
<a class="jxr_linenumber" name="1150" href="#1150">1150</a> <strong class="jxr_keyword">final</strong> String MIME_TYPE = <span class="jxr_string">"text/plain"</span>;
<a class="jxr_linenumber" name="1151" href="#1151">1151</a> <em class="jxr_comment">// append content again in a second call</em>
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>
<a class="jxr_linenumber" name="1153" href="#1153">1153</a> ContentStreamDataImpl content = <strong class="jxr_keyword">new</strong> ContentStreamDataImpl(-1);
<a class="jxr_linenumber" name="1154" href="#1154">1154</a> content.setFileName(STREAM_NAME);
<a class="jxr_linenumber" name="1155" href="#1155">1155</a> content.setMimeType(MIME_TYPE);
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>
<a class="jxr_linenumber" name="1157" href="#1157">1157</a> String prefix = <span class="jxr_string">"################ ~~~~This is a completeley irrelevant prefix header. ~~~~ ################"</span>;
<a class="jxr_linenumber" name="1158" href="#1158">1158</a> String main = <span class="jxr_string">"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est."</span>;
<a class="jxr_linenumber" name="1159" href="#1159">1159</a> String postfix = <span class="jxr_string">"################ ~~~~POSTFIX Please ignore POSTFIX POSTFIX POSTFIX ~~~~ ################"</span>;
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>
<a class="jxr_linenumber" name="1161" href="#1161">1161</a> ByteArrayOutputStream ba = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a class="jxr_linenumber" name="1162" href="#1162">1162</a> PrintStream printStream = <strong class="jxr_keyword">new</strong> PrintStream(ba, false, ENCODING_UTF8);
<a class="jxr_linenumber" name="1163" href="#1163">1163</a> printStream.println(prefix);
<a class="jxr_linenumber" name="1164" href="#1164">1164</a> printStream.println(main);
<a class="jxr_linenumber" name="1165" href="#1165">1165</a> printStream.println(postfix);
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>
<a class="jxr_linenumber" name="1167" href="#1167">1167</a> content.setContent(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(ba.toByteArray()));
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>
<a class="jxr_linenumber" name="1169" href="#1169">1169</a> <em class="jxr_comment">// Create document with content</em>
<a class="jxr_linenumber" name="1170" href="#1170">1170</a> Properties props = createDocumentProperties(<span class="jxr_string">"PartialContentTest"</span>, BaseTypeId.CMIS_DOCUMENT.value());
<a class="jxr_linenumber" name="1171" href="#1171">1171</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, content, VersioningState.NONE, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1172" href="#1172">1172</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1173" href="#1173">1173</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1174" href="#1174">1174</a> log.info(<span class="jxr_string">"createDocument succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="1175" href="#1175">1175</a> }
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>
<a class="jxr_linenumber" name="1177" href="#1177">1177</a> <strong class="jxr_keyword">int</strong> offset = prefix.length() + System.getProperty(<span class="jxr_string">"line.separator"</span>).length(); <em class="jxr_comment">// for</em>
<a class="jxr_linenumber" name="1178" href="#1178">1178</a> <em class="jxr_comment">// \n</em>
<a class="jxr_linenumber" name="1179" href="#1179">1179</a> <strong class="jxr_keyword">int</strong> length = main.length();
<a class="jxr_linenumber" name="1180" href="#1180">1180</a> ContentStream readContent = fObjSvc.getContentStream(fRepositoryId, id, <strong class="jxr_keyword">null</strong>, BigInteger.valueOf(offset),
<a class="jxr_linenumber" name="1181" href="#1181">1181</a> BigInteger.valueOf(length), <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>
<a class="jxr_linenumber" name="1183" href="#1183">1183</a> assertEquals(MIME_TYPE, readContent.getMimeType());
<a class="jxr_linenumber" name="1184" href="#1184">1184</a> assertEquals(STREAM_NAME, readContent.getFileName());
<a class="jxr_linenumber" name="1185" href="#1185">1185</a> assertEquals(length, readContent.getBigLength().longValue());
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>
<a class="jxr_linenumber" name="1187" href="#1187">1187</a> byte[] bytesRead = <strong class="jxr_keyword">new</strong> byte[10240];
<a class="jxr_linenumber" name="1188" href="#1188">1188</a> InputStream is = readContent.getStream();
<a class="jxr_linenumber" name="1189" href="#1189">1189</a> <strong class="jxr_keyword">int</strong> lengthRead = is.read(bytesRead);
<a class="jxr_linenumber" name="1190" href="#1190">1190</a> String result = <strong class="jxr_keyword">new</strong> String(bytesRead, 0, lengthRead, ENCODING_UTF8);
<a class="jxr_linenumber" name="1191" href="#1191">1191</a> assertEquals(length, lengthRead);
<a class="jxr_linenumber" name="1192" href="#1192">1192</a> assertEquals(main, result);
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>
<a class="jxr_linenumber" name="1194" href="#1194">1194</a> <em class="jxr_comment">// cleanup</em>
<a class="jxr_linenumber" name="1195" href="#1195">1195</a> fObjSvc.deleteObject(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>
<a class="jxr_linenumber" name="1197" href="#1197">1197</a> log.info(<span class="jxr_string">"... testGetPartialContent() finished."</span>);
<a class="jxr_linenumber" name="1198" href="#1198">1198</a> }
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>
<a class="jxr_linenumber" name="1200" href="#1200">1200</a> @Test
<a class="jxr_linenumber" name="1201" href="#1201">1201</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBulkUpdateProperties() {
<a class="jxr_linenumber" name="1202" href="#1202">1202</a> log.info(<span class="jxr_string">"starting testBulkUpdateProperties() ..."</span>);
<a class="jxr_linenumber" name="1203" href="#1203">1203</a> String MY_CUSTOM_NAME_2 = MY_CUSTOM_NAME + <span class="jxr_string">"_2"</span>;
<a class="jxr_linenumber" name="1204" href="#1204">1204</a> String id1 = createDocumentWithCustomType(MY_CUSTOM_NAME, fRootFolderId, false);
<a class="jxr_linenumber" name="1205" href="#1205">1205</a> String id2 = createDocumentWithCustomType(MY_CUSTOM_NAME_2, fRootFolderId, false);
<a class="jxr_linenumber" name="1206" href="#1206">1206</a> String changeToken1, changeToken2;
<a class="jxr_linenumber" name="1207" href="#1207">1207</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1208" href="#1208">1208</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id1, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="1209" href="#1209">1209</a> false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1210" href="#1210">1210</a> assertNotNull(res);
<a class="jxr_linenumber" name="1211" href="#1211">1211</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="1212" href="#1212">1212</a> changeToken1 = (String) props.get(PropertyIds.CHANGE_TOKEN).getFirstValue();
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>
<a class="jxr_linenumber" name="1214" href="#1214">1214</a> res = fObjSvc
<a class="jxr_linenumber" name="1215" href="#1215">1215</a> .getObject(fRepositoryId, id2, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1216" href="#1216">1216</a> assertNotNull(res);
<a class="jxr_linenumber" name="1217" href="#1217">1217</a> props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="1218" href="#1218">1218</a> changeToken2 = (String) props.get(PropertyIds.CHANGE_TOKEN).getFirstValue();
<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 returned properties</em>
<a class="jxr_linenumber" name="1221" href="#1221">1221</a> <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; pd : props.values()) {
<a class="jxr_linenumber" name="1222" href="#1222">1222</a> log.info(<span class="jxr_string">" return property id: "</span> + pd.getId() + <span class="jxr_string">", value: "</span> + pd.getValues());
<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">// update properties:</em>
<a class="jxr_linenumber" name="1226" href="#1226">1226</a> log.info(<span class="jxr_string">"updating property"</span>);
<a class="jxr_linenumber" name="1227" href="#1227">1227</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1228" href="#1228">1228</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, NEW_STRING_PROP_VAL));
<a class="jxr_linenumber" name="1229" href="#1229">1229</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_INT_PROP_ID, NEW_INT_PROP_VAL));
<a class="jxr_linenumber" name="1230" href="#1230">1230</a> Properties newProps = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1231" href="#1231">1231</a> <em class="jxr_comment">// wait some time to get a newer change token</em>
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>
<a class="jxr_linenumber" name="1233" href="#1233">1233</a> List&lt;BulkUpdateObjectIdAndChangeToken&gt; objs = <strong class="jxr_keyword">new</strong> ArrayList&lt;BulkUpdateObjectIdAndChangeToken&gt;();
<a class="jxr_linenumber" name="1234" href="#1234">1234</a> objs.add(<strong class="jxr_keyword">new</strong> BulkUpdateObjectIdAndChangeTokenImpl(id1, changeToken1));
<a class="jxr_linenumber" name="1235" href="#1235">1235</a> objs.add(<strong class="jxr_keyword">new</strong> BulkUpdateObjectIdAndChangeTokenImpl(id2, changeToken2));
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>
<a class="jxr_linenumber" name="1237" href="#1237">1237</a> List&lt;BulkUpdateObjectIdAndChangeToken&gt; newObjs;
<a class="jxr_linenumber" name="1238" href="#1238">1238</a> newObjs = fObjSvc.bulkUpdateProperties(fRepositoryId, objs, newProps, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1239" href="#1239">1239</a> assertNotNull(newObjs);
<a class="jxr_linenumber" name="1240" href="#1240">1240</a> assertEquals(objs.size(), newObjs.size());
<a class="jxr_linenumber" name="1241" href="#1241">1241</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; newObjs.size(); i++) {
<a class="jxr_linenumber" name="1242" href="#1242">1242</a> assertEquals(objs.get(i).getId(), newObjs.get(i).getId());
<a class="jxr_linenumber" name="1243" href="#1243">1243</a> assertTrue(!objs.get(i).getChangeToken().equals(newObjs.get(i).getChangeToken()));
<a class="jxr_linenumber" name="1244" href="#1244">1244</a> }
<a class="jxr_linenumber" name="1245" href="#1245">1245</a> <em class="jxr_comment">// check that new properties are set</em>
<a class="jxr_linenumber" name="1246" href="#1246">1246</a> verifyUpdatedProperties(id1, MY_CUSTOM_NAME);
<a class="jxr_linenumber" name="1247" href="#1247">1247</a> verifyUpdatedProperties(id2, MY_CUSTOM_NAME_2);
<a class="jxr_linenumber" name="1248" href="#1248">1248</a>
<a class="jxr_linenumber" name="1249" href="#1249">1249</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1250" href="#1250">1250</a> fail(<span class="jxr_string">"testBulkUpdateProperties() failed with exception: "</span> + e);
<a class="jxr_linenumber" name="1251" href="#1251">1251</a> }
<a class="jxr_linenumber" name="1252" href="#1252">1252</a> log.info(<span class="jxr_string">"... testBulkUpdateProperties() finished."</span>);
<a class="jxr_linenumber" name="1253" href="#1253">1253</a> }
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>
<a class="jxr_linenumber" name="1255" href="#1255">1255</a> <em class="jxr_comment">// CMIS 1.1: test item typpe</em>
<a class="jxr_linenumber" name="1256" href="#1256">1256</a> @Test
<a class="jxr_linenumber" name="1257" href="#1257">1257</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testItemCreation() {
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>
<a class="jxr_linenumber" name="1259" href="#1259">1259</a> log.info(<span class="jxr_string">"starting testItemCreation() ..."</span>);
<a class="jxr_linenumber" name="1260" href="#1260">1260</a> String propVal = <span class="jxr_string">"abc123"</span>;
<a class="jxr_linenumber" name="1261" href="#1261">1261</a> String name = <span class="jxr_string">"CoolItem"</span>;
<a class="jxr_linenumber" name="1262" href="#1262">1262</a> String id = createItem(name, fRootFolderId, propVal);
<a class="jxr_linenumber" name="1263" href="#1263">1263</a> <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1264" href="#1264">1264</a> log.info(<span class="jxr_string">"testItemCreation succeeded with created id: "</span> + id);
<a class="jxr_linenumber" name="1265" href="#1265">1265</a> }
<a class="jxr_linenumber" name="1266" href="#1266">1266</a> log.info(<span class="jxr_string">"... testCreateObject() finished."</span>);
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>
<a class="jxr_linenumber" name="1268" href="#1268">1268</a> <em class="jxr_comment">// read document again and check properties</em>
<a class="jxr_linenumber" name="1269" href="#1269">1269</a> ObjectData res = getDocumentObjectData(id);
<a class="jxr_linenumber" name="1270" href="#1270">1270</a> String returnedId = res.getId();
<a class="jxr_linenumber" name="1271" href="#1271">1271</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="1272" href="#1272">1272</a> testReturnedProperties(returnedId, name, TEST_ITEM_TYPE_ID, props);
<a class="jxr_linenumber" name="1273" href="#1273">1273</a> PropertyData&lt;?&gt; pd = props.get(ITEM_STRING_PROP);
<a class="jxr_linenumber" name="1274" href="#1274">1274</a> assertEquals(propVal, pd.getFirstValue());
<a class="jxr_linenumber" name="1275" href="#1275">1275</a> assertEquals(12, props.size()); <em class="jxr_comment">// should not contain all the document</em>
<a class="jxr_linenumber" name="1276" href="#1276">1276</a> <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="1277" href="#1277">1277</a> log.info(<span class="jxr_string">"... finished testItemCreation()"</span>);
<a class="jxr_linenumber" name="1278" href="#1278">1278</a> }
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>
<a class="jxr_linenumber" name="1280" href="#1280">1280</a> @Test
<a class="jxr_linenumber" name="1281" href="#1281">1281</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSecondaryTypes() {
<a class="jxr_linenumber" name="1282" href="#1282">1282</a> log.info(<span class="jxr_string">"starting testItemCreation() ..."</span>);
<a class="jxr_linenumber" name="1283" href="#1283">1283</a> <strong class="jxr_keyword">final</strong> String strPropVal = <span class="jxr_string">"Secondary"</span>;
<a class="jxr_linenumber" name="1284" href="#1284">1284</a> <strong class="jxr_keyword">final</strong> BigInteger intPropVal = BigInteger.valueOf(100);
<a class="jxr_linenumber" name="1285" href="#1285">1285</a> <strong class="jxr_keyword">final</strong> String primaryPropVal = <span class="jxr_string">"Sample Doc String Property"</span>;
<a class="jxr_linenumber" name="1286" href="#1286">1286</a>
<a class="jxr_linenumber" name="1287" href="#1287">1287</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1288" href="#1288">1288</a> properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, <span class="jxr_string">"ObjectWithSecondaryType"</span>));
<a class="jxr_linenumber" name="1289" href="#1289">1289</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1290" href="#1290">1290</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal));
<a class="jxr_linenumber" name="1291" href="#1291">1291</a> properties.add(fFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, TEST_SECONDARY_TYPE_ID));
<a class="jxr_linenumber" name="1292" href="#1292">1292</a> properties.add(fFactory.createPropertyStringData(SECONDARY_STRING_PROP, strPropVal));
<a class="jxr_linenumber" name="1293" href="#1293">1293</a> properties.add(fFactory.createPropertyIntegerData(SECONDARY_INTEGER_PROP, intPropVal));
<a class="jxr_linenumber" name="1294" href="#1294">1294</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1295" href="#1295">1295</a>
<a class="jxr_linenumber" name="1296" href="#1296">1296</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1297" href="#1297">1297</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1298" href="#1298">1298</a> assertNotNull(id);
<a class="jxr_linenumber" name="1299" href="#1299">1299</a>
<a class="jxr_linenumber" name="1300" href="#1300">1300</a> Properties res = fObjSvc.getProperties(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1301" href="#1301">1301</a> assertNotNull(res.getProperties());
<a class="jxr_linenumber" name="1302" href="#1302">1302</a> Map&lt;String, PropertyData&lt;?&gt;&gt; returnedProps = res.getProperties();
<a class="jxr_linenumber" name="1303" href="#1303">1303</a> assertNotNull(returnedProps);
<a class="jxr_linenumber" name="1304" href="#1304">1304</a> String returnedValueStr = (String) returnedProps.get(SECONDARY_STRING_PROP).getFirstValue();
<a class="jxr_linenumber" name="1305" href="#1305">1305</a> BigInteger returnedValueInt = (BigInteger) returnedProps.get(SECONDARY_INTEGER_PROP).getFirstValue();
<a class="jxr_linenumber" name="1306" href="#1306">1306</a> assertEquals(strPropVal, returnedValueStr);
<a class="jxr_linenumber" name="1307" href="#1307">1307</a> assertEquals(intPropVal, returnedValueInt);
<a class="jxr_linenumber" name="1308" href="#1308">1308</a> String returnedPrimaryPropVal = (String) returnedProps.get(TEST_DOCUMENT_STRING_PROP_ID).getFirstValue();
<a class="jxr_linenumber" name="1309" href="#1309">1309</a> assertEquals(primaryPropVal, returnedPrimaryPropVal);
<a class="jxr_linenumber" name="1310" href="#1310">1310</a>
<a class="jxr_linenumber" name="1311" href="#1311">1311</a> <em class="jxr_comment">// test updating properties</em>
<a class="jxr_linenumber" name="1312" href="#1312">1312</a> <strong class="jxr_keyword">final</strong> String strPropVal2 = <span class="jxr_string">"Secondary updated"</span>;
<a class="jxr_linenumber" name="1313" href="#1313">1313</a> <strong class="jxr_keyword">final</strong> String primaryPropVal2 = <span class="jxr_string">"Sample Doc String Property updated"</span>;
<a class="jxr_linenumber" name="1314" href="#1314">1314</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1315" href="#1315">1315</a> properties.add(fFactory.createPropertyStringData(SECONDARY_STRING_PROP, strPropVal2));
<a class="jxr_linenumber" name="1316" href="#1316">1316</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal2));
<a class="jxr_linenumber" name="1317" href="#1317">1317</a> props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1318" href="#1318">1318</a> fObjSvc.updateProperties(fRepositoryId, <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id), <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(), props, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1319" href="#1319">1319</a>
<a class="jxr_linenumber" name="1320" href="#1320">1320</a> res = fObjSvc.getProperties(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1321" href="#1321">1321</a> assertNotNull(res.getProperties());
<a class="jxr_linenumber" name="1322" href="#1322">1322</a> returnedProps = res.getProperties();
<a class="jxr_linenumber" name="1323" href="#1323">1323</a> assertNotNull(returnedProps);
<a class="jxr_linenumber" name="1324" href="#1324">1324</a> returnedValueStr = (String) returnedProps.get(SECONDARY_STRING_PROP).getFirstValue();
<a class="jxr_linenumber" name="1325" href="#1325">1325</a> returnedValueInt = (BigInteger) returnedProps.get(SECONDARY_INTEGER_PROP).getFirstValue();
<a class="jxr_linenumber" name="1326" href="#1326">1326</a> assertEquals(strPropVal2, returnedValueStr);
<a class="jxr_linenumber" name="1327" href="#1327">1327</a> assertEquals(intPropVal, returnedValueInt);
<a class="jxr_linenumber" name="1328" href="#1328">1328</a> returnedPrimaryPropVal = (String) returnedProps.get(TEST_DOCUMENT_STRING_PROP_ID).getFirstValue();
<a class="jxr_linenumber" name="1329" href="#1329">1329</a> assertEquals(primaryPropVal2, returnedPrimaryPropVal);
<a class="jxr_linenumber" name="1330" href="#1330">1330</a>
<a class="jxr_linenumber" name="1331" href="#1331">1331</a> log.info(<span class="jxr_string">"... finished testSecondaryTypes()"</span>);
<a class="jxr_linenumber" name="1332" href="#1332">1332</a> }
<a class="jxr_linenumber" name="1333" href="#1333">1333</a>
<a class="jxr_linenumber" name="1334" href="#1334">1334</a> @Test
<a class="jxr_linenumber" name="1335" href="#1335">1335</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSecondaryTypePropertiesNotSet() {
<a class="jxr_linenumber" name="1336" href="#1336">1336</a> log.info(<span class="jxr_string">"starting testSecondaryTypePropertiesNotSet() ..."</span>);
<a class="jxr_linenumber" name="1337" href="#1337">1337</a>
<a class="jxr_linenumber" name="1338" href="#1338">1338</a> <strong class="jxr_keyword">final</strong> String primaryPropVal = <span class="jxr_string">"Sample Doc String Property"</span>;
<a class="jxr_linenumber" name="1339" href="#1339">1339</a>
<a class="jxr_linenumber" name="1340" href="#1340">1340</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1341" href="#1341">1341</a> properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, <span class="jxr_string">"ObjectWithSecondaryType"</span>));
<a class="jxr_linenumber" name="1342" href="#1342">1342</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1343" href="#1343">1343</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal));
<a class="jxr_linenumber" name="1344" href="#1344">1344</a> properties.add(fFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, TEST_SECONDARY_TYPE_ID));
<a class="jxr_linenumber" name="1345" href="#1345">1345</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1346" href="#1346">1346</a>
<a class="jxr_linenumber" name="1347" href="#1347">1347</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1348" href="#1348">1348</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1349" href="#1349">1349</a> assertNotNull(id);
<a class="jxr_linenumber" name="1350" href="#1350">1350</a>
<a class="jxr_linenumber" name="1351" href="#1351">1351</a> Properties res = fObjSvc.getProperties(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1352" href="#1352">1352</a> assertNotNull(res.getProperties());
<a class="jxr_linenumber" name="1353" href="#1353">1353</a> Map&lt;String, PropertyData&lt;?&gt;&gt; returnedProps = res.getProperties();
<a class="jxr_linenumber" name="1354" href="#1354">1354</a> assertNotNull(returnedProps);
<a class="jxr_linenumber" name="1355" href="#1355">1355</a> <strong class="jxr_keyword">boolean</strong> hasProp = returnedProps.containsKey(SECONDARY_STRING_PROP);
<a class="jxr_linenumber" name="1356" href="#1356">1356</a> assertTrue(hasProp);
<a class="jxr_linenumber" name="1357" href="#1357">1357</a> hasProp = returnedProps.containsKey(SECONDARY_INTEGER_PROP);
<a class="jxr_linenumber" name="1358" href="#1358">1358</a> assertTrue(hasProp);
<a class="jxr_linenumber" name="1359" href="#1359">1359</a> PropertyData&lt;?&gt; returnedValue = returnedProps.get(SECONDARY_STRING_PROP);
<a class="jxr_linenumber" name="1360" href="#1360">1360</a> assertNotNull(returnedValue);
<a class="jxr_linenumber" name="1361" href="#1361">1361</a> assertTrue(returnedValue.getValues().isEmpty());
<a class="jxr_linenumber" name="1362" href="#1362">1362</a> returnedValue = returnedProps.get(SECONDARY_INTEGER_PROP);
<a class="jxr_linenumber" name="1363" href="#1363">1363</a> assertNotNull(returnedValue);
<a class="jxr_linenumber" name="1364" href="#1364">1364</a> assertTrue(returnedValue.getValues().isEmpty());
<a class="jxr_linenumber" name="1365" href="#1365">1365</a>
<a class="jxr_linenumber" name="1366" href="#1366">1366</a> log.info(<span class="jxr_string">"... finished testSecondaryTypePropertiesNotSet()"</span>);
<a class="jxr_linenumber" name="1367" href="#1367">1367</a> }
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>
<a class="jxr_linenumber" name="1369" href="#1369">1369</a> @Test
<a class="jxr_linenumber" name="1370" href="#1370">1370</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdatePropertiesWithTypeCreation() {
<a class="jxr_linenumber" name="1371" href="#1371">1371</a> <strong class="jxr_keyword">final</strong> String strPropVal = <span class="jxr_string">"Secondary"</span>;
<a class="jxr_linenumber" name="1372" href="#1372">1372</a> <strong class="jxr_keyword">final</strong> BigInteger intPropVal = BigInteger.valueOf(100);
<a class="jxr_linenumber" name="1373" href="#1373">1373</a> <strong class="jxr_keyword">final</strong> String primaryPropVal = <span class="jxr_string">"Sample Doc String Property"</span>;
<a class="jxr_linenumber" name="1374" href="#1374">1374</a> <strong class="jxr_keyword">final</strong> String primaryPropVal2 = <span class="jxr_string">"Sample Doc String Property updated"</span>;
<a class="jxr_linenumber" name="1375" href="#1375">1375</a>
<a class="jxr_linenumber" name="1376" href="#1376">1376</a> log.info(<span class="jxr_string">"starting testUpdatePropertiesWithTypeCreation() ..."</span>);
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>
<a class="jxr_linenumber" name="1378" href="#1378">1378</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1379" href="#1379">1379</a> properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, <span class="jxr_string">"SimpleDocument"</span>));
<a class="jxr_linenumber" name="1380" href="#1380">1380</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1381" href="#1381">1381</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal));
<a class="jxr_linenumber" name="1382" href="#1382">1382</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>
<a class="jxr_linenumber" name="1384" href="#1384">1384</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1385" href="#1385">1385</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1386" href="#1386">1386</a> assertNotNull(id);
<a class="jxr_linenumber" name="1387" href="#1387">1387</a>
<a class="jxr_linenumber" name="1388" href="#1388">1388</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1389" href="#1389">1389</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal2));
<a class="jxr_linenumber" name="1390" href="#1390">1390</a> properties.add(fFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, TEST_SECONDARY_TYPE_ID));
<a class="jxr_linenumber" name="1391" href="#1391">1391</a> properties.add(fFactory.createPropertyStringData(SECONDARY_STRING_PROP, strPropVal));
<a class="jxr_linenumber" name="1392" href="#1392">1392</a> properties.add(fFactory.createPropertyIntegerData(SECONDARY_INTEGER_PROP, intPropVal));
<a class="jxr_linenumber" name="1393" href="#1393">1393</a> props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1394" href="#1394">1394</a> fObjSvc.updateProperties(fRepositoryId, <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id), <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(), props, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>
<a class="jxr_linenumber" name="1396" href="#1396">1396</a> Properties res = fObjSvc.getProperties(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1397" href="#1397">1397</a> assertNotNull(res.getProperties());
<a class="jxr_linenumber" name="1398" href="#1398">1398</a> Map&lt;String, PropertyData&lt;?&gt;&gt; returnedProps = res.getProperties();
<a class="jxr_linenumber" name="1399" href="#1399">1399</a> assertNotNull(returnedProps);
<a class="jxr_linenumber" name="1400" href="#1400">1400</a> assertEquals(1, returnedProps.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS).getValues().size());
<a class="jxr_linenumber" name="1401" href="#1401">1401</a> String secIds = (String) returnedProps.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS).getFirstValue();
<a class="jxr_linenumber" name="1402" href="#1402">1402</a> assertEquals(TEST_SECONDARY_TYPE_ID, secIds);
<a class="jxr_linenumber" name="1403" href="#1403">1403</a> String returnedValueStr = (String) returnedProps.get(SECONDARY_STRING_PROP).getFirstValue();
<a class="jxr_linenumber" name="1404" href="#1404">1404</a> BigInteger returnedValueInt = (BigInteger) returnedProps.get(SECONDARY_INTEGER_PROP).getFirstValue();
<a class="jxr_linenumber" name="1405" href="#1405">1405</a> assertEquals(strPropVal, returnedValueStr);
<a class="jxr_linenumber" name="1406" href="#1406">1406</a> assertEquals(intPropVal, returnedValueInt);
<a class="jxr_linenumber" name="1407" href="#1407">1407</a> String returnedPrimaryPropVal = (String) returnedProps.get(TEST_DOCUMENT_STRING_PROP_ID).getFirstValue();
<a class="jxr_linenumber" name="1408" href="#1408">1408</a> assertEquals(primaryPropVal2, returnedPrimaryPropVal);
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>
<a class="jxr_linenumber" name="1410" href="#1410">1410</a> log.info(<span class="jxr_string">"... finished testUpdatePropertiesWithTypeCreation()"</span>);
<a class="jxr_linenumber" name="1411" href="#1411">1411</a> }
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>
<a class="jxr_linenumber" name="1413" href="#1413">1413</a> @Test
<a class="jxr_linenumber" name="1414" href="#1414">1414</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteSecondaryType() {
<a class="jxr_linenumber" name="1415" href="#1415">1415</a> <strong class="jxr_keyword">final</strong> String primaryPropVal = <span class="jxr_string">"Sample Doc String Property"</span>;
<a class="jxr_linenumber" name="1416" href="#1416">1416</a> <strong class="jxr_keyword">final</strong> String primaryPropVal2 = <span class="jxr_string">"Sample Doc String Property updated"</span>;
<a class="jxr_linenumber" name="1417" href="#1417">1417</a> <strong class="jxr_keyword">final</strong> String strPropVal = <span class="jxr_string">"Secondary"</span>;
<a class="jxr_linenumber" name="1418" href="#1418">1418</a> <strong class="jxr_keyword">final</strong> BigInteger intPropVal = BigInteger.valueOf(100);
<a class="jxr_linenumber" name="1419" href="#1419">1419</a>
<a class="jxr_linenumber" name="1420" href="#1420">1420</a> log.info(<span class="jxr_string">"starting testDeleteSecondaryType() ..."</span>);
<a class="jxr_linenumber" name="1421" href="#1421">1421</a>
<a class="jxr_linenumber" name="1422" href="#1422">1422</a> <em class="jxr_comment">// create a document with a secondary type</em>
<a class="jxr_linenumber" name="1423" href="#1423">1423</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1424" href="#1424">1424</a> properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, <span class="jxr_string">"ObjectWithSecondaryType"</span>));
<a class="jxr_linenumber" name="1425" href="#1425">1425</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1426" href="#1426">1426</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal));
<a class="jxr_linenumber" name="1427" href="#1427">1427</a> properties.add(fFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, TEST_SECONDARY_TYPE_ID));
<a class="jxr_linenumber" name="1428" href="#1428">1428</a> properties.add(fFactory.createPropertyStringData(SECONDARY_STRING_PROP, strPropVal));
<a class="jxr_linenumber" name="1429" href="#1429">1429</a> properties.add(fFactory.createPropertyIntegerData(SECONDARY_INTEGER_PROP, intPropVal));
<a class="jxr_linenumber" name="1430" href="#1430">1430</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1431" href="#1431">1431</a>
<a class="jxr_linenumber" name="1432" href="#1432">1432</a> String id = fObjSvc.createDocument(fRepositoryId, props, fRootFolderId, <strong class="jxr_keyword">null</strong>, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1433" href="#1433">1433</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1434" href="#1434">1434</a> assertNotNull(id);
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>
<a class="jxr_linenumber" name="1436" href="#1436">1436</a> <em class="jxr_comment">// delete the secondary type</em>
<a class="jxr_linenumber" name="1437" href="#1437">1437</a> properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1438" href="#1438">1438</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_STRING_PROP_ID, primaryPropVal2));
<a class="jxr_linenumber" name="1439" href="#1439">1439</a> properties.add(fFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, (String) <strong class="jxr_keyword">null</strong>)); <em class="jxr_comment">// set</em>
<a class="jxr_linenumber" name="1440" href="#1440">1440</a> <em class="jxr_comment">// list</em>
<a class="jxr_linenumber" name="1441" href="#1441">1441</a> <em class="jxr_comment">// to</em>
<a class="jxr_linenumber" name="1442" href="#1442">1442</a> <em class="jxr_comment">// empty</em>
<a class="jxr_linenumber" name="1443" href="#1443">1443</a> props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1444" href="#1444">1444</a> fObjSvc.updateProperties(fRepositoryId, <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(id), <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(), props, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>
<a class="jxr_linenumber" name="1446" href="#1446">1446</a> <em class="jxr_comment">// test that properties are gone</em>
<a class="jxr_linenumber" name="1447" href="#1447">1447</a> Properties res = fObjSvc.getProperties(fRepositoryId, id, <span class="jxr_string">"*"</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1448" href="#1448">1448</a> assertNotNull(res.getProperties());
<a class="jxr_linenumber" name="1449" href="#1449">1449</a> Map&lt;String, PropertyData&lt;?&gt;&gt; returnedProps = res.getProperties();
<a class="jxr_linenumber" name="1450" href="#1450">1450</a> assertNotNull(returnedProps);
<a class="jxr_linenumber" name="1451" href="#1451">1451</a> assertEquals(0, returnedProps.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS).getValues().size());
<a class="jxr_linenumber" name="1452" href="#1452">1452</a> PropertyData&lt;?&gt; pd = returnedProps.get(SECONDARY_STRING_PROP);
<a class="jxr_linenumber" name="1453" href="#1453">1453</a> assertNull(pd); <em class="jxr_comment">// property must not exist any longer</em>
<a class="jxr_linenumber" name="1454" href="#1454">1454</a> pd = returnedProps.get(SECONDARY_INTEGER_PROP);
<a class="jxr_linenumber" name="1455" href="#1455">1455</a> assertNull(pd); <em class="jxr_comment">// property must not exist any longer</em>
<a class="jxr_linenumber" name="1456" href="#1456">1456</a> String returnedPrimaryPropVal = (String) returnedProps.get(TEST_DOCUMENT_STRING_PROP_ID).getFirstValue();
<a class="jxr_linenumber" name="1457" href="#1457">1457</a> assertEquals(primaryPropVal2, returnedPrimaryPropVal); <em class="jxr_comment">// other</em>
<a class="jxr_linenumber" name="1458" href="#1458">1458</a> <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="1459" href="#1459">1459</a> <em class="jxr_comment">// should be</em>
<a class="jxr_linenumber" name="1460" href="#1460">1460</a> <em class="jxr_comment">// updated</em>
<a class="jxr_linenumber" name="1461" href="#1461">1461</a> <em class="jxr_comment">// test that system properties are there</em>
<a class="jxr_linenumber" name="1462" href="#1462">1462</a> pd = returnedProps.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="1463" href="#1463">1463</a> assertNotNull(pd);
<a class="jxr_linenumber" name="1464" href="#1464">1464</a> pd = returnedProps.get(PropertyIds.OBJECT_ID);
<a class="jxr_linenumber" name="1465" href="#1465">1465</a> assertNotNull(pd);
<a class="jxr_linenumber" name="1466" href="#1466">1466</a> pd = returnedProps.get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="1467" href="#1467">1467</a> assertNotNull(pd);
<a class="jxr_linenumber" name="1468" href="#1468">1468</a>
<a class="jxr_linenumber" name="1469" href="#1469">1469</a> log.info(<span class="jxr_string">"... finished testDeleteSecondaryType()"</span>);
<a class="jxr_linenumber" name="1470" href="#1470">1470</a> }
<a class="jxr_linenumber" name="1471" href="#1471">1471</a>
<a class="jxr_linenumber" name="1472" href="#1472">1472</a> <em class="jxr_comment">// TODO: test constraints on secondary types</em>
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>
<a class="jxr_linenumber" name="1474" href="#1474">1474</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> verifyUpdatedProperties(String id, String name) {
<a class="jxr_linenumber" name="1475" href="#1475">1475</a>
<a class="jxr_linenumber" name="1476" href="#1476">1476</a> ObjectData res = fObjSvc.getObject(fRepositoryId, id, <span class="jxr_string">"*"</span>, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="1477" href="#1477">1477</a> false, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1478" href="#1478">1478</a> assertNotNull(res);
<a class="jxr_linenumber" name="1479" href="#1479">1479</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props = res.getProperties().getProperties();
<a class="jxr_linenumber" name="1480" href="#1480">1480</a> <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; pd2 : props.values()) {
<a class="jxr_linenumber" name="1481" href="#1481">1481</a> log.info(<span class="jxr_string">" return property id: "</span> + pd2.getId() + <span class="jxr_string">", value: "</span> + pd2.getValues());
<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> PropertyData&lt;?&gt; pd;
<a class="jxr_linenumber" name="1485" href="#1485">1485</a> pd = props.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="1486" href="#1486">1486</a> assertNotNull(pd);
<a class="jxr_linenumber" name="1487" href="#1487">1487</a> assertEquals(name, pd.getFirstValue());
<a class="jxr_linenumber" name="1488" href="#1488">1488</a> pd = props.get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="1489" href="#1489">1489</a> assertEquals(TEST_CUSTOM_DOCUMENT_TYPE_ID, pd.getFirstValue());
<a class="jxr_linenumber" name="1490" href="#1490">1490</a> pd = props.get(TEST_DOCUMENT_MY_STRING_PROP_ID);
<a class="jxr_linenumber" name="1491" href="#1491">1491</a> assertEquals(NEW_STRING_PROP_VAL, pd.getFirstValue());
<a class="jxr_linenumber" name="1492" href="#1492">1492</a> pd = props.get(TEST_DOCUMENT_MY_INT_PROP_ID);
<a class="jxr_linenumber" name="1493" href="#1493">1493</a> assertEquals(NEW_INT_PROP_VAL, pd.getFirstValue());
<a class="jxr_linenumber" name="1494" href="#1494">1494</a> }
<a class="jxr_linenumber" name="1495" href="#1495">1495</a>
<a class="jxr_linenumber" name="1496" href="#1496">1496</a> <strong class="jxr_keyword">protected</strong> String createDocumentFromStream(String name, String folderId, String typeId, InputStream is,
<a class="jxr_linenumber" name="1497" href="#1497">1497</a> String contentType) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="1498" href="#1498">1498</a>
<a class="jxr_linenumber" name="1499" href="#1499">1499</a> Properties props = createDocumentProperties(name, typeId);
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>
<a class="jxr_linenumber" name="1501" href="#1501">1501</a> ContentStreamDataImpl content = <strong class="jxr_keyword">new</strong> ContentStreamDataImpl(0);
<a class="jxr_linenumber" name="1502" href="#1502">1502</a> content.setFileName(name);
<a class="jxr_linenumber" name="1503" href="#1503">1503</a> content.setMimeType(contentType);
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>
<a class="jxr_linenumber" name="1505" href="#1505">1505</a> ByteArrayOutputStream ba = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a class="jxr_linenumber" name="1506" href="#1506">1506</a>
<a class="jxr_linenumber" name="1507" href="#1507">1507</a> IOUtils.copy(is, ba, 64 * 1024);
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>
<a class="jxr_linenumber" name="1509" href="#1509">1509</a> content.setContent(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(ba.toByteArray()));
<a class="jxr_linenumber" name="1510" href="#1510">1510</a>
<a class="jxr_linenumber" name="1511" href="#1511">1511</a> String id = fObjSvc.createDocument(fRepositoryId, props, folderId, content, VersioningState.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="1512" href="#1512">1512</a> <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1513" href="#1513">1513</a> <strong class="jxr_keyword">return</strong> id;
<a class="jxr_linenumber" name="1514" href="#1514">1514</a> }
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>
<a class="jxr_linenumber" name="1516" href="#1516">1516</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> readThumbnailStream(InputStream stream) {
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>
<a class="jxr_linenumber" name="1518" href="#1518">1518</a> byte[] buffer = <strong class="jxr_keyword">new</strong> byte[65536];
<a class="jxr_linenumber" name="1519" href="#1519">1519</a> <strong class="jxr_keyword">int</strong> noBytesRead = 0;
<a class="jxr_linenumber" name="1520" href="#1520">1520</a> <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="1521" href="#1521">1521</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1522" href="#1522">1522</a> <strong class="jxr_keyword">while</strong> ((noBytesRead = stream.read(buffer)) &gt;= 0) {
<a class="jxr_linenumber" name="1523" href="#1523">1523</a> count += noBytesRead;
<a class="jxr_linenumber" name="1524" href="#1524">1524</a> }
<a class="jxr_linenumber" name="1525" href="#1525">1525</a> } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="1526" href="#1526">1526</a> e.printStackTrace();
<a class="jxr_linenumber" name="1527" href="#1527">1527</a> fail(<span class="jxr_string">"Reading rendition stream failed with exception "</span> + e);
<a class="jxr_linenumber" name="1528" href="#1528">1528</a> }
<a class="jxr_linenumber" name="1529" href="#1529">1529</a> assertTrue(count &gt; 0);
<a class="jxr_linenumber" name="1530" href="#1530">1530</a> }
<a class="jxr_linenumber" name="1531" href="#1531">1531</a>
<a class="jxr_linenumber" name="1532" href="#1532">1532</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> verifyAllowableActionsDocument(Set&lt;Action&gt; actions, <strong class="jxr_keyword">boolean</strong> isVersioned, <strong class="jxr_keyword">boolean</strong> hasContent) {
<a class="jxr_linenumber" name="1533" href="#1533">1533</a> assertTrue(actions.contains(Action.CAN_DELETE_OBJECT));
<a class="jxr_linenumber" name="1534" href="#1534">1534</a> assertTrue(actions.contains(Action.CAN_UPDATE_PROPERTIES));
<a class="jxr_linenumber" name="1535" href="#1535">1535</a> assertTrue(actions.contains(Action.CAN_GET_PROPERTIES));
<a class="jxr_linenumber" name="1536" href="#1536">1536</a> assertFalse(actions.contains(Action.CAN_GET_OBJECT_RELATIONSHIPS));
<a class="jxr_linenumber" name="1537" href="#1537">1537</a> assertTrue(actions.contains(Action.CAN_GET_OBJECT_PARENTS));
<a class="jxr_linenumber" name="1538" href="#1538">1538</a>
<a class="jxr_linenumber" name="1539" href="#1539">1539</a> assertFalse(actions.contains(Action.CAN_GET_FOLDER_PARENT));
<a class="jxr_linenumber" name="1540" href="#1540">1540</a> assertFalse(actions.contains(Action.CAN_GET_FOLDER_TREE));
<a class="jxr_linenumber" name="1541" href="#1541">1541</a> assertFalse(actions.contains(Action.CAN_GET_DESCENDANTS));
<a class="jxr_linenumber" name="1542" href="#1542">1542</a> assertTrue(actions.contains(Action.CAN_MOVE_OBJECT));
<a class="jxr_linenumber" name="1543" href="#1543">1543</a> <strong class="jxr_keyword">if</strong> (hasContent) {
<a class="jxr_linenumber" name="1544" href="#1544">1544</a> assertTrue(actions.contains(Action.CAN_DELETE_CONTENT_STREAM));
<a class="jxr_linenumber" name="1545" href="#1545">1545</a> assertTrue(actions.contains(Action.CAN_GET_CONTENT_STREAM));
<a class="jxr_linenumber" name="1546" href="#1546">1546</a> assertTrue(actions.contains(Action.CAN_GET_RENDITIONS));
<a class="jxr_linenumber" name="1547" href="#1547">1547</a> } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1548" href="#1548">1548</a> assertFalse(actions.contains(Action.CAN_DELETE_CONTENT_STREAM));
<a class="jxr_linenumber" name="1549" href="#1549">1549</a> assertFalse(actions.contains(Action.CAN_GET_CONTENT_STREAM));
<a class="jxr_linenumber" name="1550" href="#1550">1550</a> assertFalse(actions.contains(Action.CAN_GET_RENDITIONS));
<a class="jxr_linenumber" name="1551" href="#1551">1551</a> }
<a class="jxr_linenumber" name="1552" href="#1552">1552</a> assertTrue(actions.contains(Action.CAN_ADD_OBJECT_TO_FOLDER));
<a class="jxr_linenumber" name="1553" href="#1553">1553</a> assertTrue(actions.contains(Action.CAN_REMOVE_OBJECT_FROM_FOLDER));
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>
<a class="jxr_linenumber" name="1555" href="#1555">1555</a> <strong class="jxr_keyword">if</strong> (isVersioned) {
<a class="jxr_linenumber" name="1556" href="#1556">1556</a> assertTrue(actions.contains(Action.CAN_CANCEL_CHECK_OUT));
<a class="jxr_linenumber" name="1557" href="#1557">1557</a> assertTrue(actions.contains(Action.CAN_CHECK_IN));
<a class="jxr_linenumber" name="1558" href="#1558">1558</a> assertTrue(actions.contains(Action.CAN_CHECK_OUT));
<a class="jxr_linenumber" name="1559" href="#1559">1559</a> assertTrue(actions.contains(Action.CAN_GET_ALL_VERSIONS));
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>
<a class="jxr_linenumber" name="1561" href="#1561">1561</a> } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1562" href="#1562">1562</a> assertFalse(actions.contains(Action.CAN_CANCEL_CHECK_OUT));
<a class="jxr_linenumber" name="1563" href="#1563">1563</a> assertFalse(actions.contains(Action.CAN_CHECK_IN));
<a class="jxr_linenumber" name="1564" href="#1564">1564</a> assertFalse(actions.contains(Action.CAN_CHECK_OUT));
<a class="jxr_linenumber" name="1565" href="#1565">1565</a> assertFalse(actions.contains(Action.CAN_GET_ALL_VERSIONS));
<a class="jxr_linenumber" name="1566" href="#1566">1566</a> }
<a class="jxr_linenumber" name="1567" href="#1567">1567</a> assertTrue(actions.contains(Action.CAN_SET_CONTENT_STREAM));
<a class="jxr_linenumber" name="1568" href="#1568">1568</a> assertTrue(actions.contains(Action.CAN_APPLY_POLICY));
<a class="jxr_linenumber" name="1569" href="#1569">1569</a> assertTrue(actions.contains(Action.CAN_GET_APPLIED_POLICIES));
<a class="jxr_linenumber" name="1570" href="#1570">1570</a> assertFalse(actions.contains(Action.CAN_REMOVE_POLICY));
<a class="jxr_linenumber" name="1571" href="#1571">1571</a> assertFalse(actions.contains(Action.CAN_GET_CHILDREN));
<a class="jxr_linenumber" name="1572" href="#1572">1572</a> assertFalse(actions.contains(Action.CAN_CREATE_DOCUMENT));
<a class="jxr_linenumber" name="1573" href="#1573">1573</a> assertFalse(actions.contains(Action.CAN_CREATE_FOLDER));
<a class="jxr_linenumber" name="1574" href="#1574">1574</a> assertFalse(actions.contains(Action.CAN_CREATE_RELATIONSHIP));
<a class="jxr_linenumber" name="1575" href="#1575">1575</a> assertFalse(actions.contains(Action.CAN_DELETE_TREE));
<a class="jxr_linenumber" name="1576" href="#1576">1576</a> assertTrue(actions.contains(Action.CAN_GET_ACL));
<a class="jxr_linenumber" name="1577" href="#1577">1577</a> assertTrue(actions.contains(Action.CAN_APPLY_ACL));
<a class="jxr_linenumber" name="1578" href="#1578">1578</a> }
<a class="jxr_linenumber" name="1579" href="#1579">1579</a>
<a class="jxr_linenumber" name="1580" href="#1580">1580</a> <strong class="jxr_keyword">private</strong> String retrieveDocument(String id) {
<a class="jxr_linenumber" name="1581" href="#1581">1581</a> ObjectData res = getDocumentObjectData(id);
<a class="jxr_linenumber" name="1582" href="#1582">1582</a> String returnedId = res.getId();
<a class="jxr_linenumber" name="1583" href="#1583">1583</a> testReturnedProperties(returnedId, DOCUMENT_ID, DOCUMENT_TYPE_ID, res.getProperties().getProperties());
<a class="jxr_linenumber" name="1584" href="#1584">1584</a> <strong class="jxr_keyword">return</strong> returnedId;
<a class="jxr_linenumber" name="1585" href="#1585">1585</a> }
<a class="jxr_linenumber" name="1586" href="#1586">1586</a>
<a class="jxr_linenumber" name="1587" href="#1587">1587</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> moveObjectTest(<strong class="jxr_keyword">boolean</strong> isFolder) {
<a class="jxr_linenumber" name="1588" href="#1588">1588</a> <strong class="jxr_keyword">final</strong> String propertyFilter = PropertyIds.OBJECT_ID + <span class="jxr_string">","</span> + PropertyIds.NAME;
<a class="jxr_linenumber" name="1589" href="#1589">1589</a> String rootFolderId = createFolder();
<a class="jxr_linenumber" name="1590" href="#1590">1590</a> ObjectGenerator gen = <strong class="jxr_keyword">new</strong> ObjectGenerator(fFactory, fNavSvc, fObjSvc, fRepSvc, fRepositoryId,
<a class="jxr_linenumber" name="1591" href="#1591">1591</a> ObjectGenerator.ContentKind.LOREM_IPSUM_TEXT);
<a class="jxr_linenumber" name="1592" href="#1592">1592</a> <em class="jxr_comment">// Set the type id for all created documents:</em>
<a class="jxr_linenumber" name="1593" href="#1593">1593</a> gen.setDocumentTypeId(DocumentTypeCreationHelper.getCmisDocumentType().getId());
<a class="jxr_linenumber" name="1594" href="#1594">1594</a> <em class="jxr_comment">// Set the type id for all created folders:</em>
<a class="jxr_linenumber" name="1595" href="#1595">1595</a> gen.setNumberOfDocumentsToCreatePerFolder(1); <em class="jxr_comment">// create one document in</em>
<a class="jxr_linenumber" name="1596" href="#1596">1596</a> <em class="jxr_comment">// each folder</em>
<a class="jxr_linenumber" name="1597" href="#1597">1597</a> gen.createFolderHierachy(3, 2, rootFolderId);
<a class="jxr_linenumber" name="1598" href="#1598">1598</a> gen.setFolderTypeId(DocumentTypeCreationHelper.getCmisFolderType().getId());
<a class="jxr_linenumber" name="1599" href="#1599">1599</a> gen.dumpFolder(fRootFolderId, propertyFilter);
<a class="jxr_linenumber" name="1600" href="#1600">1600</a> Holder&lt;String&gt; holder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;();
<a class="jxr_linenumber" name="1601" href="#1601">1601</a> String sourceIdToMove = gen.getFolderId(rootFolderId, 2, 1);
<a class="jxr_linenumber" name="1602" href="#1602">1602</a> <strong class="jxr_keyword">if</strong> (!isFolder) {
<a class="jxr_linenumber" name="1603" href="#1603">1603</a> sourceIdToMove = gen.getDocumentId(sourceIdToMove, 0);
<a class="jxr_linenumber" name="1604" href="#1604">1604</a> }
<a class="jxr_linenumber" name="1605" href="#1605">1605</a> holder.setValue(sourceIdToMove); <em class="jxr_comment">// "/Folder_1/My Folder 0/My Folder 1");</em>
<a class="jxr_linenumber" name="1606" href="#1606">1606</a> String sourceFolderId = getSourceFolder(sourceIdToMove);
<a class="jxr_linenumber" name="1607" href="#1607">1607</a> log.info(<span class="jxr_string">"Id before moveObject: "</span> + holder.getValue());
<a class="jxr_linenumber" name="1608" href="#1608">1608</a> fObjSvc.moveObject(fRepositoryId, holder, rootFolderId, sourceFolderId, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1609" href="#1609">1609</a> log.info(<span class="jxr_string">"Id after moveObject: "</span> + holder.getValue());
<a class="jxr_linenumber" name="1610" href="#1610">1610</a> gen.dumpFolder(fRootFolderId, propertyFilter);
<a class="jxr_linenumber" name="1611" href="#1611">1611</a>
<a class="jxr_linenumber" name="1612" href="#1612">1612</a> List&lt;ObjectParentData&gt; result = fNavSvc.getObjectParents(fRepositoryId, holder.getValue(), <strong class="jxr_keyword">null</strong>, Boolean.FALSE,
<a class="jxr_linenumber" name="1613" href="#1613">1613</a> IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, Boolean.FALSE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1614" href="#1614">1614</a> <em class="jxr_comment">// check that new parent is set correctly</em>
<a class="jxr_linenumber" name="1615" href="#1615">1615</a> String newParentId = result.get(0).getObject().getId();
<a class="jxr_linenumber" name="1616" href="#1616">1616</a> assertEquals(rootFolderId, newParentId);
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>
<a class="jxr_linenumber" name="1618" href="#1618">1618</a> <strong class="jxr_keyword">if</strong> (isFolder) {
<a class="jxr_linenumber" name="1619" href="#1619">1619</a> log.info(<span class="jxr_string">"testing moveFolder to a subfolder"</span>);
<a class="jxr_linenumber" name="1620" href="#1620">1620</a> ObjectInFolderList ch = fNavSvc.getChildren(fRepositoryId, holder.getValue(), propertyFilter, <strong class="jxr_keyword">null</strong>, false,
<a class="jxr_linenumber" name="1621" href="#1621">1621</a> IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1622" href="#1622">1622</a> String subFolderId = ch.getObjects().get(0).getObject().getId();
<a class="jxr_linenumber" name="1623" href="#1623">1623</a>
<a class="jxr_linenumber" name="1624" href="#1624">1624</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1625" href="#1625">1625</a> fObjSvc.moveObject(fRepositoryId, holder, subFolderId, sourceFolderId, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1626" href="#1626">1626</a> fail(<span class="jxr_string">"moveObject to a folder that is a descendant of the source must fail."</span>);
<a class="jxr_linenumber" name="1627" href="#1627">1627</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1628" href="#1628">1628</a> assertTrue(e instanceof CmisNotSupportedException);
<a class="jxr_linenumber" name="1629" href="#1629">1629</a> }
<a class="jxr_linenumber" name="1630" href="#1630">1630</a> }
<a class="jxr_linenumber" name="1631" href="#1631">1631</a> }
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>
<a class="jxr_linenumber" name="1633" href="#1633">1633</a> <strong class="jxr_keyword">private</strong> String createFolder() {
<a class="jxr_linenumber" name="1634" href="#1634">1634</a> <strong class="jxr_keyword">return</strong> createFolder(FOLDER_ID, fRootFolderId, FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="1635" href="#1635">1635</a> }
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>
<a class="jxr_linenumber" name="1637" href="#1637">1637</a> <strong class="jxr_keyword">private</strong> String createDocument(String folderId, <strong class="jxr_keyword">boolean</strong> withContent) {
<a class="jxr_linenumber" name="1638" href="#1638">1638</a> <strong class="jxr_keyword">return</strong> createDocument(DOCUMENT_ID, folderId, withContent);
<a class="jxr_linenumber" name="1639" href="#1639">1639</a> }
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>
<a class="jxr_linenumber" name="1641" href="#1641">1641</a> <strong class="jxr_keyword">private</strong> String createDocument(String name, String folderId, <strong class="jxr_keyword">boolean</strong> withContent) {
<a class="jxr_linenumber" name="1642" href="#1642">1642</a> <strong class="jxr_keyword">return</strong> createDocument(name, folderId, DOCUMENT_TYPE_ID, withContent);
<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> <strong class="jxr_keyword">private</strong> String createItem(String name, String folderId, String itemPropVal) {
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>
<a class="jxr_linenumber" name="1647" href="#1647">1647</a> <em class="jxr_comment">// create the properties:</em>
<a class="jxr_linenumber" name="1648" href="#1648">1648</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1649" href="#1649">1649</a> properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, name));
<a class="jxr_linenumber" name="1650" href="#1650">1650</a> properties.add(fFactory.createPropertyStringData(ITEM_STRING_PROP, itemPropVal));
<a class="jxr_linenumber" name="1651" href="#1651">1651</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_ITEM_TYPE_ID));
<a class="jxr_linenumber" name="1652" href="#1652">1652</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1653" href="#1653">1653</a>
<a class="jxr_linenumber" name="1654" href="#1654">1654</a> <strong class="jxr_keyword">return</strong> fObjSvc.createItem(fRepositoryId, props, folderId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1655" href="#1655">1655</a> }
<a class="jxr_linenumber" name="1656" href="#1656">1656</a>
<a class="jxr_linenumber" name="1657" href="#1657">1657</a> <strong class="jxr_keyword">private</strong> Properties createDocumentPropertiesForDocumentFromSource(String name) {
<a class="jxr_linenumber" name="1658" href="#1658">1658</a> <em class="jxr_comment">// We only provide a name but not a type id, as spec says to copy</em>
<a class="jxr_linenumber" name="1659" href="#1659">1659</a> <em class="jxr_comment">// missing attributes</em>
<a class="jxr_linenumber" name="1660" href="#1660">1660</a> <em class="jxr_comment">// from the existing one</em>
<a class="jxr_linenumber" name="1661" href="#1661">1661</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1662" href="#1662">1662</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, name));
<a class="jxr_linenumber" name="1663" href="#1663">1663</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1664" href="#1664">1664</a> <strong class="jxr_keyword">return</strong> props;
<a class="jxr_linenumber" name="1665" href="#1665">1665</a> }
<a class="jxr_linenumber" name="1666" href="#1666">1666</a>
<a class="jxr_linenumber" name="1667" href="#1667">1667</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testReturnedProperties(String objectId, String objectName, String typeId,
<a class="jxr_linenumber" name="1668" href="#1668">1668</a> Map&lt;String, PropertyData&lt;?&gt;&gt; props) {
<a class="jxr_linenumber" name="1669" href="#1669">1669</a> <strong class="jxr_keyword">super</strong>.testReturnedProperties(objectId, props);
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>
<a class="jxr_linenumber" name="1671" href="#1671">1671</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != objectName) {
<a class="jxr_linenumber" name="1672" href="#1672">1672</a> PropertyData&lt;?&gt; pd = props.get(PropertyIds.NAME);
<a class="jxr_linenumber" name="1673" href="#1673">1673</a> assertNotNull(pd);
<a class="jxr_linenumber" name="1674" href="#1674">1674</a> assertEquals(objectName, pd.getFirstValue());
<a class="jxr_linenumber" name="1675" href="#1675">1675</a> }
<a class="jxr_linenumber" name="1676" href="#1676">1676</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != typeId) {
<a class="jxr_linenumber" name="1677" href="#1677">1677</a> PropertyData&lt;?&gt; pd = props.get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="1678" href="#1678">1678</a> assertEquals(typeId, pd.getFirstValue());
<a class="jxr_linenumber" name="1679" href="#1679">1679</a> }
<a class="jxr_linenumber" name="1680" href="#1680">1680</a> }
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>
<a class="jxr_linenumber" name="1682" href="#1682">1682</a> <strong class="jxr_keyword">private</strong> String createDocumentWithCustomType(String name, String folderId, <strong class="jxr_keyword">boolean</strong> withContent) {
<a class="jxr_linenumber" name="1683" href="#1683">1683</a> ContentStream contentStream = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1684" href="#1684">1684</a> VersioningState versioningState = VersioningState.NONE;
<a class="jxr_linenumber" name="1685" href="#1685">1685</a> List&lt;String&gt; policies = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1686" href="#1686">1686</a> Acl addACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1687" href="#1687">1687</a> Acl removeACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1688" href="#1688">1688</a> ExtensionsData extension = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1689" href="#1689">1689</a>
<a class="jxr_linenumber" name="1690" href="#1690">1690</a> <em class="jxr_comment">// create the properties:</em>
<a class="jxr_linenumber" name="1691" href="#1691">1691</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1692" href="#1692">1692</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, name));
<a class="jxr_linenumber" name="1693" href="#1693">1693</a> properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_CUSTOM_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1694" href="#1694">1694</a> <em class="jxr_comment">// Generate some property values for custom attributes</em>
<a class="jxr_linenumber" name="1695" href="#1695">1695</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, <span class="jxr_string">"My pretty string"</span>));
<a class="jxr_linenumber" name="1696" href="#1696">1696</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_INT_PROP_ID, BigInteger.valueOf(4711)));
<a class="jxr_linenumber" name="1697" href="#1697">1697</a>
<a class="jxr_linenumber" name="1698" href="#1698">1698</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1699" href="#1699">1699</a>
<a class="jxr_linenumber" name="1700" href="#1700">1700</a> <strong class="jxr_keyword">if</strong> (withContent) {
<a class="jxr_linenumber" name="1701" href="#1701">1701</a> contentStream = createContent();
<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> <em class="jxr_comment">// create the document</em>
<a class="jxr_linenumber" name="1705" href="#1705">1705</a> String id = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1706" href="#1706">1706</a> id = fObjSvc.createDocument(fRepositoryId, props, folderId, contentStream, versioningState, policies, addACEs,
<a class="jxr_linenumber" name="1707" href="#1707">1707</a> removeACEs, extension);
<a class="jxr_linenumber" name="1708" href="#1708">1708</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == id) {
<a class="jxr_linenumber" name="1709" href="#1709">1709</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"createDocument failed."</span>);
<a class="jxr_linenumber" name="1710" href="#1710">1710</a> }
<a class="jxr_linenumber" name="1711" href="#1711">1711</a> <strong class="jxr_keyword">return</strong> id;
<a class="jxr_linenumber" name="1712" href="#1712">1712</a> }
<a class="jxr_linenumber" name="1713" href="#1713">1713</a>
<a class="jxr_linenumber" name="1714" href="#1714">1714</a> <strong class="jxr_keyword">private</strong> String createDocumentInheritedProperties(String folderId, <strong class="jxr_keyword">boolean</strong> withContent) {
<a class="jxr_linenumber" name="1715" href="#1715">1715</a> ContentStream contentStream = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1716" href="#1716">1716</a> VersioningState versioningState = VersioningState.NONE;
<a class="jxr_linenumber" name="1717" href="#1717">1717</a> List&lt;String&gt; policies = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1718" href="#1718">1718</a> Acl addACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1719" href="#1719">1719</a> Acl removeACEs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1720" href="#1720">1720</a> ExtensionsData extension = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>
<a class="jxr_linenumber" name="1722" href="#1722">1722</a> <em class="jxr_comment">// create the properties:</em>
<a class="jxr_linenumber" name="1723" href="#1723">1723</a> List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1724" href="#1724">1724</a> properties.add(fFactory.createPropertyIdData(PropertyIds.NAME, MY_CUSTOM_NAME));
<a class="jxr_linenumber" name="1725" href="#1725">1725</a> properties.add(fFactory
<a class="jxr_linenumber" name="1726" href="#1726">1726</a> .createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, TEST_INHERITED_CUSTOM_DOCUMENT_TYPE_ID));
<a class="jxr_linenumber" name="1727" href="#1727">1727</a> <em class="jxr_comment">// Generate some property values for custom attributes</em>
<a class="jxr_linenumber" name="1728" href="#1728">1728</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_STRING_PROP_ID, <span class="jxr_string">"My pretty string"</span>));
<a class="jxr_linenumber" name="1729" href="#1729">1729</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_INT_PROP_ID, BigInteger.valueOf(4711)));
<a class="jxr_linenumber" name="1730" href="#1730">1730</a> properties.add(fFactory.createPropertyStringData(TEST_DOCUMENT_MY_SUB_STRING_PROP_ID, <span class="jxr_string">"another cool string"</span>));
<a class="jxr_linenumber" name="1731" href="#1731">1731</a> properties.add(fFactory.createPropertyIntegerData(TEST_DOCUMENT_MY_SUB_INT_PROP_ID, BigInteger.valueOf(4712)));
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>
<a class="jxr_linenumber" name="1733" href="#1733">1733</a> Properties props = fFactory.createPropertiesData(properties);
<a class="jxr_linenumber" name="1734" href="#1734">1734</a>
<a class="jxr_linenumber" name="1735" href="#1735">1735</a> <strong class="jxr_keyword">if</strong> (withContent) {
<a class="jxr_linenumber" name="1736" href="#1736">1736</a> contentStream = createContent();
<a class="jxr_linenumber" name="1737" href="#1737">1737</a> }
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>
<a class="jxr_linenumber" name="1739" href="#1739">1739</a> <em class="jxr_comment">// create the document</em>
<a class="jxr_linenumber" name="1740" href="#1740">1740</a> String id = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1741" href="#1741">1741</a> id = fObjSvc.createDocument(fRepositoryId, props, folderId, contentStream, versioningState, policies, addACEs,
<a class="jxr_linenumber" name="1742" href="#1742">1742</a> removeACEs, extension);
<a class="jxr_linenumber" name="1743" href="#1743">1743</a> <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == id) {
<a class="jxr_linenumber" name="1744" href="#1744">1744</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"createDocument failed."</span>);
<a class="jxr_linenumber" name="1745" href="#1745">1745</a> }
<a class="jxr_linenumber" name="1746" href="#1746">1746</a> <strong class="jxr_keyword">return</strong> id;
<a class="jxr_linenumber" name="1747" href="#1747">1747</a> }
<a class="jxr_linenumber" name="1748" href="#1748">1748</a>
<a class="jxr_linenumber" name="1749" href="#1749">1749</a> <strong class="jxr_keyword">private</strong> String getSourceFolder(String objectId) {
<a class="jxr_linenumber" name="1750" href="#1750">1750</a> <em class="jxr_comment">// return the first parent found in the result list of all parents</em>
<a class="jxr_linenumber" name="1751" href="#1751">1751</a> List&lt;ObjectParentData&gt; parents = fNavSvc.getObjectParents(fRepositoryId, objectId, <span class="jxr_string">"*"</span>, false,
<a class="jxr_linenumber" name="1752" href="#1752">1752</a> IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1753" href="#1753">1753</a> <strong class="jxr_keyword">return</strong> parents.get(0).getObject().getId();
<a class="jxr_linenumber" name="1754" href="#1754">1754</a> }
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>
<a class="jxr_linenumber" name="1756" href="#1756">1756</a> <em class="jxr_comment">// Helper class to create some type for testing the ObjectService</em>
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>
<a class="jxr_linenumber" name="1758" href="#1758">1758</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.html">ObjectTestTypeSystemCreator</a> <strong class="jxr_keyword">implements</strong> TypeCreator {
<a class="jxr_linenumber" name="1759" href="#1759">1759</a>
<a class="jxr_linenumber" name="1760" href="#1760">1760</a> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TypeDefinitionFactory typeFactory = DocumentTypeCreationHelper.getTypeDefinitionFactory();
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>
<a class="jxr_linenumber" name="1762" href="#1762">1762</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1763" href="#1763">1763</a> <em class="jxr_javadoccomment"> * create root types and a sample type for folder and document</em>
<a class="jxr_linenumber" name="1764" href="#1764">1764</a> <em class="jxr_javadoccomment"> * </em>
<a class="jxr_linenumber" name="1765" href="#1765">1765</a> <em class="jxr_javadoccomment"> * @return typesMap map filled with created types</em>
<a class="jxr_linenumber" name="1766" href="#1766">1766</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="1767" href="#1767">1767</a> @Override
<a class="jxr_linenumber" name="1768" href="#1768">1768</a> <strong class="jxr_keyword">public</strong> List&lt;TypeDefinition&gt; createTypesList() {
<a class="jxr_linenumber" name="1769" href="#1769">1769</a> List&lt;TypeDefinition&gt; typesList = <strong class="jxr_keyword">new</strong> LinkedList&lt;TypeDefinition&gt;();
<a class="jxr_linenumber" name="1770" href="#1770">1770</a>
<a class="jxr_linenumber" name="1771" href="#1771">1771</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1772" href="#1772">1772</a> MutableTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1773" href="#1773">1773</a> cmisDocumentType = typeFactory.createChildTypeDefinition(
<a class="jxr_linenumber" name="1774" href="#1774">1774</a> DocumentTypeCreationHelper.getCmisDocumentType(), TEST_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1775" href="#1775">1775</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"My Document Type"</span>);
<a class="jxr_linenumber" name="1776" href="#1776">1776</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1777" href="#1777">1777</a>
<a class="jxr_linenumber" name="1778" href="#1778">1778</a> MutableFolderTypeDefinition cmisFolderType;
<a class="jxr_linenumber" name="1779" href="#1779">1779</a> cmisFolderType = typeFactory.createFolderTypeDefinition(CmisVersion.CMIS_1_1,
<a class="jxr_linenumber" name="1780" href="#1780">1780</a> DocumentTypeCreationHelper.getCmisFolderType().getId());
<a class="jxr_linenumber" name="1781" href="#1781">1781</a> cmisFolderType.setId(TEST_FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="1782" href="#1782">1782</a> cmisFolderType.setDisplayName(<span class="jxr_string">"My Folder Type"</span>);
<a class="jxr_linenumber" name="1783" href="#1783">1783</a> cmisFolderType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_FOLDER_TYPE_ID);
<a class="jxr_linenumber" name="1784" href="#1784">1784</a> <em class="jxr_comment">// create a simple string property type and</em>
<a class="jxr_linenumber" name="1785" href="#1785">1785</a> <em class="jxr_comment">// attach the property definition to the type definition for</em>
<a class="jxr_linenumber" name="1786" href="#1786">1786</a> <em class="jxr_comment">// document and folder type</em>
<a class="jxr_linenumber" name="1787" href="#1787">1787</a> Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propertyDefinitions = <strong class="jxr_keyword">new</strong> HashMap&lt;String, PropertyDefinition&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1788" href="#1788">1788</a> PropertyStringDefinitionImpl prop = PropertyCreationHelper.createStringDefinition(
<a class="jxr_linenumber" name="1789" href="#1789">1789</a> TEST_DOCUMENT_STRING_PROP_ID, <span class="jxr_string">"Sample Doc String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1790" href="#1790">1790</a> propertyDefinitions.put(prop.getId(), prop);
<a class="jxr_linenumber" name="1791" href="#1791">1791</a> cmisDocumentType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1792" href="#1792">1792</a>
<a class="jxr_linenumber" name="1793" href="#1793">1793</a> propertyDefinitions = <strong class="jxr_keyword">new</strong> HashMap&lt;String, PropertyDefinition&lt;?&gt;&gt;();
<a class="jxr_linenumber" name="1794" href="#1794">1794</a> prop = PropertyCreationHelper.createStringDefinition(TEST_FOLDER_STRING_PROP_ID,
<a class="jxr_linenumber" name="1795" href="#1795">1795</a> <span class="jxr_string">"Sample Folder String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1796" href="#1796">1796</a> propertyDefinitions.put(prop.getId(), prop);
<a class="jxr_linenumber" name="1797" href="#1797">1797</a> cmisFolderType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1798" href="#1798">1798</a>
<a class="jxr_linenumber" name="1799" href="#1799">1799</a> DocumentTypeDefinition customDocType = createCustomTypeWithStringIntProperty();
<a class="jxr_linenumber" name="1800" href="#1800">1800</a> TypeDefinition noContentType = createCustomTypeNoContent();
<a class="jxr_linenumber" name="1801" href="#1801">1801</a> TypeDefinition mustHaveContentType = createCustomTypeMustHaveContent();
<a class="jxr_linenumber" name="1802" href="#1802">1802</a> TypeDefinition relType = createRelationshipType();
<a class="jxr_linenumber" name="1803" href="#1803">1803</a> TypeDefinition relTypeRestricted = createRelationshipTypeRestricted();
<a class="jxr_linenumber" name="1804" href="#1804">1804</a> TypeDefinition verType = createVersionableType();
<a class="jxr_linenumber" name="1805" href="#1805">1805</a> TypeDefinition polType = createPolicyType();
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>
<a class="jxr_linenumber" name="1807" href="#1807">1807</a> <em class="jxr_comment">// add type to types collection</em>
<a class="jxr_linenumber" name="1808" href="#1808">1808</a> typesList.add(cmisDocumentType);
<a class="jxr_linenumber" name="1809" href="#1809">1809</a> typesList.add(cmisFolderType);
<a class="jxr_linenumber" name="1810" href="#1810">1810</a> typesList.add(customDocType);
<a class="jxr_linenumber" name="1811" href="#1811">1811</a> typesList.add(noContentType);
<a class="jxr_linenumber" name="1812" href="#1812">1812</a> typesList.add(mustHaveContentType);
<a class="jxr_linenumber" name="1813" href="#1813">1813</a> typesList.add(createCustomInheritedType(customDocType));
<a class="jxr_linenumber" name="1814" href="#1814">1814</a> typesList.add(createDocumentTypeWithDefault());
<a class="jxr_linenumber" name="1815" href="#1815">1815</a> typesList.add(createFolderTypeWithDefault());
<a class="jxr_linenumber" name="1816" href="#1816">1816</a> typesList.add(createItemType());
<a class="jxr_linenumber" name="1817" href="#1817">1817</a> typesList.add(createSecondaryType());
<a class="jxr_linenumber" name="1818" href="#1818">1818</a> typesList.add(relType);
<a class="jxr_linenumber" name="1819" href="#1819">1819</a> typesList.add(relTypeRestricted);
<a class="jxr_linenumber" name="1820" href="#1820">1820</a> typesList.add(verType);
<a class="jxr_linenumber" name="1821" href="#1821">1821</a> typesList.add(polType);
<a class="jxr_linenumber" name="1822" href="#1822">1822</a> <strong class="jxr_keyword">return</strong> typesList;
<a class="jxr_linenumber" name="1823" href="#1823">1823</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1824" href="#1824">1824</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Failed to create types."</span>, e);
<a class="jxr_linenumber" name="1825" href="#1825">1825</a> }
<a class="jxr_linenumber" name="1826" href="#1826">1826</a> }
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>
<a class="jxr_linenumber" name="1828" href="#1828">1828</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> DocumentTypeDefinition createCustomTypeWithStringIntProperty() <strong class="jxr_keyword">throws</strong> InstantiationException,
<a class="jxr_linenumber" name="1829" href="#1829">1829</a> IllegalAccessException {
<a class="jxr_linenumber" name="1830" href="#1830">1830</a> MutableDocumentTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1831" href="#1831">1831</a> cmisDocumentType = (MutableDocumentTypeDefinition) typeFactory.createChildTypeDefinition(
<a class="jxr_linenumber" name="1832" href="#1832">1832</a> DocumentTypeCreationHelper.getCmisDocumentType(), TEST_CUSTOM_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1833" href="#1833">1833</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"My Custom Document Type"</span>);
<a class="jxr_linenumber" name="1834" href="#1834">1834</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_CUSTOM_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1835" href="#1835">1835</a>
<a class="jxr_linenumber" name="1836" href="#1836">1836</a> PropertyStringDefinitionImpl prop = PropertyCreationHelper.createStringDefinition(
<a class="jxr_linenumber" name="1837" href="#1837">1837</a> TEST_DOCUMENT_MY_STRING_PROP_ID, <span class="jxr_string">"My String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1838" href="#1838">1838</a> prop.setIsRequired(false);
<a class="jxr_linenumber" name="1839" href="#1839">1839</a> prop.setMaxLength(BigInteger.valueOf(20)); <em class="jxr_comment">// max len to 20</em>
<a class="jxr_linenumber" name="1840" href="#1840">1840</a> cmisDocumentType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>
<a class="jxr_linenumber" name="1842" href="#1842">1842</a> PropertyIntegerDefinitionImpl prop2 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1843" href="#1843">1843</a> TEST_DOCUMENT_MY_INT_PROP_ID, <span class="jxr_string">"My Integer Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1844" href="#1844">1844</a> prop2.setIsRequired(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1845" href="#1845">1845</a> prop2.setMinValue(BigInteger.valueOf(-10000));
<a class="jxr_linenumber" name="1846" href="#1846">1846</a> prop2.setMaxValue(BigInteger.valueOf(10000));
<a class="jxr_linenumber" name="1847" href="#1847">1847</a> cmisDocumentType.addPropertyDefinition(prop2);
<a class="jxr_linenumber" name="1848" href="#1848">1848</a> <strong class="jxr_keyword">return</strong> cmisDocumentType;
<a class="jxr_linenumber" name="1849" href="#1849">1849</a> }
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>
<a class="jxr_linenumber" name="1851" href="#1851">1851</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createCustomInheritedType(DocumentTypeDefinition baseType)
<a class="jxr_linenumber" name="1852" href="#1852">1852</a> <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="1853" href="#1853">1853</a> MutableTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1854" href="#1854">1854</a> cmisDocumentType = typeFactory.createChildTypeDefinition(baseType, TEST_INHERITED_CUSTOM_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1855" href="#1855">1855</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"My Custom Document Type"</span>);
<a class="jxr_linenumber" name="1856" href="#1856">1856</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_INHERITED_CUSTOM_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="1857" href="#1857">1857</a>
<a class="jxr_linenumber" name="1858" href="#1858">1858</a> PropertyStringDefinitionImpl prop = PropertyCreationHelper.createStringDefinition(
<a class="jxr_linenumber" name="1859" href="#1859">1859</a> TEST_DOCUMENT_MY_SUB_STRING_PROP_ID, <span class="jxr_string">"Subtype String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1860" href="#1860">1860</a> prop.setIsRequired(false);
<a class="jxr_linenumber" name="1861" href="#1861">1861</a> cmisDocumentType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>
<a class="jxr_linenumber" name="1863" href="#1863">1863</a> PropertyIntegerDefinitionImpl prop2 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1864" href="#1864">1864</a> TEST_DOCUMENT_MY_SUB_INT_PROP_ID, <span class="jxr_string">"Subtype"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1865" href="#1865">1865</a> prop2.setIsRequired(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1866" href="#1866">1866</a> cmisDocumentType.addPropertyDefinition(prop2);
<a class="jxr_linenumber" name="1867" href="#1867">1867</a> <strong class="jxr_keyword">return</strong> cmisDocumentType;
<a class="jxr_linenumber" name="1868" href="#1868">1868</a> }
<a class="jxr_linenumber" name="1869" href="#1869">1869</a>
<a class="jxr_linenumber" name="1870" href="#1870">1870</a> @SuppressWarnings(<span class="jxr_string">"serial"</span>)
<a class="jxr_linenumber" name="1871" href="#1871">1871</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createDocumentTypeWithDefault() <strong class="jxr_keyword">throws</strong> InstantiationException,
<a class="jxr_linenumber" name="1872" href="#1872">1872</a> IllegalAccessException {
<a class="jxr_linenumber" name="1873" href="#1873">1873</a> MutableTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1874" href="#1874">1874</a> cmisDocumentType = typeFactory.createChildTypeDefinition(DocumentTypeCreationHelper.getCmisDocumentType(),
<a class="jxr_linenumber" name="1875" href="#1875">1875</a> TEST_DOC_TYPE_WITH_DEFAULTS_ID);
<a class="jxr_linenumber" name="1876" href="#1876">1876</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"Document Type With default values"</span>);
<a class="jxr_linenumber" name="1877" href="#1877">1877</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_DOC_TYPE_WITH_DEFAULTS_ID);
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>
<a class="jxr_linenumber" name="1879" href="#1879">1879</a> PropertyStringDefinitionImpl prop = PropertyCreationHelper.createStringMultiDefinition(
<a class="jxr_linenumber" name="1880" href="#1880">1880</a> TEST_DOCUMENT_MY_MULTI_STRING_PROP_ID, <span class="jxr_string">"Test Multi String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1881" href="#1881">1881</a> prop.setIsRequired(false);
<a class="jxr_linenumber" name="1882" href="#1882">1882</a> List&lt;String&gt; defValS = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;() {
<a class="jxr_linenumber" name="1883" href="#1883">1883</a> {
<a class="jxr_linenumber" name="1884" href="#1884">1884</a> add(<span class="jxr_string">"Apache"</span>);
<a class="jxr_linenumber" name="1885" href="#1885">1885</a> add(<span class="jxr_string">"CMIS"</span>);
<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> prop.setDefaultValue(defValS);
<a class="jxr_linenumber" name="1889" href="#1889">1889</a> cmisDocumentType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1890" href="#1890">1890</a>
<a class="jxr_linenumber" name="1891" href="#1891">1891</a> PropertyIntegerDefinitionImpl prop2 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1892" href="#1892">1892</a> TEST_DOCUMENT_MY_INT_PROP_ID, <span class="jxr_string">"Test Integer Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1893" href="#1893">1893</a> prop2.setIsRequired(false);
<a class="jxr_linenumber" name="1894" href="#1894">1894</a> List&lt;BigInteger&gt; defVal = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;() {
<a class="jxr_linenumber" name="1895" href="#1895">1895</a> {
<a class="jxr_linenumber" name="1896" href="#1896">1896</a> add(BigInteger.valueOf(100));
<a class="jxr_linenumber" name="1897" href="#1897">1897</a> }
<a class="jxr_linenumber" name="1898" href="#1898">1898</a> };
<a class="jxr_linenumber" name="1899" href="#1899">1899</a> prop2.setDefaultValue(defVal);
<a class="jxr_linenumber" name="1900" href="#1900">1900</a> cmisDocumentType.addPropertyDefinition(prop2);
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>
<a class="jxr_linenumber" name="1902" href="#1902">1902</a> PropertyIntegerDefinitionImpl prop3 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1903" href="#1903">1903</a> TEST_DOCUMENT_MY_INT_PROP_ID_MANDATORY_DEFAULT, <span class="jxr_string">"Test Integer Property Mandatory default"</span>,
<a class="jxr_linenumber" name="1904" href="#1904">1904</a> Updatability.READWRITE);
<a class="jxr_linenumber" name="1905" href="#1905">1905</a> prop3.setIsRequired(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1906" href="#1906">1906</a> List&lt;BigInteger&gt; defVal2 = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;() {
<a class="jxr_linenumber" name="1907" href="#1907">1907</a> {
<a class="jxr_linenumber" name="1908" href="#1908">1908</a> add(BigInteger.valueOf(100));
<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> prop3.setDefaultValue(defVal2);
<a class="jxr_linenumber" name="1912" href="#1912">1912</a> cmisDocumentType.addPropertyDefinition(prop3);
<a class="jxr_linenumber" name="1913" href="#1913">1913</a>
<a class="jxr_linenumber" name="1914" href="#1914">1914</a> <strong class="jxr_keyword">return</strong> cmisDocumentType;
<a class="jxr_linenumber" name="1915" href="#1915">1915</a> }
<a class="jxr_linenumber" name="1916" href="#1916">1916</a>
<a class="jxr_linenumber" name="1917" href="#1917">1917</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createCustomTypeNoContent() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="1918" href="#1918">1918</a> MutableDocumentTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1919" href="#1919">1919</a> cmisDocumentType = (MutableDocumentTypeDefinition) typeFactory.createChildTypeDefinition(
<a class="jxr_linenumber" name="1920" href="#1920">1920</a> DocumentTypeCreationHelper.getCmisDocumentType(), TEST_CUSTOM_NO_CONTENT_TYPE_ID);
<a class="jxr_linenumber" name="1921" href="#1921">1921</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"No Content Document Type"</span>);
<a class="jxr_linenumber" name="1922" href="#1922">1922</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_CUSTOM_NO_CONTENT_TYPE_ID);
<a class="jxr_linenumber" name="1923" href="#1923">1923</a> cmisDocumentType.setContentStreamAllowed(ContentStreamAllowed.NOTALLOWED);
<a class="jxr_linenumber" name="1924" href="#1924">1924</a> <strong class="jxr_keyword">return</strong> cmisDocumentType;
<a class="jxr_linenumber" name="1925" href="#1925">1925</a> }
<a class="jxr_linenumber" name="1926" href="#1926">1926</a>
<a class="jxr_linenumber" name="1927" href="#1927">1927</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createCustomTypeMustHaveContent() <strong class="jxr_keyword">throws</strong> InstantiationException,
<a class="jxr_linenumber" name="1928" href="#1928">1928</a> IllegalAccessException {
<a class="jxr_linenumber" name="1929" href="#1929">1929</a> MutableDocumentTypeDefinition cmisDocumentType;
<a class="jxr_linenumber" name="1930" href="#1930">1930</a> cmisDocumentType = (MutableDocumentTypeDefinition) typeFactory.createChildTypeDefinition(
<a class="jxr_linenumber" name="1931" href="#1931">1931</a> DocumentTypeCreationHelper.getCmisDocumentType(), TEST_CUSTOM_MUST_CONTENT_TYPE_ID);
<a class="jxr_linenumber" name="1932" href="#1932">1932</a> cmisDocumentType.setDisplayName(<span class="jxr_string">"Must Have Content Document Type"</span>);
<a class="jxr_linenumber" name="1933" href="#1933">1933</a> cmisDocumentType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_CUSTOM_MUST_CONTENT_TYPE_ID);
<a class="jxr_linenumber" name="1934" href="#1934">1934</a> cmisDocumentType.setContentStreamAllowed(ContentStreamAllowed.NOTALLOWED);
<a class="jxr_linenumber" name="1935" href="#1935">1935</a> cmisDocumentType.setContentStreamAllowed(ContentStreamAllowed.REQUIRED);
<a class="jxr_linenumber" name="1936" href="#1936">1936</a> <strong class="jxr_keyword">return</strong> cmisDocumentType;
<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> @SuppressWarnings(<span class="jxr_string">"serial"</span>)
<a class="jxr_linenumber" name="1940" href="#1940">1940</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createFolderTypeWithDefault() <strong class="jxr_keyword">throws</strong> InstantiationException,
<a class="jxr_linenumber" name="1941" href="#1941">1941</a> IllegalAccessException {
<a class="jxr_linenumber" name="1942" href="#1942">1942</a> MutableFolderTypeDefinition cmisFolderType;
<a class="jxr_linenumber" name="1943" href="#1943">1943</a> cmisFolderType = typeFactory.createFolderTypeDefinition(CmisVersion.CMIS_1_1, DocumentTypeCreationHelper
<a class="jxr_linenumber" name="1944" href="#1944">1944</a> .getCmisFolderType().getId());
<a class="jxr_linenumber" name="1945" href="#1945">1945</a> cmisFolderType.setId(TEST_FOLDER_TYPE_WITH_DEFAULTS_ID);
<a class="jxr_linenumber" name="1946" href="#1946">1946</a> cmisFolderType.setDisplayName(<span class="jxr_string">"Folder Type With default values"</span>);
<a class="jxr_linenumber" name="1947" href="#1947">1947</a> cmisFolderType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_FOLDER_TYPE_WITH_DEFAULTS_ID);
<a class="jxr_linenumber" name="1948" href="#1948">1948</a>
<a class="jxr_linenumber" name="1949" href="#1949">1949</a> PropertyStringDefinitionImpl prop = PropertyCreationHelper.createStringMultiDefinition(
<a class="jxr_linenumber" name="1950" href="#1950">1950</a> TEST_FOLDER_MY_MULTI_STRING_PROP_ID, <span class="jxr_string">"Test Multi String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1951" href="#1951">1951</a> prop.setIsRequired(false);
<a class="jxr_linenumber" name="1952" href="#1952">1952</a> List&lt;String&gt; defValS = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;() {
<a class="jxr_linenumber" name="1953" href="#1953">1953</a> {
<a class="jxr_linenumber" name="1954" href="#1954">1954</a> add(<span class="jxr_string">"Apache"</span>);
<a class="jxr_linenumber" name="1955" href="#1955">1955</a> add(<span class="jxr_string">"CMIS"</span>);
<a class="jxr_linenumber" name="1956" href="#1956">1956</a> }
<a class="jxr_linenumber" name="1957" href="#1957">1957</a> };
<a class="jxr_linenumber" name="1958" href="#1958">1958</a> prop.setDefaultValue(defValS);
<a class="jxr_linenumber" name="1959" href="#1959">1959</a> cmisFolderType.addPropertyDefinition(prop);
<a class="jxr_linenumber" name="1960" href="#1960">1960</a>
<a class="jxr_linenumber" name="1961" href="#1961">1961</a> PropertyIntegerDefinitionImpl prop2 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1962" href="#1962">1962</a> TEST_FOLDER_MY_INT_PROP_ID, <span class="jxr_string">"Test Integer Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="1963" href="#1963">1963</a> prop2.setIsRequired(false);
<a class="jxr_linenumber" name="1964" href="#1964">1964</a> List&lt;BigInteger&gt; defVal = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;() {
<a class="jxr_linenumber" name="1965" href="#1965">1965</a> {
<a class="jxr_linenumber" name="1966" href="#1966">1966</a> add(BigInteger.valueOf(100));
<a class="jxr_linenumber" name="1967" href="#1967">1967</a> }
<a class="jxr_linenumber" name="1968" href="#1968">1968</a> };
<a class="jxr_linenumber" name="1969" href="#1969">1969</a> prop2.setDefaultValue(defVal);
<a class="jxr_linenumber" name="1970" href="#1970">1970</a> cmisFolderType.addPropertyDefinition(prop2);
<a class="jxr_linenumber" name="1971" href="#1971">1971</a>
<a class="jxr_linenumber" name="1972" href="#1972">1972</a> PropertyIntegerDefinitionImpl prop3 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="1973" href="#1973">1973</a> TEST_FOLDER_MY_INT_PROP_ID_MANDATORY_DEFAULT, <span class="jxr_string">"Test Integer Property Mandatory default"</span>,
<a class="jxr_linenumber" name="1974" href="#1974">1974</a> Updatability.READWRITE);
<a class="jxr_linenumber" name="1975" href="#1975">1975</a> prop3.setIsRequired(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1976" href="#1976">1976</a> List&lt;BigInteger&gt; defVal2 = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;() {
<a class="jxr_linenumber" name="1977" href="#1977">1977</a> {
<a class="jxr_linenumber" name="1978" href="#1978">1978</a> add(BigInteger.valueOf(100));
<a class="jxr_linenumber" name="1979" href="#1979">1979</a> }
<a class="jxr_linenumber" name="1980" href="#1980">1980</a> };
<a class="jxr_linenumber" name="1981" href="#1981">1981</a> prop3.setDefaultValue(defVal2);
<a class="jxr_linenumber" name="1982" href="#1982">1982</a> cmisFolderType.addPropertyDefinition(prop3);
<a class="jxr_linenumber" name="1983" href="#1983">1983</a>
<a class="jxr_linenumber" name="1984" href="#1984">1984</a> <strong class="jxr_keyword">return</strong> cmisFolderType;
<a class="jxr_linenumber" name="1985" href="#1985">1985</a> }
<a class="jxr_linenumber" name="1986" href="#1986">1986</a>
<a class="jxr_linenumber" name="1987" href="#1987">1987</a> <strong class="jxr_keyword">private</strong> TypeDefinition createRelationshipType() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="1988" href="#1988">1988</a> MutableRelationshipTypeDefinition cmisRelType;
<a class="jxr_linenumber" name="1989" href="#1989">1989</a> cmisRelType = typeFactory.createRelationshipTypeDefinition(CmisVersion.CMIS_1_1, DocumentTypeCreationHelper
<a class="jxr_linenumber" name="1990" href="#1990">1990</a> .getCmisRelationshipType().getId());
<a class="jxr_linenumber" name="1991" href="#1991">1991</a> cmisRelType.setId(TEST_RELATION_TYPE_ID);
<a class="jxr_linenumber" name="1992" href="#1992">1992</a> cmisRelType.setDisplayName(<span class="jxr_string">"MyRelationshipType"</span>);
<a class="jxr_linenumber" name="1993" href="#1993">1993</a> cmisRelType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_RELATION_TYPE_ID);
<a class="jxr_linenumber" name="1994" href="#1994">1994</a> DocumentTypeCreationHelper.setDefaultTypeCapabilities(cmisRelType);
<a class="jxr_linenumber" name="1995" href="#1995">1995</a> cmisRelType.setIsFileable(false);
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>
<a class="jxr_linenumber" name="1997" href="#1997">1997</a> <em class="jxr_comment">// create a single String property definition</em>
<a class="jxr_linenumber" name="1998" href="#1998">1998</a>
<a class="jxr_linenumber" name="1999" href="#1999">1999</a> PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(REL_STRING_PROP,
<a class="jxr_linenumber" name="2000" href="#2000">2000</a> <span class="jxr_string">"CrossReferenceType"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="2001" href="#2001">2001</a> cmisRelType.addPropertyDefinition(prop1);
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>
<a class="jxr_linenumber" name="2003" href="#2003">2003</a> <strong class="jxr_keyword">return</strong> cmisRelType;
<a class="jxr_linenumber" name="2004" href="#2004">2004</a> }
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>
<a class="jxr_linenumber" name="2006" href="#2006">2006</a> <strong class="jxr_keyword">private</strong> TypeDefinition createRelationshipTypeRestricted() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="2007" href="#2007">2007</a> MutableRelationshipTypeDefinition cmisRelType;
<a class="jxr_linenumber" name="2008" href="#2008">2008</a> cmisRelType = typeFactory.createRelationshipTypeDefinition(CmisVersion.CMIS_1_1, DocumentTypeCreationHelper
<a class="jxr_linenumber" name="2009" href="#2009">2009</a> .getCmisRelationshipType().getId());
<a class="jxr_linenumber" name="2010" href="#2010">2010</a> cmisRelType.setId(TEST_RESTRICTED_RELATION_TYPE_ID);
<a class="jxr_linenumber" name="2011" href="#2011">2011</a> cmisRelType.setDisplayName(<span class="jxr_string">"RestrictedRelationshipType"</span>);
<a class="jxr_linenumber" name="2012" href="#2012">2012</a> cmisRelType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_RESTRICTED_RELATION_TYPE_ID);
<a class="jxr_linenumber" name="2013" href="#2013">2013</a> DocumentTypeCreationHelper.setDefaultTypeCapabilities(cmisRelType);
<a class="jxr_linenumber" name="2014" href="#2014">2014</a> cmisRelType.setIsFileable(false);
<a class="jxr_linenumber" name="2015" href="#2015">2015</a>
<a class="jxr_linenumber" name="2016" href="#2016">2016</a> List&lt;String&gt; allowedTypeIds = Collections.singletonList(TEST_CUSTOM_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="2017" href="#2017">2017</a> cmisRelType.setAllowedSourceTypes(allowedTypeIds);
<a class="jxr_linenumber" name="2018" href="#2018">2018</a> cmisRelType.setAllowedTargetTypes(allowedTypeIds);
<a class="jxr_linenumber" name="2019" href="#2019">2019</a> <strong class="jxr_keyword">return</strong> cmisRelType;
<a class="jxr_linenumber" name="2020" href="#2020">2020</a> }
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>
<a class="jxr_linenumber" name="2022" href="#2022">2022</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createItemType() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="2023" href="#2023">2023</a> <em class="jxr_comment">// CMIS 1.1 create an item item type</em>
<a class="jxr_linenumber" name="2024" href="#2024">2024</a> MutableItemTypeDefinition cmisItemType;
<a class="jxr_linenumber" name="2025" href="#2025">2025</a> cmisItemType = typeFactory.createItemTypeDefinition(CmisVersion.CMIS_1_1, DocumentTypeCreationHelper
<a class="jxr_linenumber" name="2026" href="#2026">2026</a> .getCmisItemType().getId()); <em class="jxr_comment">// ???</em>
<a class="jxr_linenumber" name="2027" href="#2027">2027</a> <em class="jxr_comment">// DocumentTypeCreationHelper.getCmisItemType());</em>
<a class="jxr_linenumber" name="2028" href="#2028">2028</a> cmisItemType.setId(TEST_ITEM_TYPE_ID);
<a class="jxr_linenumber" name="2029" href="#2029">2029</a> cmisItemType.setDisplayName(<span class="jxr_string">"MyItemType"</span>);
<a class="jxr_linenumber" name="2030" href="#2030">2030</a> cmisItemType.setDescription(<span class="jxr_string">"Builtin InMemory type definition "</span> + TEST_ITEM_TYPE_ID);
<a class="jxr_linenumber" name="2031" href="#2031">2031</a> DocumentTypeCreationHelper.setDefaultTypeCapabilities(cmisItemType);
<a class="jxr_linenumber" name="2032" href="#2032">2032</a>
<a class="jxr_linenumber" name="2033" href="#2033">2033</a> <em class="jxr_comment">// create a single String property definition</em>
<a class="jxr_linenumber" name="2034" href="#2034">2034</a> PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(ITEM_STRING_PROP,
<a class="jxr_linenumber" name="2035" href="#2035">2035</a> <span class="jxr_string">"Item String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="2036" href="#2036">2036</a> cmisItemType.addPropertyDefinition(prop1);
<a class="jxr_linenumber" name="2037" href="#2037">2037</a> <em class="jxr_comment">// add type to types collection</em>
<a class="jxr_linenumber" name="2038" href="#2038">2038</a> <strong class="jxr_keyword">return</strong> cmisItemType;
<a class="jxr_linenumber" name="2039" href="#2039">2039</a> }
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>
<a class="jxr_linenumber" name="2041" href="#2041">2041</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createSecondaryType() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="2042" href="#2042">2042</a> <em class="jxr_comment">// CMIS 1.1 create an item item type</em>
<a class="jxr_linenumber" name="2043" href="#2043">2043</a> MutableSecondaryTypeDefinition cmisSecondaryType;
<a class="jxr_linenumber" name="2044" href="#2044">2044</a> cmisSecondaryType = typeFactory.createSecondaryTypeDefinition(CmisVersion.CMIS_1_1,
<a class="jxr_linenumber" name="2045" href="#2045">2045</a> DocumentTypeCreationHelper.getCmisSecondaryType().getId());
<a class="jxr_linenumber" name="2046" href="#2046">2046</a> cmisSecondaryType.setId(TEST_SECONDARY_TYPE_ID);
<a class="jxr_linenumber" name="2047" href="#2047">2047</a> cmisSecondaryType.setDisplayName(<span class="jxr_string">"MySecondaryType"</span>);
<a class="jxr_linenumber" name="2048" href="#2048">2048</a> cmisSecondaryType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_SECONDARY_TYPE_ID);
<a class="jxr_linenumber" name="2049" href="#2049">2049</a> DocumentTypeCreationHelper.setDefaultTypeCapabilities(cmisSecondaryType);
<a class="jxr_linenumber" name="2050" href="#2050">2050</a> cmisSecondaryType.setIsCreatable(false);
<a class="jxr_linenumber" name="2051" href="#2051">2051</a> cmisSecondaryType.setIsFileable(false);
<a class="jxr_linenumber" name="2052" href="#2052">2052</a>
<a class="jxr_linenumber" name="2053" href="#2053">2053</a> <em class="jxr_comment">// create a single String property definition</em>
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>
<a class="jxr_linenumber" name="2055" href="#2055">2055</a> PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(SECONDARY_STRING_PROP,
<a class="jxr_linenumber" name="2056" href="#2056">2056</a> <span class="jxr_string">"Secondary String Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="2057" href="#2057">2057</a> cmisSecondaryType.addPropertyDefinition(prop1);
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>
<a class="jxr_linenumber" name="2059" href="#2059">2059</a> PropertyIntegerDefinitionImpl prop2 = PropertyCreationHelper.createIntegerDefinition(
<a class="jxr_linenumber" name="2060" href="#2060">2060</a> SECONDARY_INTEGER_PROP, <span class="jxr_string">"Secondary Integer Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="2061" href="#2061">2061</a> prop2.setIsRequired(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="2062" href="#2062">2062</a> cmisSecondaryType.addPropertyDefinition(prop2);
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>
<a class="jxr_linenumber" name="2064" href="#2064">2064</a> <strong class="jxr_keyword">return</strong> cmisSecondaryType;
<a class="jxr_linenumber" name="2065" href="#2065">2065</a> }
<a class="jxr_linenumber" name="2066" href="#2066">2066</a>
<a class="jxr_linenumber" name="2067" href="#2067">2067</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createVersionableType() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="2068" href="#2068">2068</a> <em class="jxr_comment">// create a complex type with properties</em>
<a class="jxr_linenumber" name="2069" href="#2069">2069</a> MutableDocumentTypeDefinition verType;
<a class="jxr_linenumber" name="2070" href="#2070">2070</a> verType = (MutableDocumentTypeDefinition) typeFactory.createChildTypeDefinition(
<a class="jxr_linenumber" name="2071" href="#2071">2071</a> DocumentTypeCreationHelper.getCmisDocumentType(), TEST_VERSION_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="2072" href="#2072">2072</a> verType.setDisplayName(<span class="jxr_string">"VersionedType"</span>);
<a class="jxr_linenumber" name="2073" href="#2073">2073</a> verType.setDescription(<span class="jxr_string">"InMemory test type definition "</span> + TEST_VERSION_DOCUMENT_TYPE_ID);
<a class="jxr_linenumber" name="2074" href="#2074">2074</a>
<a class="jxr_linenumber" name="2075" href="#2075">2075</a> verType.setIsVersionable(<strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// make it a versionable type;</em>
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>
<a class="jxr_linenumber" name="2077" href="#2077">2077</a> <em class="jxr_comment">// create a String property definition</em>
<a class="jxr_linenumber" name="2078" href="#2078">2078</a> PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(TEST_VER_PROPERTY_ID,
<a class="jxr_linenumber" name="2079" href="#2079">2079</a> <span class="jxr_string">"Sample String Property"</span>, Updatability.WHENCHECKEDOUT);
<a class="jxr_linenumber" name="2080" href="#2080">2080</a> verType.addPropertyDefinition(prop1);
<a class="jxr_linenumber" name="2081" href="#2081">2081</a> <strong class="jxr_keyword">return</strong> verType;
<a class="jxr_linenumber" name="2082" href="#2082">2082</a> }
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>
<a class="jxr_linenumber" name="2084" href="#2084">2084</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinition createPolicyType() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException {
<a class="jxr_linenumber" name="2085" href="#2085">2085</a> MutablePolicyTypeDefinition polType;
<a class="jxr_linenumber" name="2086" href="#2086">2086</a> polType = typeFactory.createPolicyTypeDefinition(CmisVersion.CMIS_1_1, DocumentTypeCreationHelper
<a class="jxr_linenumber" name="2087" href="#2087">2087</a> .getCmisPolicyType().getId());
<a class="jxr_linenumber" name="2088" href="#2088">2088</a> polType.setId(TEST_POLICY_TYPE_ID);
<a class="jxr_linenumber" name="2089" href="#2089">2089</a> polType.setDisplayName(<span class="jxr_string">"Audit Policy"</span>);
<a class="jxr_linenumber" name="2090" href="#2090">2090</a> polType.setDescription(<span class="jxr_string">"InMemory type definition "</span> + TEST_POLICY_TYPE_ID);
<a class="jxr_linenumber" name="2091" href="#2091">2091</a> DocumentTypeCreationHelper.setDefaultTypeCapabilities(polType);
<a class="jxr_linenumber" name="2092" href="#2092">2092</a> polType.setIsFileable(false);
<a class="jxr_linenumber" name="2093" href="#2093">2093</a>
<a class="jxr_linenumber" name="2094" href="#2094">2094</a> <em class="jxr_comment">// create a String property definition</em>
<a class="jxr_linenumber" name="2095" href="#2095">2095</a> PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(TEST_POLICY_PROPERTY_ID,
<a class="jxr_linenumber" name="2096" href="#2096">2096</a> <span class="jxr_string">"Audit Kind Property"</span>, Updatability.READWRITE);
<a class="jxr_linenumber" name="2097" href="#2097">2097</a> polType.addPropertyDefinition(prop1);
<a class="jxr_linenumber" name="2098" href="#2098">2098</a> <strong class="jxr_keyword">return</strong> polType;
<a class="jxr_linenumber" name="2099" href="#2099">2099</a> }
<a class="jxr_linenumber" name="2100" href="#2100">2100</a> }
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>
<a class="jxr_linenumber" name="2102" href="#2102">2102</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>