<!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>FutureTest 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.io.IOException;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.DefaultCloseFuture;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.DefaultConnectFuture;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.DefaultWriteFuture;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.IoFuture;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.IoFutureListener;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.DummySession;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNull;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertSame;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * Tests {@link IoFuture} implementations.</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @version $Rev:671827 $, $Date:2008-06-26 09:49:48 +0100 (jeu., 26 juin 2008) $</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">FutureTest</a> {
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      @Test
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCloseFuture() <strong class="jxr_keyword">throws</strong> Exception {
<a name="50" href="#50">50</a>          DefaultCloseFuture future = <strong class="jxr_keyword">new</strong> DefaultCloseFuture(<strong class="jxr_keyword">null</strong>);
<a name="51" href="#51">51</a>          assertFalse(future.isDone());
<a name="52" href="#52">52</a>          assertFalse(future.isClosed());
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>          <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="55" href="#55">55</a>          thread.start();
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>          future.setClosed();
<a name="58" href="#58">58</a>          thread.join();
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>          assertTrue(thread.success);
<a name="61" href="#61">61</a>          assertTrue(future.isDone());
<a name="62" href="#62">62</a>          assertTrue(future.isClosed());
<a name="63" href="#63">63</a>      }
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>      @Test
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConnectFuture() <strong class="jxr_keyword">throws</strong> Exception {
<a name="67" href="#67">67</a>          DefaultConnectFuture future = <strong class="jxr_keyword">new</strong> DefaultConnectFuture();
<a name="68" href="#68">68</a>          assertFalse(future.isDone());
<a name="69" href="#69">69</a>          assertFalse(future.isConnected());
<a name="70" href="#70">70</a>          assertNull(future.getSession());
<a name="71" href="#71">71</a>          assertNull(future.getException());
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>          <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="74" href="#74">74</a>          thread.start();
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>          IoSession session = <strong class="jxr_keyword">new</strong> DummySession();
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>          future.setSession(session);
<a name="79" href="#79">79</a>          thread.join();
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>          assertTrue(thread.success);
<a name="82" href="#82">82</a>          assertTrue(future.isDone());
<a name="83" href="#83">83</a>          assertTrue(future.isConnected());
<a name="84" href="#84">84</a>          assertEquals(session, future.getSession());
<a name="85" href="#85">85</a>          assertNull(future.getException());
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          future = <strong class="jxr_keyword">new</strong> DefaultConnectFuture();
<a name="88" href="#88">88</a>          thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="89" href="#89">89</a>          thread.start();
<a name="90" href="#90">90</a>          future.setException(<strong class="jxr_keyword">new</strong> IOException());
<a name="91" href="#91">91</a>          thread.join();
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          assertTrue(thread.success);
<a name="94" href="#94">94</a>          assertTrue(future.isDone());
<a name="95" href="#95">95</a>          assertFalse(future.isConnected());
<a name="96" href="#96">96</a>          assertTrue(future.getException() instanceof IOException);
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>          <strong class="jxr_keyword">try</strong> {
<a name="99" href="#99">99</a>              future.getSession();
<a name="100" href="#100">100</a>             fail(<span class="jxr_string">"IOException should be thrown."</span>);
<a name="101" href="#101">101</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="102" href="#102">102</a>         }
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     @Test
<a name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWriteFuture() <strong class="jxr_keyword">throws</strong> Exception {
<a name="107" href="#107">107</a>         DefaultWriteFuture future = <strong class="jxr_keyword">new</strong> DefaultWriteFuture(<strong class="jxr_keyword">null</strong>);
<a name="108" href="#108">108</a>         assertFalse(future.isDone());
<a name="109" href="#109">109</a>         assertFalse(future.isWritten());
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="112" href="#112">112</a>         thread.start();
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         future.setWritten();
<a name="115" href="#115">115</a>         thread.join();
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>         assertTrue(thread.success);
<a name="118" href="#118">118</a>         assertTrue(future.isDone());
<a name="119" href="#119">119</a>         assertTrue(future.isWritten());
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>         future = <strong class="jxr_keyword">new</strong> DefaultWriteFuture(<strong class="jxr_keyword">null</strong>);
<a name="122" href="#122">122</a>         thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="123" href="#123">123</a>         thread.start();
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         future.setException(<strong class="jxr_keyword">new</strong> Exception());
<a name="126" href="#126">126</a>         thread.join();
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>         assertTrue(thread.success);
<a name="129" href="#129">129</a>         assertTrue(future.isDone());
<a name="130" href="#130">130</a>         assertFalse(future.isWritten());
<a name="131" href="#131">131</a>         assertTrue(future.getException().getClass() == Exception.<strong class="jxr_keyword">class</strong>);
<a name="132" href="#132">132</a>     }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>     @Test
<a name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddListener() <strong class="jxr_keyword">throws</strong> Exception {
<a name="136" href="#136">136</a>         DefaultCloseFuture future = <strong class="jxr_keyword">new</strong> DefaultCloseFuture(<strong class="jxr_keyword">null</strong>);
<a name="137" href="#137">137</a>         assertFalse(future.isDone());
<a name="138" href="#138">138</a>         assertFalse(future.isClosed());
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="141" href="#141">141</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="142" href="#142">142</a>         future.addListener(listener1);
<a name="143" href="#143">143</a>         future.addListener(listener2);
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="146" href="#146">146</a>         thread.start();
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>         future.setClosed();
<a name="149" href="#149">149</a>         thread.join();
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         assertTrue(thread.success);
<a name="152" href="#152">152</a>         assertTrue(future.isDone());
<a name="153" href="#153">153</a>         assertTrue(future.isClosed());
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>         assertSame(future, listener1.notifiedFuture);
<a name="156" href="#156">156</a>         assertSame(future, listener2.notifiedFuture);
<a name="157" href="#157">157</a>     }
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>     @Test
<a name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLateAddListener() <strong class="jxr_keyword">throws</strong> Exception {
<a name="161" href="#161">161</a>         DefaultCloseFuture future = <strong class="jxr_keyword">new</strong> DefaultCloseFuture(<strong class="jxr_keyword">null</strong>);
<a name="162" href="#162">162</a>         assertFalse(future.isDone());
<a name="163" href="#163">163</a>         assertFalse(future.isClosed());
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="166" href="#166">166</a>         thread.start();
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>         future.setClosed();
<a name="169" href="#169">169</a>         thread.join();
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>         assertTrue(thread.success);
<a name="172" href="#172">172</a>         assertTrue(future.isDone());
<a name="173" href="#173">173</a>         assertTrue(future.isClosed());
<a name="174" href="#174">174</a> 
<a name="175" href="#175">175</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="176" href="#176">176</a>         future.addListener(listener);
<a name="177" href="#177">177</a>         assertSame(future, listener.notifiedFuture);
<a name="178" href="#178">178</a>     }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>     @Test
<a name="181" href="#181">181</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveListener1() <strong class="jxr_keyword">throws</strong> Exception {
<a name="182" href="#182">182</a>         DefaultCloseFuture future = <strong class="jxr_keyword">new</strong> DefaultCloseFuture(<strong class="jxr_keyword">null</strong>);
<a name="183" href="#183">183</a>         assertFalse(future.isDone());
<a name="184" href="#184">184</a>         assertFalse(future.isClosed());
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="187" href="#187">187</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="188" href="#188">188</a>         future.addListener(listener1);
<a name="189" href="#189">189</a>         future.addListener(listener2);
<a name="190" href="#190">190</a>         future.removeListener(listener1);
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="193" href="#193">193</a>         thread.start();
<a name="194" href="#194">194</a> 
<a name="195" href="#195">195</a>         future.setClosed();
<a name="196" href="#196">196</a>         thread.join();
<a name="197" href="#197">197</a> 
<a name="198" href="#198">198</a>         assertTrue(thread.success);
<a name="199" href="#199">199</a>         assertTrue(future.isDone());
<a name="200" href="#200">200</a>         assertTrue(future.isClosed());
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>         assertSame(<strong class="jxr_keyword">null</strong>, listener1.notifiedFuture);
<a name="203" href="#203">203</a>         assertSame(future, listener2.notifiedFuture);
<a name="204" href="#204">204</a>     }
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>     @Test
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveListener2() <strong class="jxr_keyword">throws</strong> Exception {
<a name="208" href="#208">208</a>         DefaultCloseFuture future = <strong class="jxr_keyword">new</strong> DefaultCloseFuture(<strong class="jxr_keyword">null</strong>);
<a name="209" href="#209">209</a>         assertFalse(future.isDone());
<a name="210" href="#210">210</a>         assertFalse(future.isClosed());
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="213" href="#213">213</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> listener2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a>();
<a name="214" href="#214">214</a>         future.addListener(listener1);
<a name="215" href="#215">215</a>         future.addListener(listener2);
<a name="216" href="#216">216</a>         future.removeListener(listener2);
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>         <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> thread = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(future);
<a name="219" href="#219">219</a>         thread.start();
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         future.setClosed();
<a name="222" href="#222">222</a>         thread.join();
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>         assertTrue(thread.success);
<a name="225" href="#225">225</a>         assertTrue(future.isDone());
<a name="226" href="#226">226</a>         assertTrue(future.isClosed());
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>         assertSame(future, listener1.notifiedFuture);
<a name="229" href="#229">229</a>         assertSame(<strong class="jxr_keyword">null</strong>, listener2.notifiedFuture);
<a name="230" href="#230">230</a>     }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a> <strong class="jxr_keyword">extends</strong> Thread {
<a name="233" href="#233">233</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> IoFuture future;
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> success;
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestThread</a>(IoFuture future) {
<a name="238" href="#238">238</a>             <strong class="jxr_keyword">this</strong>.future = future;
<a name="239" href="#239">239</a>         }
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>         @Override
<a name="242" href="#242">242</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="243" href="#243">243</a>             success = future.awaitUninterruptibly(10000);
<a name="244" href="#244">244</a>         }
<a name="245" href="#245">245</a>     }
<a name="246" href="#246">246</a> 
<a name="247" href="#247">247</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/core/FutureTest.html">TestListener</a> implements IoFutureListener&lt;IoFuture&gt; {
<a name="248" href="#248">248</a>         <strong class="jxr_keyword">private</strong> IoFuture notifiedFuture;
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> operationComplete(IoFuture future) {
<a name="251" href="#251">251</a>             <strong class="jxr_keyword">this</strong>.notifiedFuture = future;
<a name="252" href="#252">252</a>         }
<a name="253" href="#253">253</a>     }
<a name="254" href="#254">254</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

