1   /*
2    * Copyright 2003-2004 The Apache Software Foundation
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.commons.net.telnet;
17  
18  import junit.framework.TestCase;
19  
20  /***
21   * The TelnetOptionHandlerTest is the abstract class for
22   * testing TelnetOptionHandler. It can be used to derive
23   * the actual test classes for TelnetOptionHadler derived
24   * classes, by adding creation of three new option handlers
25   * and testing of the specific subnegotiation behaviour.
26   * <p>
27   * @author Bruno D'Avanzo
28   ***/
29  public abstract class TelnetOptionHandlerTestAbstract extends TestCase
30  {
31      TelnetOptionHandler opthand1;
32      TelnetOptionHandler opthand2;
33      TelnetOptionHandler opthand3;
34  
35      /***
36       * setUp for the test. The derived test class must implement
37       * this method by creating opthand1, opthand2, opthand3
38       * like in the following:
39       *     opthand1 = new EchoOptionHandler();
40       *     opthand2 = new EchoOptionHandler(true, true, true, true);
41       *     opthand3 = new EchoOptionHandler(false, false, false, false);
42       ***/
43      protected abstract void setUp();
44  
45      /***
46       * test of the constructors. The derived class may add
47       * test of the option code.
48       ***/
49      public void testConstructors()
50      {
51          // add test of the option code
52          assertTrue(!opthand1.getInitLocal());
53          assertTrue(!opthand1.getInitRemote());
54          assertTrue(!opthand1.getAcceptLocal());
55          assertTrue(!opthand1.getAcceptRemote());
56  
57          assertTrue(opthand2.getInitLocal());
58          assertTrue(opthand2.getInitRemote());
59          assertTrue(opthand2.getAcceptLocal());
60          assertTrue(opthand2.getAcceptRemote());
61  
62          assertTrue(!opthand3.getInitLocal());
63          assertTrue(!opthand3.getInitRemote());
64          assertTrue(!opthand3.getAcceptLocal());
65          assertTrue(!opthand3.getAcceptRemote());
66      }
67  
68      /***
69       * test of setWill/getWill
70       ***/
71      public void testWill()
72      {
73          opthand2.setWill(true);
74          opthand3.setWill(false);
75  
76          assertTrue(!opthand1.getWill());
77          assertTrue(opthand2.getWill());
78          assertTrue(!opthand3.getWill());
79      }
80  
81      /***
82       * test of setDo/getDo
83       ***/
84      public void testDo()
85      {
86          opthand2.setDo(true);
87          opthand3.setDo(false);
88  
89          assertTrue(!opthand1.getDo());
90          assertTrue(opthand2.getDo());
91          assertTrue(!opthand3.getDo());
92      }
93  
94      /***
95       * test of client-driven subnegotiation. Abstract test:
96       * the derived class should implement it.
97       ***/
98      public abstract void testStartSubnegotiation();
99  
100     /***
101      * test of server-driven subnegotiation. Abstract test:
102      * the derived class should implement it.
103      ***/
104     public abstract void testAnswerSubnegotiation();
105         // test subnegotiation
106 }