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 }