<!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>ByteAccessTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a 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 name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.util.byteaccess;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.easymock.EasyMock.createStrictControl;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteOrder;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.ByteArray.Cursor;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArray.CursorListener;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArrayRelativeWriter.ChunkedExpander;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArrayRelativeWriter.Flusher;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.easymock.IMocksControl;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Tests classes in the &lt;code&gt;byteaccess&lt;/code&gt; package.</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * </em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@directory.apache.org" target="alexandria_uri">mailto:dev@directory.apache.org</a>"&gt;Apache Directory Project&lt;/a&gt;</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/util/byteaccess/ByteAccessTest.html">ByteAccessTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> List&lt;String&gt; operations = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> resetOperations() {
<a name="47" href="#47">47</a>          operations.clear();
<a name="48" href="#48">48</a>      }
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertOperationCountEquals(<strong class="jxr_keyword">int</strong> expectedCount) {
<a name="51" href="#51">51</a>          assertEquals(<span class="jxr_string">"Operations: "</span> + operations, expectedCount, operations.size());
<a name="52" href="#52">52</a>      }
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addOperation(String description) {
<a name="55" href="#55">55</a>          operations.add(description);
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBufferByteArray() <strong class="jxr_keyword">throws</strong> Exception {
<a name="59" href="#59">59</a>          ByteArray ba = getByteArrayFactory().create(1000);
<a name="60" href="#60">60</a>          testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="61" href="#61">61</a>          testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="62" href="#62">62</a>          Cursor readCursor = ba.cursor();
<a name="63" href="#63">63</a>          Cursor writeCursor = ba.cursor();
<a name="64" href="#64">64</a>          testRelativeReaderAndWriter(1000, readCursor, writeCursor);
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeAddAndRemove() <strong class="jxr_keyword">throws</strong> Exception {
<a name="68" href="#68">68</a>          CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="69" href="#69">69</a>          assertEquals(0, cba.first());
<a name="70" href="#70">70</a>          assertEquals(0, cba.last());
<a name="71" href="#71">71</a>          cba.addFirst(getByteArrayFactory().create(100));
<a name="72" href="#72">72</a>          assertEquals(-100, cba.first());
<a name="73" href="#73">73</a>          assertEquals(0, cba.last());
<a name="74" href="#74">74</a>          cba.addFirst(getByteArrayFactory().create(100));
<a name="75" href="#75">75</a>          assertEquals(-200, cba.first());
<a name="76" href="#76">76</a>          assertEquals(0, cba.last());
<a name="77" href="#77">77</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="78" href="#78">78</a>          assertEquals(-200, cba.first());
<a name="79" href="#79">79</a>          assertEquals(100, cba.last());
<a name="80" href="#80">80</a>          cba.removeFirst();
<a name="81" href="#81">81</a>          assertEquals(-100, cba.first());
<a name="82" href="#82">82</a>          assertEquals(100, cba.last());
<a name="83" href="#83">83</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="84" href="#84">84</a>          assertEquals(-100, cba.first());
<a name="85" href="#85">85</a>          assertEquals(200, cba.last());
<a name="86" href="#86">86</a>          cba.removeLast();
<a name="87" href="#87">87</a>          assertEquals(-100, cba.first());
<a name="88" href="#88">88</a>          assertEquals(100, cba.last());
<a name="89" href="#89">89</a>          cba.removeFirst();
<a name="90" href="#90">90</a>          assertEquals(0, cba.first());
<a name="91" href="#91">91</a>          assertEquals(100, cba.last());
<a name="92" href="#92">92</a>          cba.removeFirst();
<a name="93" href="#93">93</a>          assertEquals(100, cba.first());
<a name="94" href="#94">94</a>          assertEquals(100, cba.last());
<a name="95" href="#95">95</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="96" href="#96">96</a>          assertEquals(100, cba.first());
<a name="97" href="#97">97</a>          assertEquals(200, cba.last());
<a name="98" href="#98">98</a>      }
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> BufferByteArray wrapString(String string) {
<a name="101" href="#101">101</a>         byte[] bytes = string.getBytes();
<a name="102" href="#102">102</a>         IoBuffer bb = IoBuffer.wrap(bytes);
<a name="103" href="#103">103</a>         BufferByteArray ba = <strong class="jxr_keyword">new</strong> BufferByteArray(bb) {
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>             @Override
<a name="106" href="#106">106</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> free() {
<a name="107" href="#107">107</a>                 addOperation(<strong class="jxr_keyword">this</strong> + <span class="jxr_string">".free()"</span>);
<a name="108" href="#108">108</a>                 <em class="jxr_comment">// Nothing to do.</em>
<a name="109" href="#109">109</a>             }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         };
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">return</strong> ba;
<a name="113" href="#113">113</a>     }
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">private</strong> String toString(ByteArray ba) {
<a name="116" href="#116">116</a>         IoBuffer bb = IoBuffer.allocate(ba.length());
<a name="117" href="#117">117</a>         ba.get(0, bb);
<a name="118" href="#118">118</a>         byte[] bytes = bb.array();
<a name="119" href="#119">119</a>         String string = <strong class="jxr_keyword">new</strong> String(bytes);
<a name="120" href="#120">120</a>         <strong class="jxr_keyword">return</strong> string;
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeStringJoin() <strong class="jxr_keyword">throws</strong> Exception {
<a name="124" href="#124">124</a>         ByteArray ba1 = wrapString(<span class="jxr_string">"Hello"</span>);
<a name="125" href="#125">125</a>         ByteArray ba2 = wrapString(<span class="jxr_string">"MINA"</span>);
<a name="126" href="#126">126</a>         ByteArray ba3 = wrapString(<span class="jxr_string">"World"</span>);
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="129" href="#129">129</a>         cba.addLast(ba1);
<a name="130" href="#130">130</a>         cba.addLast(ba2);
<a name="131" href="#131">131</a>         cba.addLast(ba3);
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         assertEquals(<span class="jxr_string">"HelloMINAWorld"</span>, toString(cba));
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeCursor() <strong class="jxr_keyword">throws</strong> Exception {
<a name="137" href="#137">137</a>         IMocksControl mc = createStrictControl();
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>         ByteArray ba1 = getByteArrayFactory().create(10);
<a name="140" href="#140">140</a>         ByteArray ba2 = getByteArrayFactory().create(10);
<a name="141" href="#141">141</a>         ByteArray ba3 = getByteArrayFactory().create(10);
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="145" href="#145">145</a>         cba.addLast(ba1);
<a name="146" href="#146">146</a>         cba.addLast(ba2);
<a name="147" href="#147">147</a>         cba.addLast(ba3);
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>         CursorListener cl = mc.createMock(CursorListener.<strong class="jxr_keyword">class</strong>);
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         mc.reset();
<a name="152" href="#152">152</a>         mc.replay();
<a name="153" href="#153">153</a>         Cursor cursor = cba.cursor(cl);
<a name="154" href="#154">154</a>         mc.verify();
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         mc.reset();
<a name="157" href="#157">157</a>         cl.enteredFirstComponent(0, ba1);
<a name="158" href="#158">158</a>         mc.replay();
<a name="159" href="#159">159</a>         cursor.get();
<a name="160" href="#160">160</a>         mc.verify();
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         mc.reset();
<a name="163" href="#163">163</a>         mc.replay();
<a name="164" href="#164">164</a>         cursor.setIndex(10);
<a name="165" href="#165">165</a>         mc.verify();
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>         mc.reset();
<a name="168" href="#168">168</a>         cl.enteredNextComponent(10, ba2);
<a name="169" href="#169">169</a>         mc.replay();
<a name="170" href="#170">170</a>         cursor.put((byte) 55);
<a name="171" href="#171">171</a>         mc.verify();
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>         mc.reset();
<a name="174" href="#174">174</a>         mc.replay();
<a name="175" href="#175">175</a>         cursor.setIndex(9);
<a name="176" href="#176">176</a>         mc.verify();
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>         mc.reset();
<a name="179" href="#179">179</a>         cl.enteredPreviousComponent(0, ba1);
<a name="180" href="#180">180</a>         cl.enteredNextComponent(10, ba2);
<a name="181" href="#181">181</a>         mc.replay();
<a name="182" href="#182">182</a>         cursor.putInt(66);
<a name="183" href="#183">183</a>         mc.verify();
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>         mc.reset();
<a name="186" href="#186">186</a>         cl.enteredNextComponent(20, ba3);
<a name="187" href="#187">187</a>         mc.replay();
<a name="188" href="#188">188</a>         cursor.setIndex(29);
<a name="189" href="#189">189</a>         cursor.get();
<a name="190" href="#190">190</a>         mc.verify();
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>         cba.removeLast(); <em class="jxr_comment">// Force cursor to relocate itself.</em>
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>         mc.reset();
<a name="195" href="#195">195</a>         cl.enteredLastComponent(10, ba2);
<a name="196" href="#196">196</a>         mc.replay();
<a name="197" href="#197">197</a>         cursor.setIndex(15);
<a name="198" href="#198">198</a>         cursor.get();
<a name="199" href="#199">199</a>         mc.verify();
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>         mc.reset();
<a name="202" href="#202">202</a>         cl.enteredPreviousComponent(0, ba1);
<a name="203" href="#203">203</a>         mc.replay();
<a name="204" href="#204">204</a>         cursor.setIndex(0);
<a name="205" href="#205">205</a>         cursor.get();
<a name="206" href="#206">206</a>         mc.verify();
<a name="207" href="#207">207</a>     }
<a name="208" href="#208">208</a> 
<a name="209" href="#209">209</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArray() <strong class="jxr_keyword">throws</strong> Exception {
<a name="210" href="#210">210</a>         CompositeByteArray ba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="211" href="#211">211</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i += 100) {
<a name="212" href="#212">212</a>             ba.addLast(getByteArrayFactory().create(100));
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a>         resetOperations();
<a name="215" href="#215">215</a>         testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="216" href="#216">216</a>         testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="217" href="#217">217</a>         assertOperationCountEquals(0);
<a name="218" href="#218">218</a>         Cursor readCursor = ba.cursor();
<a name="219" href="#219">219</a>         Cursor writeCursor = ba.cursor();
<a name="220" href="#220">220</a>         testRelativeReaderAndWriter(1000, readCursor, writeCursor);
<a name="221" href="#221">221</a>         assertOperationCountEquals(0);
<a name="222" href="#222">222</a>     }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayRelativeReaderAndWriter() <strong class="jxr_keyword">throws</strong> Exception {
<a name="225" href="#225">225</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="226" href="#226">226</a>         CompositeByteArrayRelativeReader cbarr = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cba, <strong class="jxr_keyword">true</strong>);
<a name="227" href="#227">227</a>         CompositeByteArrayRelativeWriter cbarw = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cba, getExpander(100), getFlusher(), false);
<a name="228" href="#228">228</a>         resetOperations();
<a name="229" href="#229">229</a>         testRelativeReaderAndWriter(10, cbarr, cbarw);
<a name="230" href="#230">230</a>         assertOperationCountEquals(2);
<a name="231" href="#231">231</a>         resetOperations();
<a name="232" href="#232">232</a>         testRelativeReaderAndWriter(100, cbarr, cbarw);
<a name="233" href="#233">233</a>         assertOperationCountEquals(3);
<a name="234" href="#234">234</a>         resetOperations();
<a name="235" href="#235">235</a>         testRelativeReaderAndWriter(1000, cbarr, cbarw);
<a name="236" href="#236">236</a>         assertOperationCountEquals(30);
<a name="237" href="#237">237</a>         resetOperations();
<a name="238" href="#238">238</a>         testRelativeReaderAndWriter(10000, cbarr, cbarw);
<a name="239" href="#239">239</a>         assertOperationCountEquals(300);
<a name="240" href="#240">240</a>         resetOperations();
<a name="241" href="#241">241</a>         testRelativeReaderAndWriter(90, cbarr, cbarw);
<a name="242" href="#242">242</a>         assertOperationCountEquals(0); <em class="jxr_comment">// Last free doesn't occur, since cursor only moves lazily.</em>
<a name="243" href="#243">243</a>     }
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayRelativeReaderAndWriterWithFlush() <strong class="jxr_keyword">throws</strong> Exception {
<a name="246" href="#246">246</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="247" href="#247">247</a>         CompositeByteArrayRelativeReader cbarr = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cba, <strong class="jxr_keyword">true</strong>);
<a name="248" href="#248">248</a>         CompositeByteArrayRelativeWriter cbarw = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cba, getExpander(100), getFlusher(), <strong class="jxr_keyword">true</strong>);
<a name="249" href="#249">249</a>         resetOperations();
<a name="250" href="#250">250</a>         testRelativeReaderAndWriter(10, cbarr, cbarw);
<a name="251" href="#251">251</a>         assertOperationCountEquals(2);
<a name="252" href="#252">252</a>         resetOperations();
<a name="253" href="#253">253</a>         testRelativeReaderAndWriter(100, cbarr, cbarw);
<a name="254" href="#254">254</a>         assertOperationCountEquals(4);
<a name="255" href="#255">255</a>         resetOperations();
<a name="256" href="#256">256</a>         testRelativeReaderAndWriter(1000, cbarr, cbarw);
<a name="257" href="#257">257</a>         assertOperationCountEquals(40);
<a name="258" href="#258">258</a>         resetOperations();
<a name="259" href="#259">259</a>         testRelativeReaderAndWriter(10000, cbarr, cbarw);
<a name="260" href="#260">260</a>         assertOperationCountEquals(400);
<a name="261" href="#261">261</a>         resetOperations();
<a name="262" href="#262">262</a>         testRelativeReaderAndWriter(90, cbarr, cbarw);
<a name="263" href="#263">263</a>         assertOperationCountEquals(0); <em class="jxr_comment">// Last free doesn't occur, since cursor only moves lazily.</em>
<a name="264" href="#264">264</a>     }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeRemoveTo() <strong class="jxr_keyword">throws</strong> Exception {
<a name="267" href="#267">267</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="268" href="#268">268</a>         {
<a name="269" href="#269">269</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="270" href="#270">270</a>             resetOperations();
<a name="271" href="#271">271</a>             ByteArray removed = cba.removeTo(0);
<a name="272" href="#272">272</a>             assertEquals(0, removed.first());
<a name="273" href="#273">273</a>             assertEquals(0, removed.last());
<a name="274" href="#274">274</a>             assertEquals(0, cba.first());
<a name="275" href="#275">275</a>             assertEquals(0, cba.last());
<a name="276" href="#276">276</a>             removed.free();
<a name="277" href="#277">277</a>             assertOperationCountEquals(0);
<a name="278" href="#278">278</a>         }
<a name="279" href="#279">279</a>         cba.addLast(getByteArrayFactory().create(100));
<a name="280" href="#280">280</a>         {
<a name="281" href="#281">281</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="282" href="#282">282</a>             resetOperations();
<a name="283" href="#283">283</a>             ByteArray removed = cba.removeTo(0);
<a name="284" href="#284">284</a>             assertEquals(0, removed.first());
<a name="285" href="#285">285</a>             assertEquals(0, removed.last());
<a name="286" href="#286">286</a>             assertEquals(0, cba.first());
<a name="287" href="#287">287</a>             assertEquals(100, cba.last());
<a name="288" href="#288">288</a>             removed.free();
<a name="289" href="#289">289</a>             assertOperationCountEquals(0);
<a name="290" href="#290">290</a>         }
<a name="291" href="#291">291</a>         {
<a name="292" href="#292">292</a>             <em class="jxr_comment">// Remove entire component.</em>
<a name="293" href="#293">293</a>             resetOperations();
<a name="294" href="#294">294</a>             ByteArray removed = cba.removeTo(100);
<a name="295" href="#295">295</a>             assertEquals(0, removed.first());
<a name="296" href="#296">296</a>             assertEquals(100, removed.last());
<a name="297" href="#297">297</a>             assertEquals(100, cba.first());
<a name="298" href="#298">298</a>             assertEquals(100, cba.last());
<a name="299" href="#299">299</a>             removed.free();
<a name="300" href="#300">300</a>             assertOperationCountEquals(1);
<a name="301" href="#301">301</a>         }
<a name="302" href="#302">302</a>         {
<a name="303" href="#303">303</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="304" href="#304">304</a>             resetOperations();
<a name="305" href="#305">305</a>             ByteArray removed = cba.removeTo(100);
<a name="306" href="#306">306</a>             assertEquals(0, removed.first());
<a name="307" href="#307">307</a>             assertEquals(0, removed.last());
<a name="308" href="#308">308</a>             assertEquals(100, cba.first());
<a name="309" href="#309">309</a>             assertEquals(100, cba.last());
<a name="310" href="#310">310</a>             removed.free();
<a name="311" href="#311">311</a>             assertOperationCountEquals(0);
<a name="312" href="#312">312</a>         }
<a name="313" href="#313">313</a>         cba.addLast(getByteArrayFactory().create(100));
<a name="314" href="#314">314</a>         {
<a name="315" href="#315">315</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="316" href="#316">316</a>             resetOperations();
<a name="317" href="#317">317</a>             ByteArray removed = cba.removeTo(100);
<a name="318" href="#318">318</a>             assertEquals(0, removed.first());
<a name="319" href="#319">319</a>             assertEquals(0, removed.last());
<a name="320" href="#320">320</a>             assertEquals(100, cba.first());
<a name="321" href="#321">321</a>             assertEquals(200, cba.last());
<a name="322" href="#322">322</a>             removed.free();
<a name="323" href="#323">323</a>             assertOperationCountEquals(0);
<a name="324" href="#324">324</a>         }
<a name="325" href="#325">325</a>         {
<a name="326" href="#326">326</a>             <em class="jxr_comment">// Remove half a component.</em>
<a name="327" href="#327">327</a>             resetOperations();
<a name="328" href="#328">328</a>             ByteArray removed = cba.removeTo(150);
<a name="329" href="#329">329</a>             assertEquals(0, removed.first());
<a name="330" href="#330">330</a>             assertEquals(50, removed.last());
<a name="331" href="#331">331</a>             assertEquals(150, cba.first());
<a name="332" href="#332">332</a>             assertEquals(200, cba.last());
<a name="333" href="#333">333</a>             removed.free();
<a name="334" href="#334">334</a>             assertOperationCountEquals(0); <em class="jxr_comment">// Doesn't free until component finished.</em>
<a name="335" href="#335">335</a>         }
<a name="336" href="#336">336</a>         {
<a name="337" href="#337">337</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="338" href="#338">338</a>             resetOperations();
<a name="339" href="#339">339</a>             ByteArray removed = cba.removeTo(150);
<a name="340" href="#340">340</a>             assertEquals(0, removed.first());
<a name="341" href="#341">341</a>             assertEquals(0, removed.last());
<a name="342" href="#342">342</a>             assertEquals(150, cba.first());
<a name="343" href="#343">343</a>             assertEquals(200, cba.last());
<a name="344" href="#344">344</a>             removed.free();
<a name="345" href="#345">345</a>             assertOperationCountEquals(0);
<a name="346" href="#346">346</a>         }
<a name="347" href="#347">347</a>         {
<a name="348" href="#348">348</a>             <em class="jxr_comment">// Remove other half.</em>
<a name="349" href="#349">349</a>             resetOperations();
<a name="350" href="#350">350</a>             ByteArray removed = cba.removeTo(200);
<a name="351" href="#351">351</a>             assertEquals(0, removed.first());
<a name="352" href="#352">352</a>             assertEquals(50, removed.last());
<a name="353" href="#353">353</a>             assertEquals(200, cba.first());
<a name="354" href="#354">354</a>             assertEquals(200, cba.last());
<a name="355" href="#355">355</a>             removed.free();
<a name="356" href="#356">356</a>             assertOperationCountEquals(1); <em class="jxr_comment">// Frees ByteArray behind both buffers.</em>
<a name="357" href="#357">357</a>         }
<a name="358" href="#358">358</a>     }
<a name="359" href="#359">359</a>     
<a name="360" href="#360">360</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArraySlicing() {
<a name="361" href="#361">361</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="362" href="#362">362</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="363" href="#363">363</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="364" href="#364">364</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="365" href="#365">365</a>         testByteArraySlicing(cba, 0, 30);
<a name="366" href="#366">366</a>         testByteArraySlicing(cba, 5, 10);
<a name="367" href="#367">367</a>         testByteArraySlicing(cba, 10, 20);
<a name="368" href="#368">368</a>         testByteArraySlicing(cba, 1, 28);
<a name="369" href="#369">369</a>         testByteArraySlicing(cba, 19, 2);
<a name="370" href="#370">370</a>     }
<a name="371" href="#371">371</a>     
<a name="372" href="#372">372</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBufferByteArraySlicing() {
<a name="373" href="#373">373</a>         ByteArray bba = getByteArrayFactory().create(30);
<a name="374" href="#374">374</a>         testByteArraySlicing(bba, 0, 30);
<a name="375" href="#375">375</a>         testByteArraySlicing(bba, 5, 10);
<a name="376" href="#376">376</a>         testByteArraySlicing(bba, 10, 20);
<a name="377" href="#377">377</a>         testByteArraySlicing(bba, 1, 28);
<a name="378" href="#378">378</a>         testByteArraySlicing(bba, 19, 2);
<a name="379" href="#379">379</a>         
<a name="380" href="#380">380</a>     }
<a name="381" href="#381">381</a>     
<a name="382" href="#382">382</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testByteArraySlicing(ByteArray ba, <strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> length) {
<a name="383" href="#383">383</a>         ByteArray slice = ba.slice(start, length);
<a name="384" href="#384">384</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; length; i++) {
<a name="385" href="#385">385</a>             byte b1 = (byte) (i % 67);
<a name="386" href="#386">386</a>             byte b2 = (byte) (i % 36);
<a name="387" href="#387">387</a>             <strong class="jxr_keyword">int</strong> sourceIndex = i + start;
<a name="388" href="#388">388</a>             <strong class="jxr_keyword">int</strong> sliceIndex = i;
<a name="389" href="#389">389</a>             ba.put(sourceIndex, b1);
<a name="390" href="#390">390</a>             assertEquals(b1, ba.get(sourceIndex));
<a name="391" href="#391">391</a>             assertEquals(b1, slice.get(sliceIndex));
<a name="392" href="#392">392</a>             slice.put(sliceIndex, b2);
<a name="393" href="#393">393</a>             assertEquals(b2, ba.get(sourceIndex));
<a name="394" href="#394">394</a>             assertEquals(b2, slice.get(sliceIndex));
<a name="395" href="#395">395</a>         }
<a name="396" href="#396">396</a>     }
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a>     <strong class="jxr_keyword">private</strong> ChunkedExpander getExpander(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> chunkSize) {
<a name="399" href="#399">399</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChunkedExpander(getByteArrayFactory(), chunkSize) {
<a name="400" href="#400">400</a>             @Override
<a name="401" href="#401">401</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> expand(CompositeByteArray cba, <strong class="jxr_keyword">int</strong> minSize) {
<a name="402" href="#402">402</a>                 addOperation(<span class="jxr_string">"ChunkedExpander("</span> + chunkSize + <span class="jxr_string">").expand("</span> + cba + <span class="jxr_string">","</span> + minSize + <span class="jxr_string">")"</span>);
<a name="403" href="#403">403</a>                 <strong class="jxr_keyword">super</strong>.expand(cba, minSize);
<a name="404" href="#404">404</a>             }
<a name="405" href="#405">405</a>         };
<a name="406" href="#406">406</a>     }
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a>     <strong class="jxr_keyword">private</strong> Flusher getFlusher() {
<a name="409" href="#409">409</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter.Flusher() {
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flush(ByteArray ba) {
<a name="412" href="#412">412</a>                 addOperation(<span class="jxr_string">"Flusher().flush("</span> + ba + <span class="jxr_string">")"</span>);
<a name="413" href="#413">413</a>                 ba.free();
<a name="414" href="#414">414</a>             }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>         };
<a name="417" href="#417">417</a>     }
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>     <strong class="jxr_keyword">private</strong> SimpleByteArrayFactory getByteArrayFactory() {
<a name="420" href="#420">420</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> SimpleByteArrayFactory() {
<a name="421" href="#421">421</a>             @Override
<a name="422" href="#422">422</a>             <strong class="jxr_keyword">public</strong> ByteArray create(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> size) {
<a name="423" href="#423">423</a>                 <strong class="jxr_keyword">if</strong> (size &lt; 0) {
<a name="424" href="#424">424</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="425" href="#425">425</a>                             <span class="jxr_string">"Buffer size must not be negative:"</span> + size);
<a name="426" href="#426">426</a>                 }
<a name="427" href="#427">427</a>                 IoBuffer bb = IoBuffer.allocate(size);
<a name="428" href="#428">428</a>                 ByteArray ba = <strong class="jxr_keyword">new</strong> BufferByteArray(bb) {
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>                     @Override
<a name="431" href="#431">431</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> free() {
<a name="432" href="#432">432</a>                         addOperation(<strong class="jxr_keyword">this</strong> + <span class="jxr_string">".free()"</span>);
<a name="433" href="#433">433</a>                         <em class="jxr_comment">// Nothing to do.</em>
<a name="434" href="#434">434</a>                     }
<a name="435" href="#435">435</a> 
<a name="436" href="#436">436</a>                 };
<a name="437" href="#437">437</a>                 addOperation(<span class="jxr_string">"SimpleByteArrayFactory().create("</span> + size + <span class="jxr_string">") = "</span> + ba);
<a name="438" href="#438">438</a>                 <strong class="jxr_keyword">return</strong> ba;
<a name="439" href="#439">439</a>             }
<a name="440" href="#440">440</a>         };
<a name="441" href="#441">441</a>     }
<a name="442" href="#442">442</a> 
<a name="443" href="#443">443</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testRelativeReaderAndWriter(<strong class="jxr_keyword">int</strong> length, IoRelativeReader reader, IoRelativeWriter writer) {
<a name="444" href="#444">444</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; length; i++) {
<a name="445" href="#445">445</a>             byte b = (byte) (i % 67);
<a name="446" href="#446">446</a>             writer.put(b);
<a name="447" href="#447">447</a>             assertEquals(b, reader.get());
<a name="448" href="#448">448</a>         }
<a name="449" href="#449">449</a>     }
<a name="450" href="#450">450</a> 
<a name="451" href="#451">451</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testAbsoluteReaderAndWriter(<strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> length, IoAbsoluteReader reader, IoAbsoluteWriter writer) {
<a name="452" href="#452">452</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = start; i &lt; length; i++) {
<a name="453" href="#453">453</a>             byte b = (byte) (i % 67);
<a name="454" href="#454">454</a>             writer.put(i, b);
<a name="455" href="#455">455</a>             assertEquals(b, reader.get(i));
<a name="456" href="#456">456</a>         }
<a name="457" href="#457">457</a>     }
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testByteArrayPrimitiveAccess() {
<a name="460" href="#460">460</a>         ByteArray bbaBig = getByteArrayFactory().create(1000);
<a name="461" href="#461">461</a>         bbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="462" href="#462">462</a>         testPrimitiveAccess(bbaBig.cursor(), bbaBig.cursor());
<a name="463" href="#463">463</a> 
<a name="464" href="#464">464</a>         ByteArray bbaLittle = getByteArrayFactory().create(1000);
<a name="465" href="#465">465</a>         bbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="466" href="#466">466</a>         testPrimitiveAccess(bbaLittle.cursor(), bbaLittle.cursor());
<a name="467" href="#467">467</a>     }
<a name="468" href="#468">468</a> 
<a name="469" href="#469">469</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testByteArrayBufferAccess() {
<a name="470" href="#470">470</a>         ByteArray ba = getByteArrayFactory().create(1);
<a name="471" href="#471">471</a>         ba.put(0, (byte) 99);
<a name="472" href="#472">472</a>         IoBuffer bb = IoBuffer.allocate(2);
<a name="473" href="#473">473</a>         
<a name="474" href="#474">474</a>         bb.clear();
<a name="475" href="#475">475</a>         Cursor cursor = ba.cursor();
<a name="476" href="#476">476</a>         assertEquals(0, cursor.getIndex());
<a name="477" href="#477">477</a>         assertEquals(1, cursor.getRemaining());
<a name="478" href="#478">478</a>         assertEquals(0, bb.position());
<a name="479" href="#479">479</a>         assertEquals(2, bb.remaining());
<a name="480" href="#480">480</a>         cursor.get(bb);
<a name="481" href="#481">481</a>         assertEquals(1, cursor.getIndex());
<a name="482" href="#482">482</a>         assertEquals(0, cursor.getRemaining());
<a name="483" href="#483">483</a>         assertEquals(1, bb.position());
<a name="484" href="#484">484</a>         assertEquals(1, bb.remaining());
<a name="485" href="#485">485</a>     }
<a name="486" href="#486">486</a>     
<a name="487" href="#487">487</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayPrimitiveAccess() {
<a name="488" href="#488">488</a>         CompositeByteArray cbaBig = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="489" href="#489">489</a>         cbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="490" href="#490">490</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="491" href="#491">491</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="492" href="#492">492</a>             component.order(ByteOrder.BIG_ENDIAN);
<a name="493" href="#493">493</a>             cbaBig.addLast(component);
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a>         testPrimitiveAccess(cbaBig.cursor(), cbaBig.cursor());
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>         CompositeByteArray cbaLittle = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="498" href="#498">498</a>         cbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="499" href="#499">499</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="500" href="#500">500</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="501" href="#501">501</a>             component.order(ByteOrder.LITTLE_ENDIAN);
<a name="502" href="#502">502</a>             cbaLittle.addLast(component);
<a name="503" href="#503">503</a>         }
<a name="504" href="#504">504</a>         testPrimitiveAccess(cbaLittle.cursor(), cbaLittle.cursor());
<a name="505" href="#505">505</a>     }
<a name="506" href="#506">506</a> 
<a name="507" href="#507">507</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayWrapperPrimitiveAccess() {
<a name="508" href="#508">508</a>         CompositeByteArray cbaBig = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="509" href="#509">509</a>         cbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="510" href="#510">510</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="511" href="#511">511</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="512" href="#512">512</a>             component.order(ByteOrder.BIG_ENDIAN);
<a name="513" href="#513">513</a>             cbaBig.addLast(component);
<a name="514" href="#514">514</a>         }
<a name="515" href="#515">515</a>         testPrimitiveAccess(<strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cbaBig, getExpander(10), getFlusher(), false), <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cbaBig, <strong class="jxr_keyword">true</strong>));
<a name="516" href="#516">516</a> 
<a name="517" href="#517">517</a>         CompositeByteArray cbaLittle = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="518" href="#518">518</a>         cbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="519" href="#519">519</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="520" href="#520">520</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="521" href="#521">521</a>             component.order(ByteOrder.LITTLE_ENDIAN);
<a name="522" href="#522">522</a>             cbaLittle.addLast(component);
<a name="523" href="#523">523</a>         }
<a name="524" href="#524">524</a>         testPrimitiveAccess(<strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cbaLittle, getExpander(10), getFlusher(), false), <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cbaLittle, <strong class="jxr_keyword">true</strong>));
<a name="525" href="#525">525</a>     }
<a name="526" href="#526">526</a> 
<a name="527" href="#527">527</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testPrimitiveAccess(IoRelativeWriter write, IoRelativeReader read) {
<a name="528" href="#528">528</a>         byte b = (byte) 0x12;
<a name="529" href="#529">529</a>         write.put(b);
<a name="530" href="#530">530</a>         assertEquals(b, read.get());
<a name="531" href="#531">531</a> 
<a name="532" href="#532">532</a>         <strong class="jxr_keyword">short</strong> s = (<strong class="jxr_keyword">short</strong>) 0x12;
<a name="533" href="#533">533</a>         write.putShort(s);
<a name="534" href="#534">534</a>         assertEquals(s, read.getShort());
<a name="535" href="#535">535</a> 
<a name="536" href="#536">536</a>         <strong class="jxr_keyword">int</strong> i = 0x12345678;
<a name="537" href="#537">537</a>         write.putInt(i);
<a name="538" href="#538">538</a>         assertEquals(i, read.getInt());
<a name="539" href="#539">539</a> 
<a name="540" href="#540">540</a>         <strong class="jxr_keyword">long</strong> l = 0x1234567890123456L;
<a name="541" href="#541">541</a>         write.putLong(l);
<a name="542" href="#542">542</a>         assertEquals(l, read.getLong());
<a name="543" href="#543">543</a> 
<a name="544" href="#544">544</a>         <strong class="jxr_keyword">float</strong> f = Float.intBitsToFloat(i);
<a name="545" href="#545">545</a>         write.putFloat(f);
<a name="546" href="#546">546</a>         assertEquals(f, read.getFloat());
<a name="547" href="#547">547</a> 
<a name="548" href="#548">548</a>         <strong class="jxr_keyword">double</strong> d = Double.longBitsToDouble(l);
<a name="549" href="#549">549</a>         write.putDouble(d);
<a name="550" href="#550">550</a>         assertEquals(d, read.getDouble());
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a>         <strong class="jxr_keyword">char</strong> c = (<strong class="jxr_keyword">char</strong>) 0x1234;
<a name="553" href="#553">553</a>         write.putChar(c);
<a name="554" href="#554">554</a>         assertEquals(c, read.getChar());
<a name="555" href="#555">555</a>     }
<a name="556" href="#556">556</a> 
<a name="557" href="#557">557</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

