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 }