View Javadoc
1   /*
2    *   Licensed to the Apache Software Foundation (ASF) under one
3    *   or more contributor license agreements.  See the NOTICE file
4    *   distributed with this work for additional information
5    *   regarding copyright ownership.  The ASF licenses this file
6    *   to you under the Apache License, Version 2.0 (the
7    *   "License"); you may not use this file except in compliance
8    *   with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing,
13   *   software distributed under the License is distributed on an
14   *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *   KIND, either express or implied.  See the License for the
16   *   specific language governing permissions and limitations
17   *   under the License.
18   *
19   */
20  
21  package org.apache.mina.filter.firewall;
22  
23  import static org.junit.Assert.assertFalse;
24  import static org.junit.Assert.assertTrue;
25  
26  import java.net.InetSocketAddress;
27  
28  import org.apache.mina.core.session.DummySession;
29  import org.junit.After;
30  import org.junit.Before;
31  import org.junit.Test;
32  
33  /**
34   * TODO Add documentation
35   * 
36   * @author <a href="http://mina.apache.org">Apache MINA Project</a>
37   */
38  public class ConnectionThrottleFilterTest {
39      private ConnectionThrottleFilter filter;
40  
41      private DummySession sessionOne;
42  
43      private DummySession sessionTwo;
44  
45      @Before
46      public void setUp() throws Exception {
47          filter = new ConnectionThrottleFilter();
48  
49          sessionOne = new DummySession();
50          sessionOne.setRemoteAddress(new InetSocketAddress(1234));
51          sessionTwo = new DummySession();
52          sessionTwo.setRemoteAddress(new InetSocketAddress(1235));
53      }
54  
55      @After
56      public void tearDown() throws Exception {
57          filter = null;
58      }
59  
60      @Test
61      public void testGoodConnection() {
62          filter.setAllowedInterval(100);
63          filter.isConnectionOk(sessionOne);
64  
65          try {
66              Thread.sleep(1000);
67          } catch (InterruptedException e) {
68              //e.printStackTrace();
69          }
70  
71          boolean result = filter.isConnectionOk(sessionOne);
72          assertTrue(result);
73      }
74  
75      @Test
76      public void testBadConnection() {
77          filter.setAllowedInterval(1000);
78          filter.isConnectionOk(sessionTwo);
79          assertFalse(filter.isConnectionOk(sessionTwo));
80      }
81  }