    1   /* Copyright 2004 Acegi Technology Pty Limited
    2    *
    3    * Licensed under the Apache License, Version 2.0 (the "License");
    4    * you may not use this file except in compliance with the License.
    5    * You may obtain a copy of the License at
    6    *
    7    *     http://www.apache.org/licenses/LICENSE-2.0
    8    *
    9    * Unless required by applicable law or agreed to in writing, software
    10   * distributed under the License is distributed on an "AS IS" BASIS,
    11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12   * See the License for the specific language governing permissions and
    13   * limitations under the License.
    14   */
    15
    16  package org.acegisecurity;
    17
    18  import junit.framework.TestCase;
    19
    20
    21  /***
    22   * Tests {@link SecurityConfig}.
    23   *
    24   * @author Ben Alex
    25   * @version $Id: SecurityConfigTests.java,v 1.2 2005/11/17 00:55:47 benalex Exp $
    26   */
    27  public class SecurityConfigTests extends TestCase {
    28      //~ Constructors ===========================================================
    29
    30      public SecurityConfigTests() {
    31          super();
    32      }
    33
    34      public SecurityConfigTests(String arg0) {
    35          super(arg0);
    36      }
    37
    38      //~ Methods ================================================================
    39
    40      public final void setUp() throws Exception {
    41          super.setUp();
    42      }
    43
    44      public static void main(String[] args) {
    45          junit.textui.TestRunner.run(SecurityConfigTests.class);
    46      }
    47
    48      public void testHashCode() {
    49          SecurityConfig config = new SecurityConfig("TEST");
    50          assertEquals("TEST".hashCode(), config.hashCode());
    51      }
    52
    53      public void testNoArgsConstructor() {
    54          try {
    55              new SecurityConfig();
    56              fail("Should have thrown IllegalArgumentException");
    57          } catch (IllegalArgumentException expected) {
    58              assertTrue(true);
    59          }
    60      }
    61
    62      public void testObjectEquals() throws Exception {
    63          SecurityConfig security1 = new SecurityConfig("TEST");
    64          SecurityConfig security2 = new SecurityConfig("TEST");
    65          assertEquals(security1, security2);
    66
    67          String securityString1 = "TEST";
    68          assertEquals(security1, securityString1);
    69
    70          String securityString2 = "NOT_EQUAL";
    71          assertTrue(!security1.equals(securityString2));
    72
    73          SecurityConfig security3 = new SecurityConfig("NOT_EQUAL");
    74          assertTrue(!security1.equals(security3));
    75
    76          MockConfigAttribute mock1 = new MockConfigAttribute("TEST");
    77          assertEquals(security1, mock1);
    78
    79          MockConfigAttribute mock2 = new MockConfigAttribute("NOT_EQUAL");
    80          assertTrue(!security1.equals(mock2));
    81
    82          Integer int1 = new Integer(987);
    83          assertTrue(!security1.equals(int1));
    84      }
    85
    86      public void testToString() {
    87          SecurityConfig config = new SecurityConfig("TEST");
    88          assertEquals("TEST", config.toString());
    89      }
    90
    91      //~ Inner Classes ==========================================================
    92
    93      private class MockConfigAttribute implements ConfigAttribute {
    94          private String attribute;
    95
    96          public MockConfigAttribute(String configuration) {
    97              this.attribute = configuration;
    98          }
    99
    100         private MockConfigAttribute() {
    101             super();
    102         }
    103
    104         public String getAttribute() {
    105             return this.attribute;
    106         }
    107     }
    108 }