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  }