<!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=ISO-8859-1" /><title>TransportTypeTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: TransportTypeTest.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../org/apache/mina/common/package-summary.html">org.apache.mina.common</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> junit.framework.Assert;
<a name="22" href="#22">22</a>  <strong>import</strong> junit.framework.TestCase;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <em>/**<em>*</em></em>
<a name="25" href="#25">25</a>  <em> * Tests {@link TransportType}.</em>
<a name="26" href="#26">26</a>  <em> * </em>
<a name="27" href="#27">27</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="28" href="#28">28</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="29" href="#29">29</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="30" href="#30">30</a>  <em> */</em>
<a name="31" href="#31">31</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/common/TransportTypeTest.html">TransportTypeTest</a> <strong>extends</strong> TestCase {
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>      <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String[] args) {
<a name="34" href="#34">34</a>          junit.textui.TestRunner.run(TransportTypeTest.<strong>class</strong>);
<a name="35" href="#35">35</a>      }
<a name="36" href="#36">36</a>      
<a name="37" href="#37">37</a>      <strong>public</strong> <strong>void</strong> testRegistration()
<a name="38" href="#38">38</a>      {
<a name="39" href="#39">39</a>          TransportType myType = <strong>new</strong> TransportType( <strong>new</strong> String[] { <span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span> }, <strong>true</strong> );
<a name="40" href="#40">40</a>          
<a name="41" href="#41">41</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"a"</span> ) );
<a name="42" href="#42">42</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"A"</span> ) );
<a name="43" href="#43">43</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"b"</span> ) );
<a name="44" href="#44">44</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"B"</span> ) );
<a name="45" href="#45">45</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"c"</span> ) );
<a name="46" href="#46">46</a>          Assert.assertSame( myType, TransportType.getInstance( <span class="string">"C"</span> ) );
<a name="47" href="#47">47</a>          <strong>try</strong>
<a name="48" href="#48">48</a>          {
<a name="49" href="#49">49</a>              TransportType.getInstance( <span class="string">"unknown"</span> );
<a name="50" href="#50">50</a>              Assert.fail();
<a name="51" href="#51">51</a>          }
<a name="52" href="#52">52</a>          <strong>catch</strong>( IllegalArgumentException e )
<a name="53" href="#53">53</a>          {
<a name="54" href="#54">54</a>              <em class="comment">// ignore</em>
<a name="55" href="#55">55</a>          }
<a name="56" href="#56">56</a>          
<a name="57" href="#57">57</a>          <strong>try</strong>
<a name="58" href="#58">58</a>          {
<a name="59" href="#59">59</a>              <strong>new</strong> TransportType( <strong>new</strong> String[] { <span class="string">"A"</span> }, false );
<a name="60" href="#60">60</a>              Assert.fail();
<a name="61" href="#61">61</a>          }
<a name="62" href="#62">62</a>          <strong>catch</strong>( IllegalArgumentException e )
<a name="63" href="#63">63</a>          {
<a name="64" href="#64">64</a>              <em class="comment">// ignore</em>
<a name="65" href="#65">65</a>          }
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

