<!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=ISO-8859-1" /><title>IoFilterChainTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: IoFilterChainTest.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../org/apache/mina/io/package-summary.html">org.apache.mina.io</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.net.SocketAddress;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <strong>import</strong> junit.framework.Assert;
<a name="24" href="#24">24</a>  <strong>import</strong> junit.framework.TestCase;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.common.BaseSession;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.common.IdleStatus;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.common.SessionConfig;
<a name="30" href="#30">30</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <em>/**<em>*</em></em>
<a name="33" href="#33">33</a>  <em> * Tests {@link AbstractIoFilterChain}.</em>
<a name="34" href="#34">34</a>  <em> * </em>
<a name="35" href="#35">35</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="36" href="#36">36</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $ </em>
<a name="37" href="#37">37</a>  <em> */</em>
<a name="38" href="#38">38</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/io/IoFilterChainTest.html">IoFilterChainTest</a> <strong>extends</strong> TestCase
<a name="39" href="#39">39</a>  {
<a name="40" href="#40">40</a>      <strong>private</strong> IoFilterChainImpl chain;
<a name="41" href="#41">41</a>      <strong>private</strong> IoSession session;
<a name="42" href="#42">42</a>      <strong>private</strong> String result;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong>public</strong> <strong>void</strong> setUp()
<a name="45" href="#45">45</a>      {
<a name="46" href="#46">46</a>          chain = <strong>new</strong> IoFilterChainImpl();
<a name="47" href="#47">47</a>          session = <strong>new</strong> TestSession();
<a name="48" href="#48">48</a>          result = <span class="string">""</span>;
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>      
<a name="51" href="#51">51</a>      <strong>public</strong> <strong>void</strong> tearDown()
<a name="52" href="#52">52</a>      {
<a name="53" href="#53">53</a>      }
<a name="54" href="#54">54</a>      
<a name="55" href="#55">55</a>      <strong>public</strong> <strong>void</strong> testDefault()
<a name="56" href="#56">56</a>      {
<a name="57" href="#57">57</a>          run( <span class="string">"HSO HDR HDW HSI HEC HSC"</span> );
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>      
<a name="60" href="#60">60</a>      <strong>public</strong> <strong>void</strong> testChained()
<a name="61" href="#61">61</a>      {
<a name="62" href="#62">62</a>          chain.addLast( <span class="string">"A"</span>, <strong>new</strong> TestFilter( 'A' ) );
<a name="63" href="#63">63</a>          chain.addLast( <span class="string">"B"</span>, <strong>new</strong> TestFilter( 'B' ) );
<a name="64" href="#64">64</a>          run( <span class="string">"ASO BSO HSO"</span> +
<a name="65" href="#65">65</a>               <span class="string">"ADR BDR HDR"</span> +
<a name="66" href="#66">66</a>               <span class="string">"BFW AFW ADW BDW HDW"</span> +
<a name="67" href="#67">67</a>               <span class="string">"ASI BSI HSI"</span> +
<a name="68" href="#68">68</a>               <span class="string">"AEC BEC HEC"</span> +
<a name="69" href="#69">69</a>               <span class="string">"ASC BSC HSC"</span> );
<a name="70" href="#70">70</a>      }
<a name="71" href="#71">71</a>      
<a name="72" href="#72">72</a>      <strong>private</strong> <strong>void</strong> run( String expectedResult )
<a name="73" href="#73">73</a>      {
<a name="74" href="#74">74</a>          chain.sessionOpened( session );
<a name="75" href="#75">75</a>          chain.dataRead( session, ByteBuffer.allocate( 16 ) );
<a name="76" href="#76">76</a>          chain.filterWrite( session, ByteBuffer.allocate( 16 ), <strong>null</strong> );
<a name="77" href="#77">77</a>          chain.sessionIdle( session, IdleStatus.READER_IDLE );
<a name="78" href="#78">78</a>          chain.exceptionCaught( session, <strong>new</strong> Exception() );
<a name="79" href="#79">79</a>          chain.sessionClosed( session );
<a name="80" href="#80">80</a>          
<a name="81" href="#81">81</a>          result = formatResult( result );
<a name="82" href="#82">82</a>          expectedResult = formatResult( expectedResult );
<a name="83" href="#83">83</a>          
<a name="84" href="#84">84</a>          System.out.println( <span class="string">"Expected: "</span> + expectedResult );
<a name="85" href="#85">85</a>          System.out.println( <span class="string">"Actual:   "</span> + result );
<a name="86" href="#86">86</a>          Assert.assertEquals( expectedResult, result );
<a name="87" href="#87">87</a>      }
<a name="88" href="#88">88</a>      
<a name="89" href="#89">89</a>      <strong>private</strong> String formatResult( String result )
<a name="90" href="#90">90</a>      {
<a name="91" href="#91">91</a>          result = result.replaceAll( <span class="string">"&#47;&#47;s"</span>, <span class="string">""</span> );
<a name="92" href="#92">92</a>          StringBuffer buf = <strong>new</strong> StringBuffer( result.length() * 4 / 3 );
<a name="93" href="#93">93</a>          <strong>for</strong>( <strong>int</strong> i = 0; i &lt; result.length(); i++ )
<a name="94" href="#94">94</a>          {
<a name="95" href="#95">95</a>              buf.append( result.charAt( i ) );
<a name="96" href="#96">96</a>              <strong>if</strong>( i % 3 == 2 )
<a name="97" href="#97">97</a>              {
<a name="98" href="#98">98</a>                  buf.append(' ');
<a name="99" href="#99">99</a>              }
<a name="100" href="#100">100</a>         }
<a name="101" href="#101">101</a>         
<a name="102" href="#102">102</a>         <strong>return</strong> buf.toString();
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     <strong>private</strong> <strong>class</strong> TestSession <strong>extends</strong> BaseSession implements IoSession
<a name="106" href="#106">106</a>     {
<a name="107" href="#107">107</a>         <strong>private</strong> IoHandler handler = <strong>new</strong> IoHandlerAdapter()
<a name="108" href="#108">108</a>         {
<a name="109" href="#109">109</a>             <strong>public</strong> <strong>void</strong> sessionOpened(IoSession session) {
<a name="110" href="#110">110</a>                 result += <span class="string">"HSO "</span>;
<a name="111" href="#111">111</a>             }
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>             <strong>public</strong> <strong>void</strong> dataRead(IoSession session, ByteBuffer buf) {
<a name="114" href="#114">114</a>                 result += <span class="string">"HDR "</span>;
<a name="115" href="#115">115</a>             }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>             <strong>public</strong> <strong>void</strong> dataWritten(IoSession session, Object marker) {
<a name="118" href="#118">118</a>                 result += <span class="string">"HDW "</span>;
<a name="119" href="#119">119</a>             }
<a name="120" href="#120">120</a>             
<a name="121" href="#121">121</a>             <strong>public</strong> <strong>void</strong> sessionIdle(IoSession session, IdleStatus status) {
<a name="122" href="#122">122</a>                 result += <span class="string">"HSI "</span>;
<a name="123" href="#123">123</a>             }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>             <strong>public</strong> <strong>void</strong> exceptionCaught(IoSession session, Throwable cause) {
<a name="126" href="#126">126</a>                 result += <span class="string">"HEC "</span>;
<a name="127" href="#127">127</a>                 <strong>if</strong>( cause.getClass() != Exception.<strong>class</strong> )
<a name="128" href="#128">128</a>                 {
<a name="129" href="#129">129</a>                     cause.printStackTrace( System.out );
<a name="130" href="#130">130</a>                 }
<a name="131" href="#131">131</a>             }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>             <strong>public</strong> <strong>void</strong> sessionClosed(IoSession session) {
<a name="134" href="#134">134</a>                 result += <span class="string">"HSC "</span>;
<a name="135" href="#135">135</a>             }
<a name="136" href="#136">136</a>         };
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>         <strong>public</strong> IoHandler getHandler()
<a name="139" href="#139">139</a>         {
<a name="140" href="#140">140</a>             <strong>return</strong> handler;
<a name="141" href="#141">141</a>         }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>         <strong>public</strong> <strong>void</strong> close( <strong>boolean</strong> wait )
<a name="144" href="#144">144</a>         {
<a name="145" href="#145">145</a>         }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>         <strong>public</strong> <strong>void</strong> write(ByteBuffer buf, Object marker)
<a name="148" href="#148">148</a>         {
<a name="149" href="#149">149</a>         }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         <strong>public</strong> <strong>int</strong> getScheduledWriteRequests()
<a name="152" href="#152">152</a>         {
<a name="153" href="#153">153</a>             <strong>return</strong> 0;
<a name="154" href="#154">154</a>         }
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         <strong>public</strong> TransportType getTransportType()
<a name="157" href="#157">157</a>         {
<a name="158" href="#158">158</a>             <strong>return</strong> <strong>null</strong>;
<a name="159" href="#159">159</a>         }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         <strong>public</strong> <strong>boolean</strong> isConnected()
<a name="162" href="#162">162</a>         {
<a name="163" href="#163">163</a>             <strong>return</strong> false;
<a name="164" href="#164">164</a>         }
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <strong>public</strong> SessionConfig getConfig()
<a name="167" href="#167">167</a>         {
<a name="168" href="#168">168</a>             <strong>return</strong> <strong>null</strong>;
<a name="169" href="#169">169</a>         }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>         <strong>public</strong> SocketAddress getRemoteAddress()
<a name="172" href="#172">172</a>         {
<a name="173" href="#173">173</a>             <strong>return</strong> <strong>null</strong>;
<a name="174" href="#174">174</a>         }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>         <strong>public</strong> SocketAddress getLocalAddress()
<a name="177" href="#177">177</a>         {
<a name="178" href="#178">178</a>             <strong>return</strong> <strong>null</strong>;
<a name="179" href="#179">179</a>         }
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         <strong>public</strong> IoFilterChain getFilterChain()
<a name="182" href="#182">182</a>         {
<a name="183" href="#183">183</a>             <strong>return</strong> <strong>null</strong>;
<a name="184" href="#184">184</a>         }
<a name="185" href="#185">185</a>     }
<a name="186" href="#186">186</a> 
<a name="187" href="#187">187</a>     <strong>private</strong> <strong>class</strong> TestFilter implements IoFilter
<a name="188" href="#188">188</a>     {
<a name="189" href="#189">189</a>         <strong>private</strong> <strong>final</strong> <strong>char</strong> id;
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>         <strong>private</strong> TestFilter( <strong>char</strong> id )
<a name="192" href="#192">192</a>         {
<a name="193" href="#193">193</a>             <strong>this</strong>.id = id;
<a name="194" href="#194">194</a>         }
<a name="195" href="#195">195</a>         
<a name="196" href="#196">196</a>         <strong>public</strong> <strong>void</strong> sessionOpened(NextFilter nextFilter, IoSession session) {
<a name="197" href="#197">197</a>             result += id + <span class="string">"SO "</span>;
<a name="198" href="#198">198</a>             nextFilter.sessionOpened( session );
<a name="199" href="#199">199</a>         }
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>         <strong>public</strong> <strong>void</strong> sessionClosed(NextFilter nextFilter, IoSession session) {
<a name="202" href="#202">202</a>             result += id + <span class="string">"SC "</span>;
<a name="203" href="#203">203</a>             nextFilter.sessionClosed( session );
<a name="204" href="#204">204</a>         }
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>         <strong>public</strong> <strong>void</strong> sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status) {
<a name="207" href="#207">207</a>             result += id + <span class="string">"SI "</span>;
<a name="208" href="#208">208</a>             nextFilter.sessionIdle( session, status );
<a name="209" href="#209">209</a>         }
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>         <strong>public</strong> <strong>void</strong> exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause) {
<a name="212" href="#212">212</a>             result += id + <span class="string">"EC "</span>;
<a name="213" href="#213">213</a>             nextFilter.exceptionCaught( session, cause );
<a name="214" href="#214">214</a>         }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>         <strong>public</strong> <strong>void</strong> dataRead(NextFilter nextFilter, IoSession session, ByteBuffer buf) {
<a name="217" href="#217">217</a>             result += id + <span class="string">"DR "</span>;
<a name="218" href="#218">218</a>             nextFilter.dataRead( session, buf );
<a name="219" href="#219">219</a>         }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         <strong>public</strong> <strong>void</strong> dataWritten(NextFilter nextFilter, IoSession session, Object marker) {
<a name="222" href="#222">222</a>             result += id + <span class="string">"DW "</span>;
<a name="223" href="#223">223</a>             nextFilter.dataWritten( session, marker );
<a name="224" href="#224">224</a>         }
<a name="225" href="#225">225</a> 
<a name="226" href="#226">226</a>         <strong>public</strong> <strong>void</strong> filterWrite(NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker) {
<a name="227" href="#227">227</a>             result += id + <span class="string">"FW "</span>;
<a name="228" href="#228">228</a>             nextFilter.filterWrite( session, buf, marker );
<a name="229" href="#229">229</a>         }
<a name="230" href="#230">230</a>     }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>     <strong>private</strong> <strong>static</strong> <strong>class</strong> IoFilterChainImpl <strong>extends</strong> AbstractIoFilterChain
<a name="233" href="#233">233</a>     {
<a name="234" href="#234">234</a>         <strong>protected</strong> IoFilterChainImpl()
<a name="235" href="#235">235</a>         {
<a name="236" href="#236">236</a>         }
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>         <strong>protected</strong> <strong>void</strong> doWrite(IoSession session, ByteBuffer buffer, Object marker)
<a name="239" href="#239">239</a>         {
<a name="240" href="#240">240</a>             dataWritten( session, marker );
<a name="241" href="#241">241</a>         }
<a name="242" href="#242">242</a>     }
<a name="243" href="#243">243</a>     
<a name="244" href="#244">244</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

