<!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>IoBufferTest 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.core;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.nio.BufferOverflowException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteBuffer;
<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.nio.ReadOnlyBufferException;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.CharacterCodingException;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.Charset;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.CharsetDecoder;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.CharsetEncoder;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.EnumSet;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.Bar;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.junit.After;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertSame;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNotSame;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">/**</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * Tests {@link IoBuffer}.</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> *</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * @version $Rev: 754874 $, $Date: 2009-03-16 12:04:01 +0100 (Mon, 16 Mar 2009) $</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> */</em>
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/core/IoBufferTest.html">IoBufferTest</a> {
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <em class="jxr_comment">/*<em class="jxr_comment"> public static void main(String[] args) {</em></em>
<a name="57" href="#57">57</a>  <em class="jxr_comment">        junit.textui.TestRunner.run(IoBufferTest.class);</em>
<a name="58" href="#58">58</a>  <em class="jxr_comment">    } */</em>
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      @Before
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
<a name="62" href="#62">62</a>      }
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      @After
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() <strong class="jxr_keyword">throws</strong> Exception {
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      @Test
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAllocate() <strong class="jxr_keyword">throws</strong> Exception {
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 10; i &lt; 1048576 * 2; i = i * 11 / 10) <em class="jxr_comment">// increase by 10%</em>
<a name="71" href="#71">71</a>          {
<a name="72" href="#72">72</a>              IoBuffer buf = IoBuffer.allocate(i);
<a name="73" href="#73">73</a>              assertEquals(0, buf.position());
<a name="74" href="#74">74</a>              assertEquals(buf.capacity(), buf.remaining());
<a name="75" href="#75">75</a>              assertTrue(buf.capacity() &gt;= i);
<a name="76" href="#76">76</a>              assertTrue(buf.capacity() &lt; i * 2);
<a name="77" href="#77">77</a>          }
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      @Test
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAutoExpand() <strong class="jxr_keyword">throws</strong> Exception {
<a name="82" href="#82">82</a>          IoBuffer buf = IoBuffer.allocate(1);
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>          buf.put((byte) 0);
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">try</strong> {
<a name="86" href="#86">86</a>              buf.put((byte) 0);
<a name="87" href="#87">87</a>              fail(<span class="jxr_string">"Buffer can't auto expand, with autoExpand property set at false"</span>);
<a name="88" href="#88">88</a>          } <strong class="jxr_keyword">catch</strong> (BufferOverflowException e) {
<a name="89" href="#89">89</a>              <em class="jxr_comment">// Expected Exception as auto expand property is false</em>
<a name="90" href="#90">90</a>              assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="91" href="#91">91</a>          }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="94" href="#94">94</a>          buf.put((byte) 0);
<a name="95" href="#95">95</a>          assertEquals(2, buf.position());
<a name="96" href="#96">96</a>          assertEquals(2, buf.limit());
<a name="97" href="#97">97</a>          assertEquals(2, buf.capacity());
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>          buf.setAutoExpand(false);
<a name="100" href="#100">100</a>         <strong class="jxr_keyword">try</strong> {
<a name="101" href="#101">101</a>             buf.put(3, (byte) 0);
<a name="102" href="#102">102</a>             fail(<span class="jxr_string">"Buffer can't auto expand, with autoExpand property set at false"</span>);
<a name="103" href="#103">103</a>         } <strong class="jxr_keyword">catch</strong> (IndexOutOfBoundsException e) {
<a name="104" href="#104">104</a>             <em class="jxr_comment">// Expected Exception as auto expand property is false</em>
<a name="105" href="#105">105</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="106" href="#106">106</a>         }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>         buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="109" href="#109">109</a>         buf.put(3, (byte) 0);
<a name="110" href="#110">110</a>         assertEquals(2, buf.position());
<a name="111" href="#111">111</a>         assertEquals(4, buf.limit());
<a name="112" href="#112">112</a>         assertEquals(4, buf.capacity());
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         <em class="jxr_comment">// Make sure the buffer is doubled up.</em>
<a name="115" href="#115">115</a>         buf = IoBuffer.allocate(1).setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">int</strong> lastCapacity = buf.capacity();
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1048576; i ++) {
<a name="118" href="#118">118</a>             buf.put((byte) 0);
<a name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> (lastCapacity != buf.capacity()) {
<a name="120" href="#120">120</a>                 assertEquals(lastCapacity * 2, buf.capacity());
<a name="121" href="#121">121</a>                 lastCapacity = buf.capacity();
<a name="122" href="#122">122</a>             }
<a name="123" href="#123">123</a>         }
<a name="124" href="#124">124</a>     }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     @Test
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAutoExpandMark() <strong class="jxr_keyword">throws</strong> Exception {
<a name="128" href="#128">128</a>         IoBuffer buf = IoBuffer.allocate(4).setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         buf.put((byte) 0);
<a name="131" href="#131">131</a>         buf.put((byte) 0);
<a name="132" href="#132">132</a>         buf.put((byte) 0);
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         <em class="jxr_comment">// Position should be 3 when we reset this buffer.</em>
<a name="135" href="#135">135</a>         buf.mark();
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         <em class="jxr_comment">// Overflow it</em>
<a name="138" href="#138">138</a>         buf.put((byte) 0);
<a name="139" href="#139">139</a>         buf.put((byte) 0);
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         assertEquals(5, buf.position());
<a name="142" href="#142">142</a>         buf.reset();
<a name="143" href="#143">143</a>         assertEquals(3, buf.position());
<a name="144" href="#144">144</a>     }
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>     @Test
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAutoShrink() <strong class="jxr_keyword">throws</strong> Exception {
<a name="148" href="#148">148</a>         IoBuffer buf = IoBuffer.allocate(8).setAutoShrink(<strong class="jxr_keyword">true</strong>);
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         <em class="jxr_comment">// Make sure the buffer doesn't shrink too much (less than the initial</em>
<a name="151" href="#151">151</a>         <em class="jxr_comment">// capacity.)</em>
<a name="152" href="#152">152</a>         buf.sweep((byte) 1);
<a name="153" href="#153">153</a>         buf.fill(7);
<a name="154" href="#154">154</a>         buf.compact();
<a name="155" href="#155">155</a>         assertEquals(8, buf.capacity());
<a name="156" href="#156">156</a>         assertEquals(1, buf.position());
<a name="157" href="#157">157</a>         assertEquals(8, buf.limit());
<a name="158" href="#158">158</a>         buf.clear();
<a name="159" href="#159">159</a>         assertEquals(1, buf.get());
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         <em class="jxr_comment">// Expand the buffer.</em>
<a name="162" href="#162">162</a>         buf.capacity(32).clear();
<a name="163" href="#163">163</a>         assertEquals(32, buf.capacity());
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>         <em class="jxr_comment">// Make sure the buffer shrinks when only 1/4 is being used.</em>
<a name="166" href="#166">166</a>         buf.sweep((byte) 1);
<a name="167" href="#167">167</a>         buf.fill(24);
<a name="168" href="#168">168</a>         buf.compact();
<a name="169" href="#169">169</a>         assertEquals(16, buf.capacity());
<a name="170" href="#170">170</a>         assertEquals(8, buf.position());
<a name="171" href="#171">171</a>         assertEquals(16, buf.limit());
<a name="172" href="#172">172</a>         buf.clear();
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 8; i ++) {
<a name="174" href="#174">174</a>             assertEquals(1, buf.get());
<a name="175" href="#175">175</a>         }
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>         <em class="jxr_comment">// Expand the buffer.</em>
<a name="178" href="#178">178</a>         buf.capacity(32).clear();
<a name="179" href="#179">179</a>         assertEquals(32, buf.capacity());
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         <em class="jxr_comment">// Make sure the buffer shrinks when only 1/8 is being used.</em>
<a name="182" href="#182">182</a>         buf.sweep((byte) 1);
<a name="183" href="#183">183</a>         buf.fill(28);
<a name="184" href="#184">184</a>         buf.compact();
<a name="185" href="#185">185</a>         assertEquals(8, buf.capacity());
<a name="186" href="#186">186</a>         assertEquals(4, buf.position());
<a name="187" href="#187">187</a>         assertEquals(8, buf.limit());
<a name="188" href="#188">188</a>         buf.clear();
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 4; i ++) {
<a name="190" href="#190">190</a>             assertEquals(1, buf.get());
<a name="191" href="#191">191</a>         }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>         <em class="jxr_comment">// Expand the buffer.</em>
<a name="194" href="#194">194</a>         buf.capacity(32).clear();
<a name="195" href="#195">195</a>         assertEquals(32, buf.capacity());
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <em class="jxr_comment">// Make sure the buffer shrinks when 0 byte is being used.</em>
<a name="198" href="#198">198</a>         buf.fill(32);
<a name="199" href="#199">199</a>         buf.compact();
<a name="200" href="#200">200</a>         assertEquals(8, buf.capacity());
<a name="201" href="#201">201</a>         assertEquals(0, buf.position());
<a name="202" href="#202">202</a>         assertEquals(8, buf.limit());
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>         <em class="jxr_comment">// Expand the buffer.</em>
<a name="205" href="#205">205</a>         buf.capacity(32).clear();
<a name="206" href="#206">206</a>         assertEquals(32, buf.capacity());
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>         <em class="jxr_comment">// Make sure the buffer doesn't shrink when more than 1/4 is being used.</em>
<a name="209" href="#209">209</a>         buf.sweep((byte) 1);
<a name="210" href="#210">210</a>         buf.fill(23);
<a name="211" href="#211">211</a>         buf.compact();
<a name="212" href="#212">212</a>         assertEquals(32, buf.capacity());
<a name="213" href="#213">213</a>         assertEquals(9, buf.position());
<a name="214" href="#214">214</a>         assertEquals(32, buf.limit());
<a name="215" href="#215">215</a>         buf.clear();
<a name="216" href="#216">216</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 9; i ++) {
<a name="217" href="#217">217</a>             assertEquals(1, buf.get());
<a name="218" href="#218">218</a>         }
<a name="219" href="#219">219</a>     }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     @Test
<a name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetString() <strong class="jxr_keyword">throws</strong> Exception {
<a name="223" href="#223">223</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="224" href="#224">224</a>         CharsetDecoder decoder;
<a name="225" href="#225">225</a> 
<a name="226" href="#226">226</a>         Charset charset = Charset.forName(<span class="jxr_string">"UTF-8"</span>);
<a name="227" href="#227">227</a>         buf.clear();
<a name="228" href="#228">228</a>         buf.putString(<span class="jxr_string">"hello"</span>, charset.newEncoder());
<a name="229" href="#229">229</a>         buf.put((byte) 0);
<a name="230" href="#230">230</a>         buf.flip();
<a name="231" href="#231">231</a>         assertEquals(<span class="jxr_string">"hello"</span>, buf.getString(charset.newDecoder()));
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a>         buf.clear();
<a name="234" href="#234">234</a>         buf.putString(<span class="jxr_string">"hello"</span>, charset.newEncoder());
<a name="235" href="#235">235</a>         buf.flip();
<a name="236" href="#236">236</a>         assertEquals(<span class="jxr_string">"hello"</span>, buf.getString(charset.newDecoder()));
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>         decoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newDecoder();
<a name="239" href="#239">239</a>         buf.clear();
<a name="240" href="#240">240</a>         buf.put((byte) 'A');
<a name="241" href="#241">241</a>         buf.put((byte) 'B');
<a name="242" href="#242">242</a>         buf.put((byte) 'C');
<a name="243" href="#243">243</a>         buf.put((byte) 0);
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>         buf.position(0);
<a name="246" href="#246">246</a>         assertEquals(<span class="jxr_string">"ABC"</span>, buf.getString(decoder));
<a name="247" href="#247">247</a>         assertEquals(4, buf.position());
<a name="248" href="#248">248</a> 
<a name="249" href="#249">249</a>         buf.position(0);
<a name="250" href="#250">250</a>         buf.limit(1);
<a name="251" href="#251">251</a>         assertEquals(<span class="jxr_string">"A"</span>, buf.getString(decoder));
<a name="252" href="#252">252</a>         assertEquals(1, buf.position());
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>         buf.clear();
<a name="255" href="#255">255</a>         assertEquals(<span class="jxr_string">"ABC"</span>, buf.getString(10, decoder));
<a name="256" href="#256">256</a>         assertEquals(10, buf.position());
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>         buf.clear();
<a name="259" href="#259">259</a>         assertEquals(<span class="jxr_string">"A"</span>, buf.getString(1, decoder));
<a name="260" href="#260">260</a>         assertEquals(1, buf.position());
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>         <em class="jxr_comment">// Test a trailing garbage</em>
<a name="263" href="#263">263</a>         buf.clear();
<a name="264" href="#264">264</a>         buf.put((byte) 'A');
<a name="265" href="#265">265</a>         buf.put((byte) 'B');
<a name="266" href="#266">266</a>         buf.put((byte) 0);
<a name="267" href="#267">267</a>         buf.put((byte) 'C');
<a name="268" href="#268">268</a>         buf.position(0);
<a name="269" href="#269">269</a>         assertEquals(<span class="jxr_string">"AB"</span>, buf.getString(4, decoder));
<a name="270" href="#270">270</a>         assertEquals(4, buf.position());
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>         buf.clear();
<a name="273" href="#273">273</a>         buf.fillAndReset(buf.limit());
<a name="274" href="#274">274</a>         decoder = Charset.forName(<span class="jxr_string">"UTF-16"</span>).newDecoder();
<a name="275" href="#275">275</a>         buf.put((byte) 0);
<a name="276" href="#276">276</a>         buf.put((byte) 'A');
<a name="277" href="#277">277</a>         buf.put((byte) 0);
<a name="278" href="#278">278</a>         buf.put((byte) 'B');
<a name="279" href="#279">279</a>         buf.put((byte) 0);
<a name="280" href="#280">280</a>         buf.put((byte) 'C');
<a name="281" href="#281">281</a>         buf.put((byte) 0);
<a name="282" href="#282">282</a>         buf.put((byte) 0);
<a name="283" href="#283">283</a> 
<a name="284" href="#284">284</a>         buf.position(0);
<a name="285" href="#285">285</a>         assertEquals(<span class="jxr_string">"ABC"</span>, buf.getString(decoder));
<a name="286" href="#286">286</a>         assertEquals(8, buf.position());
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>         buf.position(0);
<a name="289" href="#289">289</a>         buf.limit(2);
<a name="290" href="#290">290</a>         assertEquals(<span class="jxr_string">"A"</span>, buf.getString(decoder));
<a name="291" href="#291">291</a>         assertEquals(2, buf.position());
<a name="292" href="#292">292</a> 
<a name="293" href="#293">293</a>         buf.position(0);
<a name="294" href="#294">294</a>         buf.limit(3);
<a name="295" href="#295">295</a>         assertEquals(<span class="jxr_string">"A"</span>, buf.getString(decoder));
<a name="296" href="#296">296</a>         assertEquals(2, buf.position());
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>         buf.clear();
<a name="299" href="#299">299</a>         assertEquals(<span class="jxr_string">"ABC"</span>, buf.getString(10, decoder));
<a name="300" href="#300">300</a>         assertEquals(10, buf.position());
<a name="301" href="#301">301</a> 
<a name="302" href="#302">302</a>         buf.clear();
<a name="303" href="#303">303</a>         assertEquals(<span class="jxr_string">"A"</span>, buf.getString(2, decoder));
<a name="304" href="#304">304</a>         assertEquals(2, buf.position());
<a name="305" href="#305">305</a> 
<a name="306" href="#306">306</a>         buf.clear();
<a name="307" href="#307">307</a>         <strong class="jxr_keyword">try</strong> {
<a name="308" href="#308">308</a>             buf.getString(1, decoder);
<a name="309" href="#309">309</a>             fail();
<a name="310" href="#310">310</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="311" href="#311">311</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="312" href="#312">312</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="313" href="#313">313</a>         }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>         <em class="jxr_comment">// Test getting strings from an empty buffer.</em>
<a name="316" href="#316">316</a>         buf.clear();
<a name="317" href="#317">317</a>         buf.limit(0);
<a name="318" href="#318">318</a>         assertEquals(<span class="jxr_string">""</span>, buf.getString(decoder));
<a name="319" href="#319">319</a>         assertEquals(<span class="jxr_string">""</span>, buf.getString(2, decoder));
<a name="320" href="#320">320</a> 
<a name="321" href="#321">321</a>         <em class="jxr_comment">// Test getting strings from non-empty buffer which is filled with 0x00</em>
<a name="322" href="#322">322</a>         buf.clear();
<a name="323" href="#323">323</a>         buf.putInt(0);
<a name="324" href="#324">324</a>         buf.clear();
<a name="325" href="#325">325</a>         buf.limit(4);
<a name="326" href="#326">326</a>         assertEquals(<span class="jxr_string">""</span>, buf.getString(decoder));
<a name="327" href="#327">327</a>         assertEquals(2, buf.position());
<a name="328" href="#328">328</a>         assertEquals(4, buf.limit());
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>         buf.position(0);
<a name="331" href="#331">331</a>         assertEquals(<span class="jxr_string">""</span>, buf.getString(2, decoder));
<a name="332" href="#332">332</a>         assertEquals(2, buf.position());
<a name="333" href="#333">333</a>         assertEquals(4, buf.limit());
<a name="334" href="#334">334</a>     }
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>     @Test
<a name="337" href="#337">337</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetStringWithFailure() <strong class="jxr_keyword">throws</strong> Exception {
<a name="338" href="#338">338</a>         String test = <span class="jxr_string">"\u30b3\u30e1\u30f3\u30c8\u7de8\u96c6"</span>;
<a name="339" href="#339">339</a>         IoBuffer buffer = IoBuffer.wrap(test.getBytes(<span class="jxr_string">"Shift_JIS"</span>));
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>         <em class="jxr_comment">// Make sure the limit doesn't change when an exception arose.</em>
<a name="342" href="#342">342</a>         <strong class="jxr_keyword">int</strong> oldLimit = buffer.limit();
<a name="343" href="#343">343</a>         <strong class="jxr_keyword">int</strong> oldPos = buffer.position();
<a name="344" href="#344">344</a>         <strong class="jxr_keyword">try</strong> {
<a name="345" href="#345">345</a>             buffer.getString(3, Charset.forName(<span class="jxr_string">"ASCII"</span>).newDecoder());
<a name="346" href="#346">346</a>             fail();
<a name="347" href="#347">347</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="348" href="#348">348</a>             assertEquals(oldLimit, buffer.limit());
<a name="349" href="#349">349</a>             assertEquals(oldPos, buffer.position());
<a name="350" href="#350">350</a>         }
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>         <strong class="jxr_keyword">try</strong> {
<a name="353" href="#353">353</a>             buffer.getString(Charset.forName(<span class="jxr_string">"ASCII"</span>).newDecoder());
<a name="354" href="#354">354</a>             fail();
<a name="355" href="#355">355</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="356" href="#356">356</a>             assertEquals(oldLimit, buffer.limit());
<a name="357" href="#357">357</a>             assertEquals(oldPos, buffer.position());
<a name="358" href="#358">358</a>         }
<a name="359" href="#359">359</a>     }
<a name="360" href="#360">360</a> 
<a name="361" href="#361">361</a>     @Test
<a name="362" href="#362">362</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutString() <strong class="jxr_keyword">throws</strong> Exception {
<a name="363" href="#363">363</a>         CharsetEncoder encoder;
<a name="364" href="#364">364</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="365" href="#365">365</a>         encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="366" href="#366">366</a> 
<a name="367" href="#367">367</a>         buf.putString(<span class="jxr_string">"ABC"</span>, encoder);
<a name="368" href="#368">368</a>         assertEquals(3, buf.position());
<a name="369" href="#369">369</a>         buf.clear();
<a name="370" href="#370">370</a>         assertEquals('A', buf.get(0));
<a name="371" href="#371">371</a>         assertEquals('B', buf.get(1));
<a name="372" href="#372">372</a>         assertEquals('C', buf.get(2));
<a name="373" href="#373">373</a> 
<a name="374" href="#374">374</a>         buf.putString(<span class="jxr_string">"D"</span>, 5, encoder);
<a name="375" href="#375">375</a>         assertEquals(5, buf.position());
<a name="376" href="#376">376</a>         buf.clear();
<a name="377" href="#377">377</a>         assertEquals('D', buf.get(0));
<a name="378" href="#378">378</a>         assertEquals(0, buf.get(1));
<a name="379" href="#379">379</a> 
<a name="380" href="#380">380</a>         buf.putString(<span class="jxr_string">"EFG"</span>, 2, encoder);
<a name="381" href="#381">381</a>         assertEquals(2, buf.position());
<a name="382" href="#382">382</a>         buf.clear();
<a name="383" href="#383">383</a>         assertEquals('E', buf.get(0));
<a name="384" href="#384">384</a>         assertEquals('F', buf.get(1));
<a name="385" href="#385">385</a>         assertEquals('C', buf.get(2)); <em class="jxr_comment">// C may not be overwritten</em>
<a name="386" href="#386">386</a> 
<a name="387" href="#387">387</a>         <em class="jxr_comment">// UTF-16: We specify byte order to omit BOM.</em>
<a name="388" href="#388">388</a>         encoder = Charset.forName(<span class="jxr_string">"UTF-16BE"</span>).newEncoder();
<a name="389" href="#389">389</a>         buf.clear();
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>         buf.putString(<span class="jxr_string">"ABC"</span>, encoder);
<a name="392" href="#392">392</a>         assertEquals(6, buf.position());
<a name="393" href="#393">393</a>         buf.clear();
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>         assertEquals(0, buf.get(0));
<a name="396" href="#396">396</a>         assertEquals('A', buf.get(1));
<a name="397" href="#397">397</a>         assertEquals(0, buf.get(2));
<a name="398" href="#398">398</a>         assertEquals('B', buf.get(3));
<a name="399" href="#399">399</a>         assertEquals(0, buf.get(4));
<a name="400" href="#400">400</a>         assertEquals('C', buf.get(5));
<a name="401" href="#401">401</a> 
<a name="402" href="#402">402</a>         buf.putString(<span class="jxr_string">"D"</span>, 10, encoder);
<a name="403" href="#403">403</a>         assertEquals(10, buf.position());
<a name="404" href="#404">404</a>         buf.clear();
<a name="405" href="#405">405</a>         assertEquals(0, buf.get(0));
<a name="406" href="#406">406</a>         assertEquals('D', buf.get(1));
<a name="407" href="#407">407</a>         assertEquals(0, buf.get(2));
<a name="408" href="#408">408</a>         assertEquals(0, buf.get(3));
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>         buf.putString(<span class="jxr_string">"EFG"</span>, 4, encoder);
<a name="411" href="#411">411</a>         assertEquals(4, buf.position());
<a name="412" href="#412">412</a>         buf.clear();
<a name="413" href="#413">413</a>         assertEquals(0, buf.get(0));
<a name="414" href="#414">414</a>         assertEquals('E', buf.get(1));
<a name="415" href="#415">415</a>         assertEquals(0, buf.get(2));
<a name="416" href="#416">416</a>         assertEquals('F', buf.get(3));
<a name="417" href="#417">417</a>         assertEquals(0, buf.get(4)); <em class="jxr_comment">// C may not be overwritten</em>
<a name="418" href="#418">418</a>         assertEquals('C', buf.get(5)); <em class="jxr_comment">// C may not be overwritten</em>
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>         <em class="jxr_comment">// Test putting an emptry string</em>
<a name="421" href="#421">421</a>         buf.putString(<span class="jxr_string">""</span>, encoder);
<a name="422" href="#422">422</a>         assertEquals(0, buf.position());
<a name="423" href="#423">423</a>         buf.putString(<span class="jxr_string">""</span>, 4, encoder);
<a name="424" href="#424">424</a>         assertEquals(4, buf.position());
<a name="425" href="#425">425</a>         assertEquals(0, buf.get(0));
<a name="426" href="#426">426</a>         assertEquals(0, buf.get(1));
<a name="427" href="#427">427</a>     }
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>     @Test
<a name="430" href="#430">430</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetPrefixedString() <strong class="jxr_keyword">throws</strong> Exception {
<a name="431" href="#431">431</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="432" href="#432">432</a>         CharsetEncoder encoder;
<a name="433" href="#433">433</a>         CharsetDecoder decoder;
<a name="434" href="#434">434</a>         encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="435" href="#435">435</a>         decoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newDecoder();
<a name="436" href="#436">436</a> 
<a name="437" href="#437">437</a>         buf.putShort((<strong class="jxr_keyword">short</strong>) 3);
<a name="438" href="#438">438</a>         buf.putString(<span class="jxr_string">"ABCD"</span>, encoder);
<a name="439" href="#439">439</a>         buf.clear();
<a name="440" href="#440">440</a>         assertEquals(<span class="jxr_string">"ABC"</span>, buf.getPrefixedString(decoder));
<a name="441" href="#441">441</a>     }
<a name="442" href="#442">442</a> 
<a name="443" href="#443">443</a>     @Test
<a name="444" href="#444">444</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutPrefixedString() <strong class="jxr_keyword">throws</strong> Exception {
<a name="445" href="#445">445</a>         CharsetEncoder encoder;
<a name="446" href="#446">446</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="447" href="#447">447</a>         buf.fillAndReset(buf.remaining());
<a name="448" href="#448">448</a>         encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>         <em class="jxr_comment">// Without autoExpand</em>
<a name="451" href="#451">451</a>         buf.putPrefixedString(<span class="jxr_string">"ABC"</span>, encoder);
<a name="452" href="#452">452</a>         assertEquals(5, buf.position());
<a name="453" href="#453">453</a>         assertEquals(0, buf.get(0));
<a name="454" href="#454">454</a>         assertEquals(3, buf.get(1));
<a name="455" href="#455">455</a>         assertEquals('A', buf.get(2));
<a name="456" href="#456">456</a>         assertEquals('B', buf.get(3));
<a name="457" href="#457">457</a>         assertEquals('C', buf.get(4));
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>         buf.clear();
<a name="460" href="#460">460</a>         <strong class="jxr_keyword">try</strong> {
<a name="461" href="#461">461</a>             buf.putPrefixedString(<span class="jxr_string">"123456789012345"</span>, encoder);
<a name="462" href="#462">462</a>             fail();
<a name="463" href="#463">463</a>         } <strong class="jxr_keyword">catch</strong> (BufferOverflowException e) {
<a name="464" href="#464">464</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="465" href="#465">465</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="466" href="#466">466</a>         }
<a name="467" href="#467">467</a> 
<a name="468" href="#468">468</a>         <em class="jxr_comment">// With autoExpand</em>
<a name="469" href="#469">469</a>         buf.clear();
<a name="470" href="#470">470</a>         buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="471" href="#471">471</a>         buf.putPrefixedString(<span class="jxr_string">"123456789012345"</span>, encoder);
<a name="472" href="#472">472</a>         assertEquals(17, buf.position());
<a name="473" href="#473">473</a>         assertEquals(0, buf.get(0));
<a name="474" href="#474">474</a>         assertEquals(15, buf.get(1));
<a name="475" href="#475">475</a>         assertEquals('1', buf.get(2));
<a name="476" href="#476">476</a>         assertEquals('2', buf.get(3));
<a name="477" href="#477">477</a>         assertEquals('3', buf.get(4));
<a name="478" href="#478">478</a>         assertEquals('4', buf.get(5));
<a name="479" href="#479">479</a>         assertEquals('5', buf.get(6));
<a name="480" href="#480">480</a>         assertEquals('6', buf.get(7));
<a name="481" href="#481">481</a>         assertEquals('7', buf.get(8));
<a name="482" href="#482">482</a>         assertEquals('8', buf.get(9));
<a name="483" href="#483">483</a>         assertEquals('9', buf.get(10));
<a name="484" href="#484">484</a>         assertEquals('0', buf.get(11));
<a name="485" href="#485">485</a>         assertEquals('1', buf.get(12));
<a name="486" href="#486">486</a>         assertEquals('2', buf.get(13));
<a name="487" href="#487">487</a>         assertEquals('3', buf.get(14));
<a name="488" href="#488">488</a>         assertEquals('4', buf.get(15));
<a name="489" href="#489">489</a>         assertEquals('5', buf.get(16));
<a name="490" href="#490">490</a>     }
<a name="491" href="#491">491</a> 
<a name="492" href="#492">492</a>     @Test
<a name="493" href="#493">493</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutPrefixedStringWithPrefixLength() <strong class="jxr_keyword">throws</strong> Exception {
<a name="494" href="#494">494</a>         CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="495" href="#495">495</a>         IoBuffer buf = IoBuffer.allocate(16).sweep().setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 1, encoder);
<a name="498" href="#498">498</a>         assertEquals(2, buf.position());
<a name="499" href="#499">499</a>         assertEquals(1, buf.get(0));
<a name="500" href="#500">500</a>         assertEquals('A', buf.get(1));
<a name="501" href="#501">501</a> 
<a name="502" href="#502">502</a>         buf.sweep();
<a name="503" href="#503">503</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 2, encoder);
<a name="504" href="#504">504</a>         assertEquals(3, buf.position());
<a name="505" href="#505">505</a>         assertEquals(0, buf.get(0));
<a name="506" href="#506">506</a>         assertEquals(1, buf.get(1));
<a name="507" href="#507">507</a>         assertEquals('A', buf.get(2));
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>         buf.sweep();
<a name="510" href="#510">510</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 4, encoder);
<a name="511" href="#511">511</a>         assertEquals(5, buf.position());
<a name="512" href="#512">512</a>         assertEquals(0, buf.get(0));
<a name="513" href="#513">513</a>         assertEquals(0, buf.get(1));
<a name="514" href="#514">514</a>         assertEquals(0, buf.get(2));
<a name="515" href="#515">515</a>         assertEquals(1, buf.get(3));
<a name="516" href="#516">516</a>         assertEquals('A', buf.get(4));
<a name="517" href="#517">517</a>     }
<a name="518" href="#518">518</a> 
<a name="519" href="#519">519</a>     @Test
<a name="520" href="#520">520</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutPrefixedStringWithPadding() <strong class="jxr_keyword">throws</strong> Exception {
<a name="521" href="#521">521</a>         CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="522" href="#522">522</a>         IoBuffer buf = IoBuffer.allocate(16).sweep().setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="523" href="#523">523</a> 
<a name="524" href="#524">524</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 1, 2, (byte) 32, encoder);
<a name="525" href="#525">525</a>         assertEquals(3, buf.position());
<a name="526" href="#526">526</a>         assertEquals(2, buf.get(0));
<a name="527" href="#527">527</a>         assertEquals('A', buf.get(1));
<a name="528" href="#528">528</a>         assertEquals(' ', buf.get(2));
<a name="529" href="#529">529</a> 
<a name="530" href="#530">530</a>         buf.sweep();
<a name="531" href="#531">531</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 1, 4, (byte) 32, encoder);
<a name="532" href="#532">532</a>         assertEquals(5, buf.position());
<a name="533" href="#533">533</a>         assertEquals(4, buf.get(0));
<a name="534" href="#534">534</a>         assertEquals('A', buf.get(1));
<a name="535" href="#535">535</a>         assertEquals(' ', buf.get(2));
<a name="536" href="#536">536</a>         assertEquals(' ', buf.get(3));
<a name="537" href="#537">537</a>         assertEquals(' ', buf.get(4));
<a name="538" href="#538">538</a>     }
<a name="539" href="#539">539</a> 
<a name="540" href="#540">540</a>     @Test
<a name="541" href="#541">541</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWideUtf8Characters() <strong class="jxr_keyword">throws</strong> Exception {
<a name="542" href="#542">542</a>         Runnable r = <strong class="jxr_keyword">new</strong> Runnable() {
<a name="543" href="#543">543</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="544" href="#544">544</a>                 IoBuffer buffer = IoBuffer.allocate(1);
<a name="545" href="#545">545</a>                 buffer.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>                 Charset charset = Charset.forName(<span class="jxr_string">"UTF-8"</span>);
<a name="548" href="#548">548</a> 
<a name="549" href="#549">549</a>                 CharsetEncoder encoder = charset.newEncoder();
<a name="550" href="#550">550</a> 
<a name="551" href="#551">551</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 5; i++) {
<a name="552" href="#552">552</a>                     <strong class="jxr_keyword">try</strong> {
<a name="553" href="#553">553</a>                         buffer.putString(<span class="jxr_string">"\u89d2"</span>, encoder);
<a name="554" href="#554">554</a>                         buffer.putPrefixedString(<span class="jxr_string">"\u89d2"</span>, encoder);
<a name="555" href="#555">555</a>                     } <strong class="jxr_keyword">catch</strong> (CharacterCodingException e) {
<a name="556" href="#556">556</a>                         fail(e.getMessage());
<a name="557" href="#557">557</a>                     }
<a name="558" href="#558">558</a>                 }
<a name="559" href="#559">559</a>             }
<a name="560" href="#560">560</a>         };
<a name="561" href="#561">561</a> 
<a name="562" href="#562">562</a>         Thread t = <strong class="jxr_keyword">new</strong> Thread(r);
<a name="563" href="#563">563</a>         t.setDaemon(<strong class="jxr_keyword">true</strong>);
<a name="564" href="#564">564</a>         t.start();
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 50; i++) {
<a name="567" href="#567">567</a>             Thread.sleep(100);
<a name="568" href="#568">568</a>             <strong class="jxr_keyword">if</strong> (!t.isAlive()) {
<a name="569" href="#569">569</a>                 <strong class="jxr_keyword">break</strong>;
<a name="570" href="#570">570</a>             }
<a name="571" href="#571">571</a>         }
<a name="572" href="#572">572</a> 
<a name="573" href="#573">573</a>         <strong class="jxr_keyword">if</strong> (t.isAlive()) {
<a name="574" href="#574">574</a>             t.interrupt();
<a name="575" href="#575">575</a> 
<a name="576" href="#576">576</a>             fail(<span class="jxr_string">"Went into endless loop trying to encode character"</span>);
<a name="577" href="#577">577</a>         }
<a name="578" href="#578">578</a>     }
<a name="579" href="#579">579</a> 
<a name="580" href="#580">580</a>     @Test
<a name="581" href="#581">581</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testObjectSerialization() <strong class="jxr_keyword">throws</strong> Exception {
<a name="582" href="#582">582</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="583" href="#583">583</a>         buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="584" href="#584">584</a>         List&lt;Object&gt; o = <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;();
<a name="585" href="#585">585</a>         o.add(<strong class="jxr_keyword">new</strong> Date());
<a name="586" href="#586">586</a>         o.add(<strong class="jxr_keyword">long</strong>.<strong class="jxr_keyword">class</strong>);
<a name="587" href="#587">587</a> 
<a name="588" href="#588">588</a>         <em class="jxr_comment">// Test writing an object.</em>
<a name="589" href="#589">589</a>         buf.putObject(o);
<a name="590" href="#590">590</a> 
<a name="591" href="#591">591</a>         <em class="jxr_comment">// Test reading an object.</em>
<a name="592" href="#592">592</a>         buf.clear();
<a name="593" href="#593">593</a>         Object o2 = buf.getObject();
<a name="594" href="#594">594</a>         assertEquals(o, o2);
<a name="595" href="#595">595</a> 
<a name="596" href="#596">596</a>         <em class="jxr_comment">// This assertion is just to make sure that deserialization occurred.</em>
<a name="597" href="#597">597</a>         assertNotSame(o, o2);
<a name="598" href="#598">598</a>     }
<a name="599" href="#599">599</a> 
<a name="600" href="#600">600</a>     @Test
<a name="601" href="#601">601</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInheritedObjectSerialization() <strong class="jxr_keyword">throws</strong> Exception {
<a name="602" href="#602">602</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="603" href="#603">603</a>         buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="604" href="#604">604</a> 
<a name="605" href="#605">605</a>         <a href="../../../../org/apache/mina/util/Bar.html">Bar</a> expected = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/util/Bar.html">Bar</a>();
<a name="606" href="#606">606</a>         expected.setFooValue(0x12345678);
<a name="607" href="#607">607</a>         expected.setBarValue(0x90ABCDEF);
<a name="608" href="#608">608</a> 
<a name="609" href="#609">609</a>         <em class="jxr_comment">// Test writing an object.</em>
<a name="610" href="#610">610</a>         buf.putObject(expected);
<a name="611" href="#611">611</a> 
<a name="612" href="#612">612</a>         <em class="jxr_comment">// Test reading an object.</em>
<a name="613" href="#613">613</a>         buf.clear();
<a name="614" href="#614">614</a>         <a href="../../../../org/apache/mina/util/Bar.html">Bar</a> actual = (Bar) buf.getObject();
<a name="615" href="#615">615</a>         assertSame(Bar.<strong class="jxr_keyword">class</strong>, actual.getClass());
<a name="616" href="#616">616</a>         assertEquals(expected.getFooValue(), actual.getFooValue());
<a name="617" href="#617">617</a>         assertEquals(expected.getBarValue(), actual.getBarValue());
<a name="618" href="#618">618</a> 
<a name="619" href="#619">619</a>         <em class="jxr_comment">// This assertion is just to make sure that deserialization occurred.</em>
<a name="620" href="#620">620</a>         assertNotSame(expected, actual);
<a name="621" href="#621">621</a>     }
<a name="622" href="#622">622</a> 
<a name="623" href="#623">623</a>     @Test
<a name="624" href="#624">624</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSweepWithZeros() <strong class="jxr_keyword">throws</strong> Exception {
<a name="625" href="#625">625</a>         IoBuffer buf = IoBuffer.allocate(4);
<a name="626" href="#626">626</a>         buf.putInt(0xdeadbeef);
<a name="627" href="#627">627</a>         buf.clear();
<a name="628" href="#628">628</a>         assertEquals(0xdeadbeef, buf.getInt());
<a name="629" href="#629">629</a>         assertEquals(4, buf.position());
<a name="630" href="#630">630</a>         assertEquals(4, buf.limit());
<a name="631" href="#631">631</a> 
<a name="632" href="#632">632</a>         buf.sweep();
<a name="633" href="#633">633</a>         assertEquals(0, buf.position());
<a name="634" href="#634">634</a>         assertEquals(4, buf.limit());
<a name="635" href="#635">635</a>         assertEquals(0x0, buf.getInt());
<a name="636" href="#636">636</a>     }
<a name="637" href="#637">637</a> 
<a name="638" href="#638">638</a>     @Test
<a name="639" href="#639">639</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSweepNonZeros() <strong class="jxr_keyword">throws</strong> Exception {
<a name="640" href="#640">640</a>         IoBuffer buf = IoBuffer.allocate(4);
<a name="641" href="#641">641</a>         buf.putInt(0xdeadbeef);
<a name="642" href="#642">642</a>         buf.clear();
<a name="643" href="#643">643</a>         assertEquals(0xdeadbeef, buf.getInt());
<a name="644" href="#644">644</a>         assertEquals(4, buf.position());
<a name="645" href="#645">645</a>         assertEquals(4, buf.limit());
<a name="646" href="#646">646</a> 
<a name="647" href="#647">647</a>         buf.sweep((byte) 0x45);
<a name="648" href="#648">648</a>         assertEquals(0, buf.position());
<a name="649" href="#649">649</a>         assertEquals(4, buf.limit());
<a name="650" href="#650">650</a>         assertEquals(0x45454545, buf.getInt());
<a name="651" href="#651">651</a>     }
<a name="652" href="#652">652</a> 
<a name="653" href="#653">653</a>     @Test
<a name="654" href="#654">654</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWrapNioBuffer() <strong class="jxr_keyword">throws</strong> Exception {
<a name="655" href="#655">655</a>         ByteBuffer nioBuf = ByteBuffer.allocate(10);
<a name="656" href="#656">656</a>         nioBuf.position(3);
<a name="657" href="#657">657</a>         nioBuf.limit(7);
<a name="658" href="#658">658</a> 
<a name="659" href="#659">659</a>         IoBuffer buf = IoBuffer.wrap(nioBuf);
<a name="660" href="#660">660</a>         assertEquals(3, buf.position());
<a name="661" href="#661">661</a>         assertEquals(7, buf.limit());
<a name="662" href="#662">662</a>         assertEquals(10, buf.capacity());
<a name="663" href="#663">663</a>     }
<a name="664" href="#664">664</a> 
<a name="665" href="#665">665</a>     @Test
<a name="666" href="#666">666</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWrapSubArray() <strong class="jxr_keyword">throws</strong> Exception {
<a name="667" href="#667">667</a>         byte[] array = <strong class="jxr_keyword">new</strong> byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
<a name="668" href="#668">668</a> 
<a name="669" href="#669">669</a>         IoBuffer buf = IoBuffer.wrap(array, 3, 4);
<a name="670" href="#670">670</a>         assertEquals(3, buf.position());
<a name="671" href="#671">671</a>         assertEquals(7, buf.limit());
<a name="672" href="#672">672</a>         assertEquals(10, buf.capacity());
<a name="673" href="#673">673</a> 
<a name="674" href="#674">674</a>         buf.clear();
<a name="675" href="#675">675</a>         assertEquals(0, buf.position());
<a name="676" href="#676">676</a>         assertEquals(10, buf.limit());
<a name="677" href="#677">677</a>         assertEquals(10, buf.capacity());
<a name="678" href="#678">678</a>     }
<a name="679" href="#679">679</a> 
<a name="680" href="#680">680</a>     @Test
<a name="681" href="#681">681</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicate() <strong class="jxr_keyword">throws</strong> Exception {
<a name="682" href="#682">682</a>         IoBuffer original;
<a name="683" href="#683">683</a>         IoBuffer duplicate;
<a name="684" href="#684">684</a> 
<a name="685" href="#685">685</a>         <em class="jxr_comment">// Test if the buffer is duplicated correctly.</em>
<a name="686" href="#686">686</a>         original = IoBuffer.allocate(16).sweep();
<a name="687" href="#687">687</a>         original.position(4);
<a name="688" href="#688">688</a>         original.limit(10);
<a name="689" href="#689">689</a>         duplicate = original.duplicate();
<a name="690" href="#690">690</a>         original.put(4, (byte) 127);
<a name="691" href="#691">691</a>         assertEquals(4, duplicate.position());
<a name="692" href="#692">692</a>         assertEquals(10, duplicate.limit());
<a name="693" href="#693">693</a>         assertEquals(16, duplicate.capacity());
<a name="694" href="#694">694</a>         assertNotSame(original.buf(), duplicate.buf());
<a name="695" href="#695">695</a>         assertSame(original.buf().array(), duplicate.buf().array());
<a name="696" href="#696">696</a>         assertEquals(127, duplicate.get(4));
<a name="697" href="#697">697</a> 
<a name="698" href="#698">698</a>         <em class="jxr_comment">// Test a duplicate of a duplicate.</em>
<a name="699" href="#699">699</a>         original = IoBuffer.allocate(16);
<a name="700" href="#700">700</a>         duplicate = original.duplicate().duplicate();
<a name="701" href="#701">701</a>         assertNotSame(original.buf(), duplicate.buf());
<a name="702" href="#702">702</a>         assertSame(original.buf().array(), duplicate.buf().array());
<a name="703" href="#703">703</a> 
<a name="704" href="#704">704</a>         <em class="jxr_comment">// Try to expand.</em>
<a name="705" href="#705">705</a>         original = IoBuffer.allocate(16);
<a name="706" href="#706">706</a>         original.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="707" href="#707">707</a>         duplicate = original.duplicate();
<a name="708" href="#708">708</a>         assertFalse(original.isAutoExpand());
<a name="709" href="#709">709</a> 
<a name="710" href="#710">710</a>         <strong class="jxr_keyword">try</strong> {
<a name="711" href="#711">711</a>             original.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="712" href="#712">712</a>             fail(<span class="jxr_string">"Derived buffers and their parent can't be expanded"</span>);
<a name="713" href="#713">713</a>         } <strong class="jxr_keyword">catch</strong> (IllegalStateException e) {
<a name="714" href="#714">714</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="715" href="#715">715</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="716" href="#716">716</a>         }
<a name="717" href="#717">717</a> 
<a name="718" href="#718">718</a>         <strong class="jxr_keyword">try</strong> {
<a name="719" href="#719">719</a>             duplicate.setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="720" href="#720">720</a>             fail(<span class="jxr_string">"Derived buffers and their parent can't be expanded"</span>);
<a name="721" href="#721">721</a>         } <strong class="jxr_keyword">catch</strong> (IllegalStateException e) {
<a name="722" href="#722">722</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="723" href="#723">723</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="724" href="#724">724</a>         }
<a name="725" href="#725">725</a>     }
<a name="726" href="#726">726</a> 
<a name="727" href="#727">727</a>     @Test
<a name="728" href="#728">728</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSlice() <strong class="jxr_keyword">throws</strong> Exception {
<a name="729" href="#729">729</a>         IoBuffer original;
<a name="730" href="#730">730</a>         IoBuffer slice;
<a name="731" href="#731">731</a> 
<a name="732" href="#732">732</a>         <em class="jxr_comment">// Test if the buffer is sliced correctly.</em>
<a name="733" href="#733">733</a>         original = IoBuffer.allocate(16).sweep();
<a name="734" href="#734">734</a>         original.position(4);
<a name="735" href="#735">735</a>         original.limit(10);
<a name="736" href="#736">736</a>         slice = original.slice();
<a name="737" href="#737">737</a>         original.put(4, (byte) 127);
<a name="738" href="#738">738</a>         assertEquals(0, slice.position());
<a name="739" href="#739">739</a>         assertEquals(6, slice.limit());
<a name="740" href="#740">740</a>         assertEquals(6, slice.capacity());
<a name="741" href="#741">741</a>         assertNotSame(original.buf(), slice.buf());
<a name="742" href="#742">742</a>         assertEquals(127, slice.get(0));
<a name="743" href="#743">743</a>     }
<a name="744" href="#744">744</a> 
<a name="745" href="#745">745</a>     @Test
<a name="746" href="#746">746</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadOnlyBuffer() <strong class="jxr_keyword">throws</strong> Exception {
<a name="747" href="#747">747</a>         IoBuffer original;
<a name="748" href="#748">748</a>         IoBuffer duplicate;
<a name="749" href="#749">749</a> 
<a name="750" href="#750">750</a>         <em class="jxr_comment">// Test if the buffer is duplicated correctly.</em>
<a name="751" href="#751">751</a>         original = IoBuffer.allocate(16).sweep();
<a name="752" href="#752">752</a>         original.position(4);
<a name="753" href="#753">753</a>         original.limit(10);
<a name="754" href="#754">754</a>         duplicate = original.asReadOnlyBuffer();
<a name="755" href="#755">755</a>         original.put(4, (byte) 127);
<a name="756" href="#756">756</a>         assertEquals(4, duplicate.position());
<a name="757" href="#757">757</a>         assertEquals(10, duplicate.limit());
<a name="758" href="#758">758</a>         assertEquals(16, duplicate.capacity());
<a name="759" href="#759">759</a>         assertNotSame(original.buf(), duplicate.buf());
<a name="760" href="#760">760</a>         assertEquals(127, duplicate.get(4));
<a name="761" href="#761">761</a> 
<a name="762" href="#762">762</a>         <em class="jxr_comment">// Try to expand.</em>
<a name="763" href="#763">763</a>         <strong class="jxr_keyword">try</strong> {
<a name="764" href="#764">764</a>             original = IoBuffer.allocate(16);
<a name="765" href="#765">765</a>             duplicate = original.asReadOnlyBuffer();
<a name="766" href="#766">766</a>             duplicate.putString(<span class="jxr_string">"A very very very very looooooong string"</span>,
<a name="767" href="#767">767</a>                     Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder());
<a name="768" href="#768">768</a>             fail(<span class="jxr_string">"ReadOnly buffer's can't be expanded"</span>);
<a name="769" href="#769">769</a>         } <strong class="jxr_keyword">catch</strong> (ReadOnlyBufferException e) {
<a name="770" href="#770">770</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="771" href="#771">771</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="772" href="#772">772</a>         }
<a name="773" href="#773">773</a>     }
<a name="774" href="#774">774</a> 
<a name="775" href="#775">775</a>     @Test
<a name="776" href="#776">776</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetUnsigned() <strong class="jxr_keyword">throws</strong> Exception {
<a name="777" href="#777">777</a>         IoBuffer buf = IoBuffer.allocate(16);
<a name="778" href="#778">778</a>         buf.put((byte) 0xA4);
<a name="779" href="#779">779</a>         buf.put((byte) 0xD0);
<a name="780" href="#780">780</a>         buf.put((byte) 0xB3);
<a name="781" href="#781">781</a>         buf.put((byte) 0xCD);
<a name="782" href="#782">782</a>         buf.flip();
<a name="783" href="#783">783</a> 
<a name="784" href="#784">784</a>         buf.order(ByteOrder.LITTLE_ENDIAN);
<a name="785" href="#785">785</a> 
<a name="786" href="#786">786</a>         buf.mark();
<a name="787" href="#787">787</a>         assertEquals(0xA4, buf.getUnsigned());
<a name="788" href="#788">788</a>         buf.reset();
<a name="789" href="#789">789</a>         assertEquals(0xD0A4, buf.getUnsignedShort());
<a name="790" href="#790">790</a>         buf.reset();
<a name="791" href="#791">791</a>         assertEquals(0xCDB3D0A4L, buf.getUnsignedInt());
<a name="792" href="#792">792</a>     }
<a name="793" href="#793">793</a> 
<a name="794" href="#794">794</a>     @Test
<a name="795" href="#795">795</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIndexOf() <strong class="jxr_keyword">throws</strong> Exception {
<a name="796" href="#796">796</a>         <strong class="jxr_keyword">boolean</strong> direct = false;
<a name="797" href="#797">797</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 2; i++, direct = !direct) {
<a name="798" href="#798">798</a>             IoBuffer buf = IoBuffer.allocate(16, direct);
<a name="799" href="#799">799</a>             buf.put((byte) 0x1);
<a name="800" href="#800">800</a>             buf.put((byte) 0x2);
<a name="801" href="#801">801</a>             buf.put((byte) 0x3);
<a name="802" href="#802">802</a>             buf.put((byte) 0x4);
<a name="803" href="#803">803</a>             buf.put((byte) 0x1);
<a name="804" href="#804">804</a>             buf.put((byte) 0x2);
<a name="805" href="#805">805</a>             buf.put((byte) 0x3);
<a name="806" href="#806">806</a>             buf.put((byte) 0x4);
<a name="807" href="#807">807</a>             buf.position(2);
<a name="808" href="#808">808</a>             buf.limit(5);
<a name="809" href="#809">809</a> 
<a name="810" href="#810">810</a>             assertEquals(4, buf.indexOf((byte) 0x1));
<a name="811" href="#811">811</a>             assertEquals(-1, buf.indexOf((byte) 0x2));
<a name="812" href="#812">812</a>             assertEquals(2, buf.indexOf((byte) 0x3));
<a name="813" href="#813">813</a>             assertEquals(3, buf.indexOf((byte) 0x4));
<a name="814" href="#814">814</a>         }
<a name="815" href="#815">815</a>     }
<a name="816" href="#816">816</a> 
<a name="817" href="#817">817</a>     <em class="jxr_comment">// We need an enum with 64 values</em>
<a name="818" href="#818">818</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../org/apache/mina/core/IoBufferTest.html">TestEnum</a> {
<a name="819" href="#819">819</a>         E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15, E16, E17, E18, E19, E20, E21, E22, E23, E24, E25, E26, E27, E28, E29, E30, E31, E32, E33, E34, E35, E36, E37, E38, E39, E40, E41, E42, E43, E44, E45, E46, E77, E48, E49, E50, E51, E52, E53, E54, E55, E56, E57, E58, E59, E60, E61, E62, E63, E64
<a name="820" href="#820">820</a>     }
<a name="821" href="#821">821</a> 
<a name="822" href="#822">822</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../org/apache/mina/core/IoBufferTest.html">TooBigEnum</a> {
<a name="823" href="#823">823</a>         E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15, E16, E17, E18, E19, E20, E21, E22, E23, E24, E25, E26, E27, E28, E29, E30, E31, E32, E33, E34, E35, E36, E37, E38, E39, E40, E41, E42, E43, E44, E45, E46, E77, E48, E49, E50, E51, E52, E53, E54, E55, E56, E57, E58, E59, E60, E61, E62, E63, E64, E65
<a name="824" href="#824">824</a>     }
<a name="825" href="#825">825</a> 
<a name="826" href="#826">826</a>     @Test
<a name="827" href="#827">827</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutEnumSet() {
<a name="828" href="#828">828</a>         IoBuffer buf = IoBuffer.allocate(8);
<a name="829" href="#829">829</a> 
<a name="830" href="#830">830</a>         <em class="jxr_comment">// Test empty set</em>
<a name="831" href="#831">831</a>         buf.putEnumSet(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="832" href="#832">832</a>         buf.flip();
<a name="833" href="#833">833</a>         assertEquals(0, buf.get());
<a name="834" href="#834">834</a> 
<a name="835" href="#835">835</a>         buf.clear();
<a name="836" href="#836">836</a>         buf.putEnumSetShort(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="837" href="#837">837</a>         buf.flip();
<a name="838" href="#838">838</a>         assertEquals(0, buf.getShort());
<a name="839" href="#839">839</a> 
<a name="840" href="#840">840</a>         buf.clear();
<a name="841" href="#841">841</a>         buf.putEnumSetInt(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="842" href="#842">842</a>         buf.flip();
<a name="843" href="#843">843</a>         assertEquals(0, buf.getInt());
<a name="844" href="#844">844</a> 
<a name="845" href="#845">845</a>         buf.clear();
<a name="846" href="#846">846</a>         buf.putEnumSetLong(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="847" href="#847">847</a>         buf.flip();
<a name="848" href="#848">848</a>         assertEquals(0, buf.getLong());
<a name="849" href="#849">849</a> 
<a name="850" href="#850">850</a>         <em class="jxr_comment">// Test complete set</em>
<a name="851" href="#851">851</a>         buf.clear();
<a name="852" href="#852">852</a>         buf.putEnumSet(EnumSet.range(TestEnum.E1, TestEnum.E8));
<a name="853" href="#853">853</a>         buf.flip();
<a name="854" href="#854">854</a>         assertEquals((byte) -1, buf.get());
<a name="855" href="#855">855</a> 
<a name="856" href="#856">856</a>         buf.clear();
<a name="857" href="#857">857</a>         buf.putEnumSetShort(EnumSet.range(TestEnum.E1, TestEnum.E16));
<a name="858" href="#858">858</a>         buf.flip();
<a name="859" href="#859">859</a>         assertEquals((<strong class="jxr_keyword">short</strong>) -1, buf.getShort());
<a name="860" href="#860">860</a> 
<a name="861" href="#861">861</a>         buf.clear();
<a name="862" href="#862">862</a>         buf.putEnumSetInt(EnumSet.range(TestEnum.E1, TestEnum.E32));
<a name="863" href="#863">863</a>         buf.flip();
<a name="864" href="#864">864</a>         assertEquals(-1, buf.getInt());
<a name="865" href="#865">865</a> 
<a name="866" href="#866">866</a>         buf.clear();
<a name="867" href="#867">867</a>         buf.putEnumSetLong(EnumSet.allOf(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="868" href="#868">868</a>         buf.flip();
<a name="869" href="#869">869</a>         assertEquals(-1L, buf.getLong());
<a name="870" href="#870">870</a> 
<a name="871" href="#871">871</a>         <em class="jxr_comment">// Test high bit set</em>
<a name="872" href="#872">872</a>         buf.clear();
<a name="873" href="#873">873</a>         buf.putEnumSet(EnumSet.of(TestEnum.E8));
<a name="874" href="#874">874</a>         buf.flip();
<a name="875" href="#875">875</a>         assertEquals(Byte.MIN_VALUE, buf.get());
<a name="876" href="#876">876</a> 
<a name="877" href="#877">877</a>         buf.clear();
<a name="878" href="#878">878</a>         buf.putEnumSetShort(EnumSet.of(TestEnum.E16));
<a name="879" href="#879">879</a>         buf.flip();
<a name="880" href="#880">880</a>         assertEquals(Short.MIN_VALUE, buf.getShort());
<a name="881" href="#881">881</a> 
<a name="882" href="#882">882</a>         buf.clear();
<a name="883" href="#883">883</a>         buf.putEnumSetInt(EnumSet.of(TestEnum.E32));
<a name="884" href="#884">884</a>         buf.flip();
<a name="885" href="#885">885</a>         assertEquals(Integer.MIN_VALUE, buf.getInt());
<a name="886" href="#886">886</a> 
<a name="887" href="#887">887</a>         buf.clear();
<a name="888" href="#888">888</a>         buf.putEnumSetLong(EnumSet.of(TestEnum.E64));
<a name="889" href="#889">889</a>         buf.flip();
<a name="890" href="#890">890</a>         assertEquals(Long.MIN_VALUE, buf.getLong());
<a name="891" href="#891">891</a> 
<a name="892" href="#892">892</a>         <em class="jxr_comment">// Test high low bits set</em>
<a name="893" href="#893">893</a>         buf.clear();
<a name="894" href="#894">894</a>         buf.putEnumSet(EnumSet.of(TestEnum.E1, TestEnum.E8));
<a name="895" href="#895">895</a>         buf.flip();
<a name="896" href="#896">896</a>         assertEquals(Byte.MIN_VALUE + 1, buf.get());
<a name="897" href="#897">897</a> 
<a name="898" href="#898">898</a>         buf.clear();
<a name="899" href="#899">899</a>         buf.putEnumSetShort(EnumSet.of(TestEnum.E1, TestEnum.E16));
<a name="900" href="#900">900</a>         buf.flip();
<a name="901" href="#901">901</a>         assertEquals(Short.MIN_VALUE + 1, buf.getShort());
<a name="902" href="#902">902</a> 
<a name="903" href="#903">903</a>         buf.clear();
<a name="904" href="#904">904</a>         buf.putEnumSetInt(EnumSet.of(TestEnum.E1, TestEnum.E32));
<a name="905" href="#905">905</a>         buf.flip();
<a name="906" href="#906">906</a>         assertEquals(Integer.MIN_VALUE + 1, buf.getInt());
<a name="907" href="#907">907</a> 
<a name="908" href="#908">908</a>         buf.clear();
<a name="909" href="#909">909</a>         buf.putEnumSetLong(EnumSet.of(TestEnum.E1, TestEnum.E64));
<a name="910" href="#910">910</a>         buf.flip();
<a name="911" href="#911">911</a>         assertEquals(Long.MIN_VALUE + 1, buf.getLong());
<a name="912" href="#912">912</a>     }
<a name="913" href="#913">913</a> 
<a name="914" href="#914">914</a>     @Test
<a name="915" href="#915">915</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEnumSet() {
<a name="916" href="#916">916</a>         IoBuffer buf = IoBuffer.allocate(8);
<a name="917" href="#917">917</a> 
<a name="918" href="#918">918</a>         <em class="jxr_comment">// Test empty set</em>
<a name="919" href="#919">919</a>         buf.put((byte) 0);
<a name="920" href="#920">920</a>         buf.flip();
<a name="921" href="#921">921</a>         assertEquals(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>), buf
<a name="922" href="#922">922</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="923" href="#923">923</a> 
<a name="924" href="#924">924</a>         buf.clear();
<a name="925" href="#925">925</a>         buf.putShort((<strong class="jxr_keyword">short</strong>) 0);
<a name="926" href="#926">926</a>         buf.flip();
<a name="927" href="#927">927</a>         assertEquals(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>), buf
<a name="928" href="#928">928</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="929" href="#929">929</a> 
<a name="930" href="#930">930</a>         buf.clear();
<a name="931" href="#931">931</a>         buf.putInt(0);
<a name="932" href="#932">932</a>         buf.flip();
<a name="933" href="#933">933</a>         assertEquals(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>), buf
<a name="934" href="#934">934</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="935" href="#935">935</a> 
<a name="936" href="#936">936</a>         buf.clear();
<a name="937" href="#937">937</a>         buf.putLong(0L);
<a name="938" href="#938">938</a>         buf.flip();
<a name="939" href="#939">939</a>         assertEquals(EnumSet.noneOf(TestEnum.<strong class="jxr_keyword">class</strong>), buf
<a name="940" href="#940">940</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="941" href="#941">941</a> 
<a name="942" href="#942">942</a>         <em class="jxr_comment">// Test complete set</em>
<a name="943" href="#943">943</a>         buf.clear();
<a name="944" href="#944">944</a>         buf.put((byte) -1);
<a name="945" href="#945">945</a>         buf.flip();
<a name="946" href="#946">946</a>         assertEquals(EnumSet.range(TestEnum.E1, TestEnum.E8), buf
<a name="947" href="#947">947</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="948" href="#948">948</a> 
<a name="949" href="#949">949</a>         buf.clear();
<a name="950" href="#950">950</a>         buf.putShort((<strong class="jxr_keyword">short</strong>) -1);
<a name="951" href="#951">951</a>         buf.flip();
<a name="952" href="#952">952</a>         assertEquals(EnumSet.range(TestEnum.E1, TestEnum.E16), buf
<a name="953" href="#953">953</a>                 .getEnumSetShort(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="954" href="#954">954</a> 
<a name="955" href="#955">955</a>         buf.clear();
<a name="956" href="#956">956</a>         buf.putInt(-1);
<a name="957" href="#957">957</a>         buf.flip();
<a name="958" href="#958">958</a>         assertEquals(EnumSet.range(TestEnum.E1, TestEnum.E32), buf
<a name="959" href="#959">959</a>                 .getEnumSetInt(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="960" href="#960">960</a> 
<a name="961" href="#961">961</a>         buf.clear();
<a name="962" href="#962">962</a>         buf.putLong(-1L);
<a name="963" href="#963">963</a>         buf.flip();
<a name="964" href="#964">964</a>         assertEquals(EnumSet.allOf(TestEnum.<strong class="jxr_keyword">class</strong>), buf
<a name="965" href="#965">965</a>                 .getEnumSetLong(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="966" href="#966">966</a> 
<a name="967" href="#967">967</a>         <em class="jxr_comment">// Test high bit set</em>
<a name="968" href="#968">968</a>         buf.clear();
<a name="969" href="#969">969</a>         buf.put(Byte.MIN_VALUE);
<a name="970" href="#970">970</a>         buf.flip();
<a name="971" href="#971">971</a>         assertEquals(EnumSet.of(TestEnum.E8), buf.getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="972" href="#972">972</a> 
<a name="973" href="#973">973</a>         buf.clear();
<a name="974" href="#974">974</a>         buf.putShort(Short.MIN_VALUE);
<a name="975" href="#975">975</a>         buf.flip();
<a name="976" href="#976">976</a>         assertEquals(EnumSet.of(TestEnum.E16), buf
<a name="977" href="#977">977</a>                 .getEnumSetShort(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="978" href="#978">978</a> 
<a name="979" href="#979">979</a>         buf.clear();
<a name="980" href="#980">980</a>         buf.putInt(Integer.MIN_VALUE);
<a name="981" href="#981">981</a>         buf.flip();
<a name="982" href="#982">982</a>         assertEquals(EnumSet.of(TestEnum.E32), buf
<a name="983" href="#983">983</a>                 .getEnumSetInt(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="984" href="#984">984</a> 
<a name="985" href="#985">985</a>         buf.clear();
<a name="986" href="#986">986</a>         buf.putLong(Long.MIN_VALUE);
<a name="987" href="#987">987</a>         buf.flip();
<a name="988" href="#988">988</a>         assertEquals(EnumSet.of(TestEnum.E64), buf
<a name="989" href="#989">989</a>                 .getEnumSetLong(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="990" href="#990">990</a> 
<a name="991" href="#991">991</a>         <em class="jxr_comment">// Test high low bits set</em>
<a name="992" href="#992">992</a>         buf.clear();
<a name="993" href="#993">993</a>         byte b = Byte.MIN_VALUE + 1;
<a name="994" href="#994">994</a>         buf.put(b);
<a name="995" href="#995">995</a>         buf.flip();
<a name="996" href="#996">996</a>         assertEquals(EnumSet.of(TestEnum.E1, TestEnum.E8), buf
<a name="997" href="#997">997</a>                 .getEnumSet(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="998" href="#998">998</a> 
<a name="999" href="#999">999</a>         buf.clear();
<a name="1000" href="#1000">1000</a>         <strong class="jxr_keyword">short</strong> s = Short.MIN_VALUE + 1;
<a name="1001" href="#1001">1001</a>         buf.putShort(s);
<a name="1002" href="#1002">1002</a>         buf.flip();
<a name="1003" href="#1003">1003</a>         assertEquals(EnumSet.of(TestEnum.E1, TestEnum.E16), buf
<a name="1004" href="#1004">1004</a>                 .getEnumSetShort(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1005" href="#1005">1005</a> 
<a name="1006" href="#1006">1006</a>         buf.clear();
<a name="1007" href="#1007">1007</a>         buf.putInt(Integer.MIN_VALUE + 1);
<a name="1008" href="#1008">1008</a>         buf.flip();
<a name="1009" href="#1009">1009</a>         assertEquals(EnumSet.of(TestEnum.E1, TestEnum.E32), buf
<a name="1010" href="#1010">1010</a>                 .getEnumSetInt(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1011" href="#1011">1011</a> 
<a name="1012" href="#1012">1012</a>         buf.clear();
<a name="1013" href="#1013">1013</a>         buf.putLong(Long.MIN_VALUE + 1);
<a name="1014" href="#1014">1014</a>         buf.flip();
<a name="1015" href="#1015">1015</a>         assertEquals(EnumSet.of(TestEnum.E1, TestEnum.E64), buf
<a name="1016" href="#1016">1016</a>                 .getEnumSetLong(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1017" href="#1017">1017</a>     }
<a name="1018" href="#1018">1018</a> 
<a name="1019" href="#1019">1019</a>     @Test
<a name="1020" href="#1020">1020</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBitVectorOverFlow() {
<a name="1021" href="#1021">1021</a>         IoBuffer buf = IoBuffer.allocate(8);
<a name="1022" href="#1022">1022</a>         <strong class="jxr_keyword">try</strong> {
<a name="1023" href="#1023">1023</a>             buf.putEnumSet(EnumSet.of(TestEnum.E9));
<a name="1024" href="#1024">1024</a>             fail(<span class="jxr_string">"Should have thrown IllegalArgumentException"</span>);
<a name="1025" href="#1025">1025</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="1026" href="#1026">1026</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="1027" href="#1027">1027</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="1028" href="#1028">1028</a>         }
<a name="1029" href="#1029">1029</a> 
<a name="1030" href="#1030">1030</a>         <strong class="jxr_keyword">try</strong> {
<a name="1031" href="#1031">1031</a>             buf.putEnumSetShort(EnumSet.of(TestEnum.E17));
<a name="1032" href="#1032">1032</a>             fail(<span class="jxr_string">"Should have thrown IllegalArgumentException"</span>);
<a name="1033" href="#1033">1033</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="1034" href="#1034">1034</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="1035" href="#1035">1035</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="1036" href="#1036">1036</a>         }
<a name="1037" href="#1037">1037</a> 
<a name="1038" href="#1038">1038</a>         <strong class="jxr_keyword">try</strong> {
<a name="1039" href="#1039">1039</a>             buf.putEnumSetInt(EnumSet.of(TestEnum.E33));
<a name="1040" href="#1040">1040</a>             fail(<span class="jxr_string">"Should have thrown IllegalArgumentException"</span>);
<a name="1041" href="#1041">1041</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="1042" href="#1042">1042</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="1043" href="#1043">1043</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="1044" href="#1044">1044</a>         }
<a name="1045" href="#1045">1045</a> 
<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">try</strong> {
<a name="1047" href="#1047">1047</a>             buf.putEnumSetLong(EnumSet.of(TooBigEnum.E65));
<a name="1048" href="#1048">1048</a>             fail(<span class="jxr_string">"Should have thrown IllegalArgumentException"</span>);
<a name="1049" href="#1049">1049</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="1050" href="#1050">1050</a>             <em class="jxr_comment">// Expected an Exception, signifies test success</em>
<a name="1051" href="#1051">1051</a>             assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="1052" href="#1052">1052</a>         }
<a name="1053" href="#1053">1053</a>     }
<a name="1054" href="#1054">1054</a> 
<a name="1055" href="#1055">1055</a>     @Test
<a name="1056" href="#1056">1056</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetPutEnum() {
<a name="1057" href="#1057">1057</a>         IoBuffer buf = IoBuffer.allocate(4);
<a name="1058" href="#1058">1058</a> 
<a name="1059" href="#1059">1059</a>         buf.putEnum(TestEnum.E64);
<a name="1060" href="#1060">1060</a>         buf.flip();
<a name="1061" href="#1061">1061</a>         assertEquals(TestEnum.E64, buf.getEnum(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1062" href="#1062">1062</a> 
<a name="1063" href="#1063">1063</a>         buf.clear();
<a name="1064" href="#1064">1064</a>         buf.putEnumShort(TestEnum.E64);
<a name="1065" href="#1065">1065</a>         buf.flip();
<a name="1066" href="#1066">1066</a>         assertEquals(TestEnum.E64, buf.getEnumShort(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1067" href="#1067">1067</a> 
<a name="1068" href="#1068">1068</a>         buf.clear();
<a name="1069" href="#1069">1069</a>         buf.putEnumInt(TestEnum.E64);
<a name="1070" href="#1070">1070</a>         buf.flip();
<a name="1071" href="#1071">1071</a>         assertEquals(TestEnum.E64, buf.getEnumInt(TestEnum.<strong class="jxr_keyword">class</strong>));
<a name="1072" href="#1072">1072</a>     }
<a name="1073" href="#1073">1073</a> 
<a name="1074" href="#1074">1074</a>     @Test
<a name="1075" href="#1075">1075</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMediumInt() {
<a name="1076" href="#1076">1076</a>         IoBuffer buf = IoBuffer.allocate(3);
<a name="1077" href="#1077">1077</a> 
<a name="1078" href="#1078">1078</a>         buf.put((byte) 0x01);
<a name="1079" href="#1079">1079</a>         buf.put((byte) 0x02);
<a name="1080" href="#1080">1080</a>         buf.put((byte) 0x03);
<a name="1081" href="#1081">1081</a>         assertEquals(3, buf.position());
<a name="1082" href="#1082">1082</a> 
<a name="1083" href="#1083">1083</a>         buf.flip();
<a name="1084" href="#1084">1084</a>         assertEquals(0x010203, buf.getMediumInt());
<a name="1085" href="#1085">1085</a>         assertEquals(0x010203, buf.getMediumInt(0));
<a name="1086" href="#1086">1086</a>         buf.flip();
<a name="1087" href="#1087">1087</a>         assertEquals(0x010203, buf.getUnsignedMediumInt());
<a name="1088" href="#1088">1088</a>         assertEquals(0x010203, buf.getUnsignedMediumInt(0));
<a name="1089" href="#1089">1089</a>         buf.flip();
<a name="1090" href="#1090">1090</a>         assertEquals(0x010203, buf.getUnsignedMediumInt());
<a name="1091" href="#1091">1091</a>         buf.flip().order(ByteOrder.LITTLE_ENDIAN);
<a name="1092" href="#1092">1092</a>         assertEquals(0x030201, buf.getMediumInt());
<a name="1093" href="#1093">1093</a>         assertEquals(0x030201, buf.getMediumInt(0));
<a name="1094" href="#1094">1094</a> 
<a name="1095" href="#1095">1095</a>         <em class="jxr_comment">// Test max medium int</em>
<a name="1096" href="#1096">1096</a>         buf.flip().order(ByteOrder.BIG_ENDIAN);
<a name="1097" href="#1097">1097</a>         buf.put((byte) 0x7f);
<a name="1098" href="#1098">1098</a>         buf.put((byte) 0xff);
<a name="1099" href="#1099">1099</a>         buf.put((byte) 0xff);
<a name="1100" href="#1100">1100</a>         buf.flip();
<a name="1101" href="#1101">1101</a>         assertEquals(0x7fffff, buf.getMediumInt());
<a name="1102" href="#1102">1102</a>         assertEquals(0x7fffff, buf.getMediumInt(0));
<a name="1103" href="#1103">1103</a> 
<a name="1104" href="#1104">1104</a>         <em class="jxr_comment">// Test negative number</em>
<a name="1105" href="#1105">1105</a>         buf.flip().order(ByteOrder.BIG_ENDIAN);
<a name="1106" href="#1106">1106</a>         buf.put((byte) 0xff);
<a name="1107" href="#1107">1107</a>         buf.put((byte) 0x02);
<a name="1108" href="#1108">1108</a>         buf.put((byte) 0x03);
<a name="1109" href="#1109">1109</a>         buf.flip();
<a name="1110" href="#1110">1110</a> 
<a name="1111" href="#1111">1111</a>         assertEquals(0xffff0203, buf.getMediumInt());
<a name="1112" href="#1112">1112</a>         assertEquals(0xffff0203, buf.getMediumInt(0));
<a name="1113" href="#1113">1113</a>         buf.flip();
<a name="1114" href="#1114">1114</a> 
<a name="1115" href="#1115">1115</a>         assertEquals(0x00ff0203, buf.getUnsignedMediumInt());
<a name="1116" href="#1116">1116</a>         assertEquals(0x00ff0203, buf.getUnsignedMediumInt(0));
<a name="1117" href="#1117">1117</a>     }
<a name="1118" href="#1118">1118</a> 
<a name="1119" href="#1119">1119</a>     @Test
<a name="1120" href="#1120">1120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPutMediumInt() {
<a name="1121" href="#1121">1121</a>         IoBuffer buf = IoBuffer.allocate(3);
<a name="1122" href="#1122">1122</a> 
<a name="1123" href="#1123">1123</a>         checkMediumInt(buf, 0);
<a name="1124" href="#1124">1124</a>         checkMediumInt(buf, 1);
<a name="1125" href="#1125">1125</a>         checkMediumInt(buf, -1);
<a name="1126" href="#1126">1126</a>         checkMediumInt(buf, 0x7fffff);
<a name="1127" href="#1127">1127</a>     }
<a name="1128" href="#1128">1128</a> 
<a name="1129" href="#1129">1129</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkMediumInt(IoBuffer buf, <strong class="jxr_keyword">int</strong> x) {
<a name="1130" href="#1130">1130</a>         buf.putMediumInt(x);
<a name="1131" href="#1131">1131</a>         assertEquals(3, buf.position());
<a name="1132" href="#1132">1132</a>         buf.flip();
<a name="1133" href="#1133">1133</a>         assertEquals(x, buf.getMediumInt());
<a name="1134" href="#1134">1134</a>         assertEquals(3, buf.position());
<a name="1135" href="#1135">1135</a> 
<a name="1136" href="#1136">1136</a>         buf.putMediumInt(0, x);
<a name="1137" href="#1137">1137</a>         assertEquals(3, buf.position());
<a name="1138" href="#1138">1138</a>         assertEquals(x, buf.getMediumInt(0));
<a name="1139" href="#1139">1139</a> 
<a name="1140" href="#1140">1140</a>         buf.flip();
<a name="1141" href="#1141">1141</a>     }
<a name="1142" href="#1142">1142</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

