<!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>
<div id="overview"><a href="../../../../../testapidocs/org/apache/mina/core/IoServiceListenerSupportTest.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L10" href="#L10">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 class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.core;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNull;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertSame;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoAcceptor;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoConnector;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoHandler;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoService;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoServiceListener;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoServiceListenerSupport;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.DummySession;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.easymock.EasyMock;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * Tests {@link IoServiceListenerSupport}.</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="IoServiceListenerSupportTest" href="../../../../org/apache/mina/core/IoServiceListenerSupportTest.html#IoServiceListenerSupportTest">IoServiceListenerSupportTest</a> {
<a class="jxr_linenumber" name="L46" href="#L46">46</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 class="jxr_linenumber" name="L47" href="#L47">47</a>  
<a class="jxr_linenumber" name="L48" href="#L48">48</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 class="jxr_linenumber" name="L49" href="#L49">49</a>  
<a class="jxr_linenumber" name="L50" href="#L50">50</a>      @Test
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testServiceLifecycle() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L52" href="#L52">52</a>          IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(mockService);
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>          IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          <em class="jxr_comment">// Test activation</em>
<a class="jxr_linenumber" name="L57" href="#L57">57</a>          listener.serviceActivated(mockService);
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  
<a class="jxr_linenumber" name="L59" href="#L59">59</a>          EasyMock.replay(listener);
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          support.add(listener);
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          support.fireServiceActivated();
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
<a class="jxr_linenumber" name="L64" href="#L64">64</a>          EasyMock.verify(listener);
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
<a class="jxr_linenumber" name="L66" href="#L66">66</a>          <em class="jxr_comment">// Test deactivation &amp; other side effects</em>
<a class="jxr_linenumber" name="L67" href="#L67">67</a>          EasyMock.reset(listener);
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          listener.serviceDeactivated(mockService);
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  
<a class="jxr_linenumber" name="L70" href="#L70">70</a>          EasyMock.replay(listener);
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          <em class="jxr_comment">//// Activate more than once</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          support.fireServiceActivated();
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          <em class="jxr_comment">//// Deactivate</em>
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          support.fireServiceDeactivated();
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <em class="jxr_comment">//// Deactivate more than once</em>
<a class="jxr_linenumber" name="L76" href="#L76">76</a>          support.fireServiceDeactivated();
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  
<a class="jxr_linenumber" name="L78" href="#L78">78</a>          EasyMock.verify(listener);
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      }
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  
<a class="jxr_linenumber" name="L81" href="#L81">81</a>      @Test
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSessionLifecycle() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(mockService);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          session.setService(mockService);
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          session.setLocalAddress(ADDRESS);
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>          IoHandler handler = EasyMock.createStrictMock(IoHandler.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          session.setHandler(handler);
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  
<a class="jxr_linenumber" name="L94" href="#L94">94</a>          <em class="jxr_comment">// Test creation</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          listener.sessionCreated(session);
<a class="jxr_linenumber" name="L96" href="#L96">96</a>          handler.sessionCreated(session);
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          handler.sessionOpened(session);
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          EasyMock.replay(listener);
<a class="jxr_linenumber" name="L100" href="#L100">100</a>         EasyMock.replay(handler);
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         support.add(listener);
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         support.fireSessionCreated(session);
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         EasyMock.verify(listener);
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         EasyMock.verify(handler);
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>         assertEquals(1, support.getManagedSessions().size());
<a class="jxr_linenumber" name="L109" href="#L109">109</a>         assertSame(session, support.getManagedSessions().get(session.getId()));
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         <em class="jxr_comment">// Test destruction &amp; other side effects</em>
<a class="jxr_linenumber" name="L112" href="#L112">112</a>         EasyMock.reset(listener);
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         EasyMock.reset(handler);
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         handler.sessionClosed(session);
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         listener.sessionDestroyed(session);
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         EasyMock.replay(listener);
<a class="jxr_linenumber" name="L118" href="#L118">118</a>         <em class="jxr_comment">//// Activate more than once</em>
<a class="jxr_linenumber" name="L119" href="#L119">119</a>         support.fireSessionCreated(session);
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <em class="jxr_comment">//// Deactivate</em>
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         support.fireSessionDestroyed(session);
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <em class="jxr_comment">//// Deactivate more than once</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         support.fireSessionDestroyed(session);
<a class="jxr_linenumber" name="L124" href="#L124">124</a> 
<a class="jxr_linenumber" name="L125" href="#L125">125</a>         EasyMock.verify(listener);
<a class="jxr_linenumber" name="L126" href="#L126">126</a> 
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         assertTrue(session.isClosing());
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         assertEquals(0, support.getManagedSessions().size());
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         assertNull(support.getManagedSessions().get(session.getId()));
<a class="jxr_linenumber" name="L130" href="#L130">130</a>     }
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
<a class="jxr_linenumber" name="L132" href="#L132">132</a>     @Test
<a class="jxr_linenumber" name="L133" href="#L133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDisconnectOnUnbind() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L134" href="#L134">134</a>         IoAcceptor acceptor = EasyMock.createStrictMock(IoAcceptor.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         <strong class="jxr_keyword">final</strong> IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(acceptor);
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         <strong class="jxr_keyword">final</strong> DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         session.setService(acceptor);
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         session.setLocalAddress(ADDRESS);
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
<a class="jxr_linenumber" name="L142" href="#L142">142</a>         IoHandler handler = EasyMock.createStrictMock(IoHandler.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         session.setHandler(handler);
<a class="jxr_linenumber" name="L144" href="#L144">144</a> 
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         <strong class="jxr_keyword">final</strong> IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         <em class="jxr_comment">// Activate a service and create a session.</em>
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         listener.serviceActivated(acceptor);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         listener.sessionCreated(session);
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         handler.sessionCreated(session);
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         handler.sessionOpened(session);
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         EasyMock.replay(listener);
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         EasyMock.replay(handler);
<a class="jxr_linenumber" name="L155" href="#L155">155</a> 
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         support.add(listener);
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         support.fireServiceActivated();
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         support.fireSessionCreated(session);
<a class="jxr_linenumber" name="L159" href="#L159">159</a> 
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         EasyMock.verify(listener);
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         EasyMock.verify(handler);
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <em class="jxr_comment">// Deactivate a service and make sure the session is closed &amp; destroyed.</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         EasyMock.reset(listener);
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         EasyMock.reset(handler);
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         listener.serviceDeactivated(acceptor);
<a class="jxr_linenumber" name="L168" href="#L168">168</a>         EasyMock.expect(acceptor.isCloseOnDeactivation()).andReturn(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L169" href="#L169">169</a>         listener.sessionDestroyed(session);
<a class="jxr_linenumber" name="L170" href="#L170">170</a>         handler.sessionClosed(session);
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
<a class="jxr_linenumber" name="L172" href="#L172">172</a>         EasyMock.replay(listener);
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         EasyMock.replay(acceptor);
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         EasyMock.replay(handler);
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         <strong class="jxr_keyword">new</strong> Thread() {
<a class="jxr_linenumber" name="L177" href="#L177">177</a>             <em class="jxr_comment">// Emulate I/O service</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a>             @Override
<a class="jxr_linenumber" name="L179" href="#L179">179</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L181" href="#L181">181</a>                     Thread.sleep(500);
<a class="jxr_linenumber" name="L182" href="#L182">182</a>                 } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
<a class="jxr_linenumber" name="L183" href="#L183">183</a>                     <em class="jxr_comment">// e.printStackTrace();</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a>                 }
<a class="jxr_linenumber" name="L185" href="#L185">185</a>                 <em class="jxr_comment">// This synchronization block is a workaround for</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a>                 <em class="jxr_comment">// the visibility problem of simultaneous EasyMock</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a>                 <em class="jxr_comment">// state update. (not sure if it fixes the failing test yet.)</em>
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                 <strong class="jxr_keyword">synchronized</strong> (listener) {
<a class="jxr_linenumber" name="L189" href="#L189">189</a>                     support.fireSessionDestroyed(session);
<a class="jxr_linenumber" name="L190" href="#L190">190</a>                 }
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             }
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         }.start();
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         support.fireServiceDeactivated();
<a class="jxr_linenumber" name="L194" href="#L194">194</a> 
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">synchronized</strong> (listener) {
<a class="jxr_linenumber" name="L196" href="#L196">196</a>             EasyMock.verify(listener);
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         }
<a class="jxr_linenumber" name="L198" href="#L198">198</a>         EasyMock.verify(acceptor);
<a class="jxr_linenumber" name="L199" href="#L199">199</a>         EasyMock.verify(handler);
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         assertTrue(session.isClosing());
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         assertEquals(0, support.getManagedSessions().size());
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         assertNull(support.getManagedSessions().get(session.getId()));
<a class="jxr_linenumber" name="L204" href="#L204">204</a>     }
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 
<a class="jxr_linenumber" name="L206" href="#L206">206</a>     @Test
<a class="jxr_linenumber" name="L207" href="#L207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConnectorActivation() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         IoConnector connector = EasyMock.createStrictMock(IoConnector.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L209" href="#L209">209</a> 
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         IoServiceListenerSupport support = <strong class="jxr_keyword">new</strong> IoServiceListenerSupport(connector);
<a class="jxr_linenumber" name="L211" href="#L211">211</a> 
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         <strong class="jxr_keyword">final</strong> DummySession session = <strong class="jxr_keyword">new</strong> DummySession();
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         session.setService(connector);
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         session.setRemoteAddress(ADDRESS);
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         IoHandler handler = EasyMock.createStrictMock(IoHandler.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         session.setHandler(handler);
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <em class="jxr_comment">// Creating a session should activate a service automatically.</em>
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         listener.serviceActivated(connector);
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         listener.sessionCreated(session);
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         handler.sessionCreated(session);
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         handler.sessionOpened(session);
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         EasyMock.replay(listener);
<a class="jxr_linenumber" name="L228" href="#L228">228</a>         EasyMock.replay(handler);
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         support.add(listener);
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         support.fireSessionCreated(session);
<a class="jxr_linenumber" name="L232" href="#L232">232</a> 
<a class="jxr_linenumber" name="L233" href="#L233">233</a>         EasyMock.verify(listener);
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         EasyMock.verify(handler);
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         <em class="jxr_comment">// Destroying a session should deactivate a service automatically.</em>
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         EasyMock.reset(listener);
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         EasyMock.reset(handler);
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         listener.sessionDestroyed(session);
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         handler.sessionClosed(session);
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         listener.serviceDeactivated(connector);
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         EasyMock.replay(listener);
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         EasyMock.replay(handler);
<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         support.fireSessionDestroyed(session);
<a class="jxr_linenumber" name="L247" href="#L247">247</a> 
<a class="jxr_linenumber" name="L248" href="#L248">248</a>         EasyMock.verify(listener);
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         EasyMock.verify(handler);
<a class="jxr_linenumber" name="L250" href="#L250">250</a> 
<a class="jxr_linenumber" name="L251" href="#L251">251</a>         assertEquals(0, support.getManagedSessions().size());
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         assertNull(support.getManagedSessions().get(session.getId()));
<a class="jxr_linenumber" name="L253" href="#L253">253</a>     }
<a class="jxr_linenumber" name="L254" href="#L254">254</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2004&#x2013;2019 <a href="http://mina.apache.org/">Apache MINA Project</a>. All rights reserved.</div>
</body>
</html>
