<!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>BufferedWriteFilterTest 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.filter.buffer;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterAdapter;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.DummySession;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequest;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.buffer.BufferedWriteFilter;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.logging.LoggingFilter;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">/**</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Tests {@link BufferedWriteFilter}.</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> *</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @version $Rev$, $Date$</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M2</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/filter/buffer/BufferedWriteFilterTest.html">BufferedWriteFilterTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger = LoggerFactory
<a name="43" href="#43">43</a>              .getLogger(BufferedWriteFilterTest.<strong class="jxr_keyword">class</strong>);
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNonExpandableBuffer() <strong class="jxr_keyword">throws</strong> Exception {
<a name="46" href="#46">46</a>          IoBuffer dest = IoBuffer.allocate(1);
<a name="47" href="#47">47</a>          assertEquals(false, dest.isAutoExpand());
<a name="48" href="#48">48</a>      }
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBasicBuffering() {
<a name="51" href="#51">51</a>          DummySession sess = <strong class="jxr_keyword">new</strong> DummySession();
<a name="52" href="#52">52</a>          sess.getFilterChain().addFirst(<span class="jxr_string">"peer"</span>, <strong class="jxr_keyword">new</strong> IoFilterAdapter() {
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>              <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> counter;
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>              @Override
<a name="57" href="#57">57</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filterClose(NextFilter nextFilter, IoSession session)
<a name="58" href="#58">58</a>                      <strong class="jxr_keyword">throws</strong> Exception {
<a name="59" href="#59">59</a>                  logger.debug(<span class="jxr_string">"Filter closed !"</span>);
<a name="60" href="#60">60</a>                  assertEquals(3, counter);
<a name="61" href="#61">61</a>              }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>              @Override
<a name="64" href="#64">64</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filterWrite(NextFilter nextFilter, IoSession session,
<a name="65" href="#65">65</a>                      WriteRequest writeRequest) <strong class="jxr_keyword">throws</strong> Exception {
<a name="66" href="#66">66</a>                  logger.debug(<span class="jxr_string">"New buffered message written !"</span>);
<a name="67" href="#67">67</a>                  counter++;
<a name="68" href="#68">68</a>                  <strong class="jxr_keyword">try</strong> {
<a name="69" href="#69">69</a>                      IoBuffer buf = (IoBuffer) writeRequest.getMessage();
<a name="70" href="#70">70</a>                      <strong class="jxr_keyword">if</strong> (counter == 3) {
<a name="71" href="#71">71</a>                          assertEquals(1, buf.limit());
<a name="72" href="#72">72</a>                          assertEquals(0, buf.get());
<a name="73" href="#73">73</a>                      } <strong class="jxr_keyword">else</strong> {
<a name="74" href="#74">74</a>                          assertEquals(10, buf.limit());
<a name="75" href="#75">75</a>                      }
<a name="76" href="#76">76</a>                  } <strong class="jxr_keyword">catch</strong> (Exception ex) {
<a name="77" href="#77">77</a>                      <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> AssertionError(<span class="jxr_string">"Wrong message type"</span>);
<a name="78" href="#78">78</a>                  }
<a name="79" href="#79">79</a>              }
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>          });
<a name="82" href="#82">82</a>          sess.getFilterChain().addFirst(<span class="jxr_string">"logger"</span>, <strong class="jxr_keyword">new</strong> LoggingFilter());
<a name="83" href="#83">83</a>          BufferedWriteFilter bFilter = <strong class="jxr_keyword">new</strong> BufferedWriteFilter(10);
<a name="84" href="#84">84</a>          sess.getFilterChain().addLast(<span class="jxr_string">"buffer"</span>, bFilter);
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          IoBuffer data = IoBuffer.allocate(1);
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">for</strong> (byte i = 0; i &lt; 20; i++) {
<a name="88" href="#88">88</a>              data.put((byte) (0x30 + i));
<a name="89" href="#89">89</a>              data.flip();
<a name="90" href="#90">90</a>              sess.write(data);
<a name="91" href="#91">91</a>              data.clear();
<a name="92" href="#92">92</a>          }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>          <em class="jxr_comment">// Add one more byte to overflow the final buffer</em>
<a name="95" href="#95">95</a>          data.put((byte) 0);
<a name="96" href="#96">96</a>          data.flip();
<a name="97" href="#97">97</a>          sess.write(data);
<a name="98" href="#98">98</a>          
<a name="99" href="#99">99</a>          <em class="jxr_comment">// Flush the final byte</em>
<a name="100" href="#100">100</a>         bFilter.flush(sess);
<a name="101" href="#101">101</a>         
<a name="102" href="#102">102</a>         sess.close(<strong class="jxr_keyword">true</strong>);
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

