<!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>ProtocolFilterChainTest 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: ProtocolFilterChainTest.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/protocol/package-summary.html">org.apache.mina.protocol</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.IdleStatus;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.common.SessionConfig;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em>/**<em>*</em></em>
<a name="32" href="#32">32</a>  <em> * Tests {@link AbstractProtocolFilterChain}.</em>
<a name="33" href="#33">33</a>  <em> * </em>
<a name="34" href="#34">34</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="35" href="#35">35</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $ </em>
<a name="36" href="#36">36</a>  <em> */</em>
<a name="37" href="#37">37</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/protocol/ProtocolFilterChainTest.html">ProtocolFilterChainTest</a> <strong>extends</strong> TestCase
<a name="38" href="#38">38</a>  {
<a name="39" href="#39">39</a>      <strong>private</strong> ProtocolFilterChainImpl chain;
<a name="40" href="#40">40</a>      <strong>private</strong> ProtocolSession session;
<a name="41" href="#41">41</a>      <strong>private</strong> String result;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong>public</strong> <strong>void</strong> setUp()
<a name="44" href="#44">44</a>      {
<a name="45" href="#45">45</a>          chain = <strong>new</strong> ProtocolFilterChainImpl();
<a name="46" href="#46">46</a>          session = <strong>new</strong> TestSession();
<a name="47" href="#47">47</a>          result = <span class="string">""</span>;
<a name="48" href="#48">48</a>      }
<a name="49" href="#49">49</a>      
<a name="50" href="#50">50</a>      <strong>public</strong> <strong>void</strong> tearDown()
<a name="51" href="#51">51</a>      {
<a name="52" href="#52">52</a>      }
<a name="53" href="#53">53</a>      
<a name="54" href="#54">54</a>      <strong>public</strong> <strong>void</strong> testDefault()
<a name="55" href="#55">55</a>      {
<a name="56" href="#56">56</a>          run( <span class="string">"HSO HMR HMS HSI HEC HSC"</span> );
<a name="57" href="#57">57</a>      }
<a name="58" href="#58">58</a>      
<a name="59" href="#59">59</a>      <strong>public</strong> <strong>void</strong> testChained()
<a name="60" href="#60">60</a>      {
<a name="61" href="#61">61</a>          chain.addLast( <span class="string">"A"</span>, <strong>new</strong> TestFilter( 'A' ) );
<a name="62" href="#62">62</a>          chain.addLast( <span class="string">"B"</span>, <strong>new</strong> TestFilter( 'B' ) );
<a name="63" href="#63">63</a>          run( <span class="string">"ASO BSO HSO"</span> +
<a name="64" href="#64">64</a>               <span class="string">"AMR BMR HMR"</span> +
<a name="65" href="#65">65</a>               <span class="string">"BFW AFW AMS BMS HMS"</span> +
<a name="66" href="#66">66</a>               <span class="string">"ASI BSI HSI"</span> +
<a name="67" href="#67">67</a>               <span class="string">"AEC BEC HEC"</span> +
<a name="68" href="#68">68</a>               <span class="string">"ASC BSC HSC"</span> );
<a name="69" href="#69">69</a>      }
<a name="70" href="#70">70</a>      
<a name="71" href="#71">71</a>      <strong>private</strong> <strong>void</strong> run( String expectedResult )
<a name="72" href="#72">72</a>      {
<a name="73" href="#73">73</a>          chain.sessionOpened( session );
<a name="74" href="#74">74</a>          chain.messageReceived( session, <strong>new</strong> Object() );
<a name="75" href="#75">75</a>          chain.filterWrite( session, <strong>new</strong> Object() );
<a name="76" href="#76">76</a>          chain.sessionIdle( session, IdleStatus.READER_IDLE );
<a name="77" href="#77">77</a>          chain.exceptionCaught( session, <strong>new</strong> Exception() );
<a name="78" href="#78">78</a>          chain.sessionClosed( session );
<a name="79" href="#79">79</a>          
<a name="80" href="#80">80</a>          result = formatResult( result );
<a name="81" href="#81">81</a>          expectedResult = formatResult( expectedResult );
<a name="82" href="#82">82</a>          
<a name="83" href="#83">83</a>          System.out.println( <span class="string">"Expected: "</span> + expectedResult );
<a name="84" href="#84">84</a>          System.out.println( <span class="string">"Actual:   "</span> + result );
<a name="85" href="#85">85</a>          Assert.assertEquals( expectedResult, result );
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>      
<a name="88" href="#88">88</a>      <strong>private</strong> String formatResult( String result )
<a name="89" href="#89">89</a>      {
<a name="90" href="#90">90</a>          result = result.replaceAll( <span class="string">"&#47;&#47;s"</span>, <span class="string">""</span> );
<a name="91" href="#91">91</a>          StringBuffer buf = <strong>new</strong> StringBuffer( result.length() * 4 / 3 );
<a name="92" href="#92">92</a>          <strong>for</strong>( <strong>int</strong> i = 0; i &lt; result.length(); i++ )
<a name="93" href="#93">93</a>          {
<a name="94" href="#94">94</a>              buf.append( result.charAt( i ) );
<a name="95" href="#95">95</a>              <strong>if</strong>( i % 3 == 2 )
<a name="96" href="#96">96</a>              {
<a name="97" href="#97">97</a>                  buf.append(' ');
<a name="98" href="#98">98</a>              }
<a name="99" href="#99">99</a>          }
<a name="100" href="#100">100</a>         
<a name="101" href="#101">101</a>         <strong>return</strong> buf.toString();
<a name="102" href="#102">102</a>     }
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>     <strong>private</strong> <strong>class</strong> TestSession <strong>extends</strong> BaseSession implements ProtocolSession
<a name="105" href="#105">105</a>     {
<a name="106" href="#106">106</a>         <strong>private</strong> ProtocolHandler handler = <strong>new</strong> ProtocolHandlerAdapter()
<a name="107" href="#107">107</a>         {
<a name="108" href="#108">108</a>             <strong>public</strong> <strong>void</strong> sessionOpened(ProtocolSession session) {
<a name="109" href="#109">109</a>                 result += <span class="string">"HSO"</span>;
<a name="110" href="#110">110</a>             }
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>             <strong>public</strong> <strong>void</strong> sessionClosed(ProtocolSession session) {
<a name="113" href="#113">113</a>                 result += <span class="string">"HSC"</span>;
<a name="114" href="#114">114</a>             }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>             <strong>public</strong> <strong>void</strong> sessionIdle(ProtocolSession session, IdleStatus status) {
<a name="117" href="#117">117</a>                 result += <span class="string">"HSI"</span>;
<a name="118" href="#118">118</a>             }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>             <strong>public</strong> <strong>void</strong> exceptionCaught(ProtocolSession session, Throwable cause) {
<a name="121" href="#121">121</a>                 result += <span class="string">"HEC"</span>;
<a name="122" href="#122">122</a>                 <strong>if</strong>( cause.getClass() != Exception.<strong>class</strong> )
<a name="123" href="#123">123</a>                 {
<a name="124" href="#124">124</a>                     cause.printStackTrace( System.out );
<a name="125" href="#125">125</a>                 }
<a name="126" href="#126">126</a>             }
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>             <strong>public</strong> <strong>void</strong> messageReceived(ProtocolSession session, Object message) {
<a name="129" href="#129">129</a>                 result += <span class="string">"HMR"</span>;
<a name="130" href="#130">130</a>             }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>             <strong>public</strong> <strong>void</strong> messageSent(ProtocolSession session, Object message) {
<a name="133" href="#133">133</a>                 result += <span class="string">"HMS"</span>;
<a name="134" href="#134">134</a>             }
<a name="135" href="#135">135</a>         };
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         <strong>public</strong> ProtocolHandler getHandler() {
<a name="138" href="#138">138</a>             <strong>return</strong> handler;
<a name="139" href="#139">139</a>         }
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         <strong>public</strong> ProtocolEncoder getEncoder() {
<a name="142" href="#142">142</a>             <strong>return</strong> <strong>null</strong>;
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>         <strong>public</strong> ProtocolDecoder getDecoder() {
<a name="146" href="#146">146</a>             <strong>return</strong> <strong>null</strong>;
<a name="147" href="#147">147</a>         }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>         <strong>public</strong> <strong>void</strong> close( <strong>boolean</strong> wait ) {
<a name="150" href="#150">150</a>         }
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>         <strong>public</strong> <strong>void</strong> write(Object message) {
<a name="153" href="#153">153</a>         }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>         <strong>public</strong> <strong>int</strong> getScheduledWriteRequests()
<a name="156" href="#156">156</a>         {
<a name="157" href="#157">157</a>             <strong>return</strong> 0;
<a name="158" href="#158">158</a>         }
<a name="159" href="#159">159</a> 
<a name="160" href="#160">160</a>         <strong>public</strong> TransportType getTransportType() {
<a name="161" href="#161">161</a>             <strong>return</strong> <strong>null</strong>;
<a name="162" href="#162">162</a>         }
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>         <strong>public</strong> <strong>boolean</strong> isConnected() {
<a name="165" href="#165">165</a>             <strong>return</strong> false;
<a name="166" href="#166">166</a>         }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>         <strong>public</strong> SessionConfig getConfig() {
<a name="169" href="#169">169</a>             <strong>return</strong> <strong>null</strong>;
<a name="170" href="#170">170</a>         }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>         <strong>public</strong> SocketAddress getRemoteAddress() {
<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>             <strong>return</strong> <strong>null</strong>;
<a name="178" href="#178">178</a>         }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>         <strong>public</strong> ProtocolFilterChain getFilterChain()
<a name="181" href="#181">181</a>         {
<a name="182" href="#182">182</a>             <strong>return</strong> <strong>null</strong>;
<a name="183" href="#183">183</a>         }
<a name="184" href="#184">184</a>     }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>     <strong>private</strong> <strong>class</strong> TestFilter implements ProtocolFilter
<a name="187" href="#187">187</a>     {
<a name="188" href="#188">188</a>         <strong>private</strong> <strong>final</strong> <strong>char</strong> id;
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>         <strong>private</strong> TestFilter( <strong>char</strong> id )
<a name="191" href="#191">191</a>         {
<a name="192" href="#192">192</a>             <strong>this</strong>.id = id;
<a name="193" href="#193">193</a>         }
<a name="194" href="#194">194</a>         
<a name="195" href="#195">195</a>         <strong>public</strong> <strong>void</strong> sessionOpened(NextFilter nextFilter, ProtocolSession session) {
<a name="196" href="#196">196</a>             result += id + <span class="string">"SO"</span>;
<a name="197" href="#197">197</a>             nextFilter.sessionOpened( session );
<a name="198" href="#198">198</a>         }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>         <strong>public</strong> <strong>void</strong> sessionClosed(NextFilter nextFilter, ProtocolSession session) {
<a name="201" href="#201">201</a>             result += id + <span class="string">"SC"</span>;
<a name="202" href="#202">202</a>             nextFilter.sessionClosed( session );
<a name="203" href="#203">203</a>         }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>         <strong>public</strong> <strong>void</strong> sessionIdle(NextFilter nextFilter, ProtocolSession session, IdleStatus status) {
<a name="206" href="#206">206</a>             result += id + <span class="string">"SI"</span>;
<a name="207" href="#207">207</a>             nextFilter.sessionIdle( session, status );
<a name="208" href="#208">208</a>         }
<a name="209" href="#209">209</a> 
<a name="210" href="#210">210</a>         <strong>public</strong> <strong>void</strong> exceptionCaught(NextFilter nextFilter, ProtocolSession session, Throwable cause) {
<a name="211" href="#211">211</a>             result += id + <span class="string">"EC"</span>;
<a name="212" href="#212">212</a>             nextFilter.exceptionCaught( session, cause );
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>         <strong>public</strong> <strong>void</strong> filterWrite(NextFilter nextFilter, ProtocolSession session, Object message) {
<a name="216" href="#216">216</a>             result += id + <span class="string">"FW"</span>;
<a name="217" href="#217">217</a>             nextFilter.filterWrite( session, message );
<a name="218" href="#218">218</a>         }
<a name="219" href="#219">219</a> 
<a name="220" href="#220">220</a>         <strong>public</strong> <strong>void</strong> messageReceived(NextFilter nextFilter, org.apache.mina.protocol.ProtocolSession session, Object message) {
<a name="221" href="#221">221</a>             result += id + <span class="string">"MR"</span>;
<a name="222" href="#222">222</a>             nextFilter.messageReceived( session, message );
<a name="223" href="#223">223</a>         }
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>         <strong>public</strong> <strong>void</strong> messageSent(NextFilter nextFilter, org.apache.mina.protocol.ProtocolSession session, Object message) {
<a name="226" href="#226">226</a>             result += id + <span class="string">"MS"</span>;
<a name="227" href="#227">227</a>             nextFilter.messageSent( session, message );
<a name="228" href="#228">228</a>         }
<a name="229" href="#229">229</a>     }
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>     <strong>private</strong> <strong>static</strong> <strong>class</strong> ProtocolFilterChainImpl <strong>extends</strong> AbstractProtocolFilterChain
<a name="232" href="#232">232</a>     {
<a name="233" href="#233">233</a>         <strong>protected</strong> ProtocolFilterChainImpl()
<a name="234" href="#234">234</a>         {
<a name="235" href="#235">235</a>         }
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>         <strong>protected</strong> <strong>void</strong> doWrite( ProtocolSession session, Object message )
<a name="238" href="#238">238</a>         {
<a name="239" href="#239">239</a>             messageSent( session, message );
<a name="240" href="#240">240</a>         }
<a name="241" href="#241">241</a>     }
<a name="242" href="#242">242</a>     
<a name="243" href="#243">243</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

