<!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>StateMachineFactoryTest 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.statemachine;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.State;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.StateMachine;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.StateMachineCreationException;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.StateMachineFactory;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.annotation.Transition;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.annotation.Transitions;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.statemachine.transition.MethodTransition;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Tests {@link StateMachineFactory}.</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> *</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @version $Rev: 592475 $, $Date: 2007-11-06 17:03:42 +0100 (mar, 06 nov 2007) $</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/statemachine/StateMachineFactoryTest.html">StateMachineFactoryTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="42" href="#42">42</a>      Method barInA;
<a name="43" href="#43">43</a>      Method error;
<a name="44" href="#44">44</a>      Method fooInA;
<a name="45" href="#45">45</a>      Method fooInB;
<a name="46" href="#46">46</a>      Method barInC;
<a name="47" href="#47">47</a>      Method fooOrBarInCOrFooInD;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
<a name="50" href="#50">50</a>          barInA = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"barInA"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="51" href="#51">51</a>          error = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"error"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="52" href="#52">52</a>          fooInA = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"fooInA"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="53" href="#53">53</a>          fooInB = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"fooInB"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="54" href="#54">54</a>          barInC = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"barInC"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="55" href="#55">55</a>          fooOrBarInCOrFooInD = States.<strong class="jxr_keyword">class</strong>.getDeclaredMethod(<span class="jxr_string">"fooOrBarInCOrFooInD"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreate() <strong class="jxr_keyword">throws</strong> Exception {
<a name="59" href="#59">59</a>          <a href="../../../../org/apache/mina/statemachine/StateMachineFactoryTest.html">States</a> states = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/mina/statemachine/StateMachineFactoryTest.html">States</a>();
<a name="60" href="#60">60</a>          StateMachine sm = StateMachineFactory.getInstance(Transition.<strong class="jxr_keyword">class</strong>).create(States.A, states);
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>          State a = sm.getState(States.A);
<a name="63" href="#63">63</a>          State b = sm.getState(States.B);
<a name="64" href="#64">64</a>          State c = sm.getState(States.C);
<a name="65" href="#65">65</a>          State d = sm.getState(States.D);
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>          assertEquals(States.A, a.getId());
<a name="68" href="#68">68</a>          assertNull(a.getParent());
<a name="69" href="#69">69</a>          assertEquals(States.B, b.getId());
<a name="70" href="#70">70</a>          assertSame(a, b.getParent());
<a name="71" href="#71">71</a>          assertEquals(States.C, c.getId());
<a name="72" href="#72">72</a>          assertSame(b, c.getParent());
<a name="73" href="#73">73</a>          assertEquals(States.D, d.getId());
<a name="74" href="#74">74</a>          assertSame(a, d.getParent());
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>          List&lt;org.apache.mina.statemachine.transition.Transition&gt; trans = <strong class="jxr_keyword">null</strong>;
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>          trans = a.getTransitions();
<a name="79" href="#79">79</a>          assertEquals(3, trans.size());
<a name="80" href="#80">80</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"bar"</span>, barInA, states), trans.get(0));
<a name="81" href="#81">81</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"*"</span>, error, states), trans.get(1));
<a name="82" href="#82">82</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"foo"</span>, b, fooInA, states), trans.get(2));
<a name="83" href="#83">83</a>          
<a name="84" href="#84">84</a>          trans = b.getTransitions();
<a name="85" href="#85">85</a>          assertEquals(1, trans.size());
<a name="86" href="#86">86</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"foo"</span>, c, fooInB, states), trans.get(0));
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>          trans = c.getTransitions();
<a name="89" href="#89">89</a>          assertEquals(3, trans.size());
<a name="90" href="#90">90</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"bar"</span>, a, barInC, states), trans.get(0));
<a name="91" href="#91">91</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"foo"</span>, d, fooOrBarInCOrFooInD, states), trans.get(1));
<a name="92" href="#92">92</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"bar"</span>, d, fooOrBarInCOrFooInD, states), trans.get(2));
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>          trans = d.getTransitions();
<a name="95" href="#95">95</a>          assertEquals(1, trans.size());
<a name="96" href="#96">96</a>          assertEquals(<strong class="jxr_keyword">new</strong> MethodTransition(<span class="jxr_string">"foo"</span>, fooOrBarInCOrFooInD, states), trans.get(0));
<a name="97" href="#97">97</a>      }
<a name="98" href="#98">98</a>      
<a name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateStates() <strong class="jxr_keyword">throws</strong> Exception {
<a name="100" href="#100">100</a>         State[] states = StateMachineFactory.createStates(StateMachineFactory.getFields(States.<strong class="jxr_keyword">class</strong>));
<a name="101" href="#101">101</a>         assertEquals(States.A, states[0].getId());
<a name="102" href="#102">102</a>         assertNull(states[0].getParent());
<a name="103" href="#103">103</a>         assertEquals(States.B, states[1].getId());
<a name="104" href="#104">104</a>         assertEquals(states[0], states[1].getParent());
<a name="105" href="#105">105</a>         assertEquals(States.C, states[2].getId());
<a name="106" href="#106">106</a>         assertEquals(states[1], states[2].getParent());
<a name="107" href="#107">107</a>         assertEquals(States.D, states[3].getId());
<a name="108" href="#108">108</a>         assertEquals(states[0], states[3].getParent());
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a>     
<a name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateStatesMissingParents() <strong class="jxr_keyword">throws</strong> Exception {
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">try</strong> {
<a name="113" href="#113">113</a>             StateMachineFactory.createStates(StateMachineFactory.getFields(StatesWithMissingParents.<strong class="jxr_keyword">class</strong>));
<a name="114" href="#114">114</a>             fail(<span class="jxr_string">"Missing parents. FsmCreationException expected."</span>);
<a name="115" href="#115">115</a>         } <strong class="jxr_keyword">catch</strong> (StateMachineCreationException fce) {
<a name="116" href="#116">116</a>         }
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a>     
<a name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/statemachine/StateMachineFactoryTest.html">States</a> {
<a name="120" href="#120">120</a>         @org.apache.mina.statemachine.annotation.State
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a> = <span class="jxr_string">"a"</span>;
<a name="122" href="#122">122</a>         @org.apache.mina.statemachine.annotation.State(<a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a>)
<a name="123" href="#123">123</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">B</a> = <span class="jxr_string">"b"</span>;
<a name="124" href="#124">124</a>         @org.apache.mina.statemachine.annotation.State(<a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">B</a>)
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">C</a> = <span class="jxr_string">"c"</span>;
<a name="126" href="#126">126</a>         @org.apache.mina.statemachine.annotation.State(<a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a>)
<a name="127" href="#127">127</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String D = <span class="jxr_string">"d"</span>;
<a name="128" href="#128">128</a>         
<a name="129" href="#129">129</a>         @Transition(on = <span class="jxr_string">"bar"</span>, in = <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a>)
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> barInA() {
<a name="131" href="#131">131</a>         }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         @Transition(on = <span class="jxr_string">"bar"</span>, in = C, next = <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a>)
<a name="134" href="#134">134</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> barInC() {
<a name="135" href="#135">135</a>         }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         @Transition(in = <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a>)
<a name="138" href="#138">138</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> error() {
<a name="139" href="#139">139</a>         }
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         @Transition(on = <span class="jxr_string">"foo"</span>, in = A, next = <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">B</a>)
<a name="142" href="#142">142</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> fooInA() {
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>         @Transition(on = <span class="jxr_string">"foo"</span>, in = B, next = <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">C</a>)
<a name="146" href="#146">146</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> fooInB() {
<a name="147" href="#147">147</a>         }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>         @Transitions( { @Transition(on = { <span class="jxr_string">"foo"</span>, <span class="jxr_string">"bar"</span> }, in = C, next = D), @Transition(on = <span class="jxr_string">"foo"</span>, in = D) })
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> fooOrBarInCOrFooInD() {
<a name="151" href="#151">151</a>         }
<a name="152" href="#152">152</a>       
<a name="153" href="#153">153</a>     }
<a name="154" href="#154">154</a>     
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/mina/statemachine/StateMachineFactoryTest.html">StatesWithMissingParents</a> {
<a name="156" href="#156">156</a>         @org.apache.mina.statemachine.annotation.State(<span class="jxr_string">"b"</span>)
<a name="157" href="#157">157</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">A</a> = <span class="jxr_string">"a"</span>;
<a name="158" href="#158">158</a>         @org.apache.mina.statemachine.annotation.State(<span class="jxr_string">"c"</span>)
<a name="159" href="#159">159</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">B</a> = <span class="jxr_string">"b"</span>;
<a name="160" href="#160">160</a>         @org.apache.mina.statemachine.annotation.State(<span class="jxr_string">"d"</span>)
<a name="161" href="#161">161</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String <a href="../../../../org/apache/mina/statemachine/transition/MethodTransitionTest.html">C</a> = <span class="jxr_string">"c"</span>;
<a name="162" href="#162">162</a>         @org.apache.mina.statemachine.annotation.State(<span class="jxr_string">"e"</span>)
<a name="163" href="#163">163</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String D = <span class="jxr_string">"d"</span>;
<a name="164" href="#164">164</a>     }
<a name="165" href="#165">165</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

