1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.java.security;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Identity;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.IdentityScope;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyManagementException;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyPairGenerator;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.PublicKey;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Enumeration;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Hashtable;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.java.security.Identity2Test.IdentitySubclass;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class IdentityScope2Test extends junit.framework.TestCase {
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static PublicKey pubKey;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    static {
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            pubKey = KeyPairGenerator.getInstance("DSA").genKeyPair().getPublic();
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (Exception e) {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail(e.toString());
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public static class IdentityScopeSubclass extends IdentityScope {
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Hashtable identities;
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public IdentityScopeSubclass(String name, PublicKey pk) {
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(name);
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				setPublicKey(pk);
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (KeyManagementException e) {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities = new Hashtable();
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public IdentityScopeSubclass() {
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities = new Hashtable();
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public IdentityScopeSubclass(String name) {
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(name);
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities = new Hashtable();
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public IdentityScopeSubclass(String name, IdentityScope scope)
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws KeyManagementException {
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(name, scope);
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities = new Hashtable();
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int size() {
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return identities.size();
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Identity getIdentity(String name) {
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Enumeration en = identities();
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			while (en.hasMoreElements()) {
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Identity current = (Identity) en.nextElement();
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				if (current.getName().equals(name))
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					return current;
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return null;
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Identity getIdentity(PublicKey pk) {
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Enumeration en = identities();
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			while (en.hasMoreElements()) {
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Identity current = (Identity) en.nextElement();
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				if (current.getPublicKey() == pk)
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					return current;
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return null;
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Enumeration identities() {
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return identities.elements();
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void addIdentity(Identity id) throws KeyManagementException {
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (identities.containsKey(id))
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throw new KeyManagementException(
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes						"This Identity is already contained in the scope");
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (getIdentity(id.getPublicKey()) != null)
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throw new KeyManagementException(
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes						"This Identity's public key already exists in the scope");
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities.put(id, id);
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void removeIdentity(Identity id) throws KeyManagementException {
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (!identities.containsKey(id))
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throw new KeyManagementException(
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes						"This Identity is not contained in the scope");
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			identities.remove(id);
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#IdentityScope()
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_Constructor() {
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		new IdentityScopeSubclass();
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#IdentityScope(java.lang.String)
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorLjava_lang_String() {
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		new IdentityScopeSubclass("test");
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#IdentityScope(java.lang.String,
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.security.IdentityScope)
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorLjava_lang_StringLjava_security_IdentityScope() throws Exception {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		new IdentityScopeSubclass("test", new IdentityScopeSubclass());
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#addIdentity(java.security.Identity)
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_addIdentityLjava_security_Identity() throws Exception {
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass("id1");
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		try {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			Identity id2 = new IdentitySubclass("id2");
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			id2.setPublicKey(pubKey);
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			sub.addIdentity(id2);
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			fail("KeyManagementException should have been thrown");
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		} catch (KeyManagementException e) {
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			// Expected
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		}
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#removeIdentity(java.security.Identity)
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_removeIdentityLjava_security_Identity() throws Exception {
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass();
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.removeIdentity(id);
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		try {
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			sub.removeIdentity(id);
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			fail("KeyManagementException should have been thrown");
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		} catch (KeyManagementException e) {
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       			// expected
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		}
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#identities()
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_identities() throws Exception {
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass();
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Enumeration en = sub.identities();
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertTrue("Wrong object contained in identities", en.nextElement()
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				.equals(id));
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertTrue("Contains too many elements", !en.hasMoreElements());
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#getIdentity(java.security.Principal)
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getIdentityLjava_security_Principal() throws Exception {
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass("principal name");
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity returnedId = sub.getIdentity(id);
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertEquals("Returned Identity not the same as the added one", id,
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				returnedId);
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#getIdentity(java.security.PublicKey)
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getIdentityLjava_security_PublicKey() throws Exception {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass();
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity returnedId = sub.getIdentity(pubKey);
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertEquals("Returned Identity not the same as the added one", id,
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				returnedId);
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#getIdentity(java.lang.String)
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getIdentityLjava_lang_String() throws Exception {
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass("test");
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity returnedId = sub.getIdentity("test");
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertEquals("Returned Identity not the same as the added one", id,
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				returnedId);
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.security.IdentityScope#size()
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_size() throws Exception {
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       				new IdentityScopeSubclass());
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		Identity id = new IdentitySubclass();
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		id.setPublicKey(pubKey);
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		sub.addIdentity(id);
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       		assertEquals("Wrong size", 1, sub.size());
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.security.IdentityScope#toString()
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_toString() throws Exception {
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            IdentityScopeSubclass sub = new IdentityScopeSubclass("test",
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new IdentityScopeSubclass());
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Identity id = new IdentitySubclass();
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            id.setPublicKey(pubKey);
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sub.addIdentity(id);
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNotNull("toString returned a null", sub.toString());
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Not a valid String ", sub.toString().length() > 0);
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getIdentity() throws Exception {
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        //Regression for HARMONY-1173
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        IdentityScope scope = IdentityScope.getSystemScope();
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            scope.getIdentity((String) null);
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NPE expected");
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException npe) {}
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
265