1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.chain.web;
18  
19  
20  import java.security.Principal;
21  
22  
23  /**
24   * <p>Mock <strong>Principal</strong> object for low-level unit tests.</p>
25   */
26  
27  public class MockPrincipal implements Principal {
28  
29  
30      public MockPrincipal() {
31          super();
32          this.name = "";
33          this.roles = new String[0];
34      }
35  
36  
37      public MockPrincipal(String name) {
38          super();
39          this.name = name;
40          this.roles = new String[0];
41      }
42  
43  
44      public MockPrincipal(String name, String roles[]) {
45          super();
46          this.name = name;
47          this.roles = roles;
48      }
49  
50  
51      protected String name = null;
52  
53  
54      protected String roles[] = null;
55  
56  
57      public String getName() {
58          return (this.name);
59      }
60  
61  
62      public boolean isUserInRole(String role) {
63          for (int i = 0; i < roles.length; i++) {
64              if (role.equals(roles[i])) {
65                  return (true);
66              }
67          }
68          return (false);
69      }
70  
71  
72      public boolean equals(Object o) {
73          if (o == null) {
74              return (false);
75          }
76          if (!(o instanceof Principal)) {
77              return (false);
78          }
79          Principal p = (Principal) o;
80          if (name == null) {
81              return (p.getName() == null);
82          } else {
83              return (name.equals(p.getName()));
84          }
85      }
86  
87  
88      public int hashCode() {
89          if (name == null) {
90              return ("".hashCode());
91          } else {
92              return (name.hashCode());
93          }
94      }
95  
96  
97  }