<!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>IoServiceListenerSupportTest 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.net.InetSocketAddress;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> junit.framework.Assert;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoAcceptor;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoConnector;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoHandler;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoService;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoServiceListener;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoServiceListenerSupport;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.DummySession;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.easymock.EasyMock;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Tests {@link IoServiceListenerSupport}.</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @version $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (jeu, 26 jun 2008) $</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> */</em>
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/core/IoServiceListenerSupportTest.html">IoServiceListenerSupportTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> SocketAddress ADDRESS = <strong class="jxr_keyword">new</strong> InetSocketAddress(8080);
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> IoService mockService = EasyMock.createMock(IoService.<strong class="jxr_keyword">class</strong>);
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testServiceLifecycle() <strong class="jxr_keyword">throws</strong> Exception {
<a name="49" href="#49">49</a>          IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(
<a name="50" href="#50">50</a>                  mockService);
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>          IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>          <em class="jxr_comment">// Test activation</em>
<a name="55" href="#55">55</a>          listener.serviceActivated(mockService);
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>          EasyMock.replay(listener);
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>          support.add(listener);
<a name="60" href="#60">60</a>          support.fireServiceActivated();
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>          EasyMock.verify(listener);
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>          <em class="jxr_comment">// Test deactivation &amp; other side effects</em>
<a name="65" href="#65">65</a>          EasyMock.reset(listener);
<a name="66" href="#66">66</a>          listener.serviceDeactivated(mockService);
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>          EasyMock.replay(listener);
<a name="69" href="#69">69</a>          <em class="jxr_comment">//// Activate more than once</em>
<a name="70" href="#70">70</a>          support.fireServiceActivated();
<a name="71" href="#71">71</a>          <em class="jxr_comment">//// Deactivate</em>
<a name="72" href="#72">72</a>          support.fireServiceDeactivated();
<a name="73" href="#73">73</a>          <em class="jxr_comment">//// Deactivate more than once</em>
<a name="74" href="#74">74</a>          support.fireServiceDeactivated();
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>          EasyMock.verify(listener);
<a name="77" href="#77">77</a>      }
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSessionLifecycle() <strong class="jxr_keyword">throws</strong> Exception {
<a name="80" href="#80">80</a>          IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(
<a name="81" href="#81">81</a>                  mockService);
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>          DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a name="84" href="#84">84</a>          session.setService(mockService);
<a name="85" href="#85">85</a>          session.setLocalAddress(ADDRESS);
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          IoHandler handler = EasyMock.createStrictMock( IoHandler.<strong class="jxr_keyword">class</strong> );
<a name="88" href="#88">88</a>          session.setHandler(handler);
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>          IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>          <em class="jxr_comment">// Test creation</em>
<a name="93" href="#93">93</a>          listener.sessionCreated(session);
<a name="94" href="#94">94</a>          handler.sessionCreated(session);
<a name="95" href="#95">95</a>          handler.sessionOpened(session);
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>          EasyMock.replay(listener);
<a name="98" href="#98">98</a>          EasyMock.replay(handler);
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>         support.add(listener);
<a name="101" href="#101">101</a>         support.fireSessionCreated(session);
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>         EasyMock.verify(listener);
<a name="104" href="#104">104</a>         EasyMock.verify(handler);
<a name="105" href="#105">105</a> 
<a name="106" href="#106">106</a>         Assert.assertEquals(1, support.getManagedSessions().size());
<a name="107" href="#107">107</a>         Assert.assertSame(session, support.getManagedSessions().get(session.getId()));
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>         <em class="jxr_comment">// Test destruction &amp; other side effects</em>
<a name="110" href="#110">110</a>         EasyMock.reset(listener);
<a name="111" href="#111">111</a>         EasyMock.reset(handler);
<a name="112" href="#112">112</a>         handler.sessionClosed(session);
<a name="113" href="#113">113</a>         listener.sessionDestroyed(session);
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         EasyMock.replay(listener);
<a name="116" href="#116">116</a>         <em class="jxr_comment">//// Activate more than once</em>
<a name="117" href="#117">117</a>         support.fireSessionCreated(session);
<a name="118" href="#118">118</a>         <em class="jxr_comment">//// Deactivate</em>
<a name="119" href="#119">119</a>         support.fireSessionDestroyed(session);
<a name="120" href="#120">120</a>         <em class="jxr_comment">//// Deactivate more than once</em>
<a name="121" href="#121">121</a>         support.fireSessionDestroyed(session);
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>         EasyMock.verify(listener);
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         Assert.assertTrue(session.isClosing());
<a name="126" href="#126">126</a>         Assert.assertEquals(0, support.getManagedSessions().size());
<a name="127" href="#127">127</a>         Assert.assertNull(support.getManagedSessions().get(session.getId()));
<a name="128" href="#128">128</a>     }
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDisconnectOnUnbind() <strong class="jxr_keyword">throws</strong> Exception {
<a name="131" href="#131">131</a>         IoAcceptor acceptor = EasyMock.createStrictMock(IoAcceptor.<strong class="jxr_keyword">class</strong>);
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">final</strong> IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(
<a name="134" href="#134">134</a>                 acceptor);
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">final</strong> DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a name="137" href="#137">137</a>         session.setService(acceptor);
<a name="138" href="#138">138</a>         session.setLocalAddress(ADDRESS);
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         IoHandler handler = EasyMock.createStrictMock(IoHandler.<strong class="jxr_keyword">class</strong>);
<a name="141" href="#141">141</a>         session.setHandler(handler);
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>         <strong class="jxr_keyword">final</strong> IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>         <em class="jxr_comment">// Activate a service and create a session.</em>
<a name="146" href="#146">146</a>         listener.serviceActivated(acceptor);
<a name="147" href="#147">147</a>         listener.sessionCreated(session);
<a name="148" href="#148">148</a>         handler.sessionCreated(session);
<a name="149" href="#149">149</a>         handler.sessionOpened(session);
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         EasyMock.replay(listener);
<a name="152" href="#152">152</a>         EasyMock.replay(handler);
<a name="153" href="#153">153</a> 
<a name="154" href="#154">154</a>         support.add(listener);
<a name="155" href="#155">155</a>         support.fireServiceActivated();
<a name="156" href="#156">156</a>         support.fireSessionCreated(session);
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>         EasyMock.verify(listener);
<a name="159" href="#159">159</a>         EasyMock.verify(handler);
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         <em class="jxr_comment">// Deactivate a service and make sure the session is closed &amp; destroyed.</em>
<a name="162" href="#162">162</a>         EasyMock.reset(listener);
<a name="163" href="#163">163</a>         EasyMock.reset(handler);
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>         listener.serviceDeactivated(acceptor);
<a name="166" href="#166">166</a>         EasyMock.expect(acceptor.isCloseOnDeactivation()).andReturn(<strong class="jxr_keyword">true</strong>);
<a name="167" href="#167">167</a>         listener.sessionDestroyed(session);
<a name="168" href="#168">168</a>         handler.sessionClosed(session);
<a name="169" href="#169">169</a> 
<a name="170" href="#170">170</a>         EasyMock.replay(listener);
<a name="171" href="#171">171</a>         EasyMock.replay(acceptor);
<a name="172" href="#172">172</a>         EasyMock.replay(handler);
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>         <strong class="jxr_keyword">new</strong> Thread() {
<a name="175" href="#175">175</a>             <em class="jxr_comment">// Emulate I/O service</em>
<a name="176" href="#176">176</a>             @Override
<a name="177" href="#177">177</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="178" href="#178">178</a>                 <strong class="jxr_keyword">try</strong> {
<a name="179" href="#179">179</a>                     Thread.sleep(500);
<a name="180" href="#180">180</a>                 } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
<a name="181" href="#181">181</a>                     e.printStackTrace();
<a name="182" href="#182">182</a>                 }
<a name="183" href="#183">183</a>                 <em class="jxr_comment">// This synchronization block is a workaround for</em>
<a name="184" href="#184">184</a>                 <em class="jxr_comment">// the visibility problem of simultaneous EasyMock</em>
<a name="185" href="#185">185</a>                 <em class="jxr_comment">// state update. (not sure if it fixes the failing test yet.)</em>
<a name="186" href="#186">186</a>                 <strong class="jxr_keyword">synchronized</strong> (listener) {
<a name="187" href="#187">187</a>                     support.fireSessionDestroyed(session);
<a name="188" href="#188">188</a>                 }
<a name="189" href="#189">189</a>             }
<a name="190" href="#190">190</a>         }.start();
<a name="191" href="#191">191</a>         support.fireServiceDeactivated();
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">synchronized</strong> (listener) {
<a name="194" href="#194">194</a>             EasyMock.verify(listener);
<a name="195" href="#195">195</a>         }
<a name="196" href="#196">196</a>         EasyMock.verify(acceptor);
<a name="197" href="#197">197</a>         EasyMock.verify(handler);
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>         Assert.assertTrue(session.isClosing());
<a name="200" href="#200">200</a>         Assert.assertEquals(0, support.getManagedSessions().size());
<a name="201" href="#201">201</a>         Assert.assertNull(support.getManagedSessions().get(session.getId()));
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConnectorActivation() <strong class="jxr_keyword">throws</strong> Exception {
<a name="205" href="#205">205</a>         IoConnector connector = EasyMock.createStrictMock(IoConnector.<strong class="jxr_keyword">class</strong>);
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>         IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(
<a name="208" href="#208">208</a>                 connector);
<a name="209" href="#209">209</a> 
<a name="210" href="#210">210</a>         <strong class="jxr_keyword">final</strong> DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a name="211" href="#211">211</a>         session.setService(connector);
<a name="212" href="#212">212</a>         session.setRemoteAddress(ADDRESS);
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a>         IoHandler handler = EasyMock.createStrictMock(IoHandler.<strong class="jxr_keyword">class</strong>);
<a name="215" href="#215">215</a>         session.setHandler(handler);
<a name="216" href="#216">216</a> 
<a name="217" href="#217">217</a>         IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>         <em class="jxr_comment">// Creating a session should activate a service automatically.</em>
<a name="220" href="#220">220</a>         listener.serviceActivated(connector);
<a name="221" href="#221">221</a>         listener.sessionCreated(session);
<a name="222" href="#222">222</a>         handler.sessionCreated(session);
<a name="223" href="#223">223</a>         handler.sessionOpened(session);
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>         EasyMock.replay(listener);
<a name="226" href="#226">226</a>         EasyMock.replay(handler);
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>         support.add(listener);
<a name="229" href="#229">229</a>         support.fireSessionCreated(session);
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>         EasyMock.verify(listener);
<a name="232" href="#232">232</a>         EasyMock.verify(handler);
<a name="233" href="#233">233</a> 
<a name="234" href="#234">234</a>         <em class="jxr_comment">// Destroying a session should deactivate a service automatically.</em>
<a name="235" href="#235">235</a>         EasyMock.reset(listener);
<a name="236" href="#236">236</a>         EasyMock.reset(handler);
<a name="237" href="#237">237</a>         listener.sessionDestroyed(session);
<a name="238" href="#238">238</a>         handler.sessionClosed(session);
<a name="239" href="#239">239</a>         listener.serviceDeactivated(connector);
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>         EasyMock.replay(listener);
<a name="242" href="#242">242</a>         EasyMock.replay(handler);
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>         support.fireSessionDestroyed(session);
<a name="245" href="#245">245</a> 
<a name="246" href="#246">246</a>         EasyMock.verify(listener);
<a name="247" href="#247">247</a>         EasyMock.verify(handler);
<a name="248" href="#248">248</a> 
<a name="249" href="#249">249</a>         Assert.assertEquals(0, support.getManagedSessions().size());
<a name="250" href="#250">250</a>         Assert.assertNull(support.getManagedSessions().get(session.getId()));
<a name="251" href="#251">251</a>     }
<a name="252" href="#252">252</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

