blob: 1b4f7aab3828329840346e30669682b42aa2abd3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author Aleksei Y. Semenov
*/
package org.apache.harmony.security.tests;
import java.security.Identity;
import java.security.IdentityScope;
import java.security.KeyManagementException;
import java.util.Enumeration;
import org.apache.harmony.security.SystemScope;
import org.apache.harmony.security.tests.support.IdentityScopeStub;
import org.apache.harmony.security.tests.support.PublicKeyStub;
import junit.framework.TestCase;
/**
* Unit test for class org.apache.harmony.security.SystemScope
*
*/
public class SystemScopeTest extends TestCase {
public static void main(String[] args) {
junit.textui.TestRunner.run(SystemScopeTest.class);
}
IdentityScope ss = null;
final static boolean mode = true;
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
if (mode) ss = new SystemScope("SystemScope");
else {
ss = IdentityScope.getSystemScope();
Enumeration e = ss.identities();
while (e.hasMoreElements()) ss.removeIdentity((Identity)e.nextElement());
}
}
/**
* Constructor for SystemScopeTest.
* @param arg0
*/
public SystemScopeTest(String arg0) {
super(arg0);
}
/**
* verify SystemScope.size() returns number of Identities
*/
public void testSize() throws Exception {
//SystemScope ss = new SystemScope("SystemScope");
assertEquals(0, ss.size());
ss.addIdentity(new IdentityScopeStub("aaa"));
assertEquals(1, ss.size());
ss.addIdentity(new IdentityScopeStub("bbb"));
assertEquals(2, ss.size());
}
/*
* verify getIdentity(String) returns requested identity or null if not found
*/
public void testGetIdentityString() throws Exception {
//SystemScope ss = new SystemScope("SystemScope");
assertNull(ss.getIdentity("aaa"));
java.security.Identity aaa = new IdentityScopeStub("aaa");
ss.addIdentity(aaa);
assertSame(aaa, ss.getIdentity(aaa.getName()));
assertNull(ss.getIdentity("bbb"));
}
/*
* verify getIdentity(PublicKey) returns requested identity or null if not found
*/
public void testGetIdentityPublicKey() throws Exception {
//SystemScope ss = new SystemScope("SystemScope");
java.security.PublicKey kkk = new PublicKeyStub("kkk", "fff", null);
assertNull(ss.getIdentity(kkk));
java.security.Identity aaa = new IdentityScopeStub("aaa");
aaa.setPublicKey(kkk);
ss.addIdentity(aaa);
assertSame(aaa, ss.getIdentity(kkk));
}
/**
* verify that only one identity with given name or public key can be added
* i.e. KeyManagementException is thrown
*/
public void testAddIdentity() throws Exception {
// SystemScope ss = new SystemScope("SystemScope");
java.security.PublicKey kkk = new PublicKeyStub("kkk", "fff", null);
java.security.Identity aaa = new IdentityScopeStub("aaa");
aaa.setPublicKey(kkk);
ss.addIdentity(aaa);
java.security.Identity bbb = new IdentityScopeStub("aaa");
try {
ss.addIdentity(bbb);
fail("KeyManagementException should be thrown for already used name");
} catch (KeyManagementException ok) {}
java.security.Identity ccc = new IdentityScopeStub("ccc");
ccc.setPublicKey(kkk);
try {
ss.addIdentity(ccc);
fail("KeyManagementException should be thrown for already used key");
} catch (KeyManagementException ok) {}
}
/**
* verify that identities are removed
* @throws Exception
*/
public void testRemoveIdentity() throws Exception{
// SystemScope ss = new SystemScope("SystemScope");
java.security.Identity aaa = new IdentityScopeStub("aaa");
ss.addIdentity(aaa);
assertEquals(1, ss.size());
ss.removeIdentity(aaa);
assertEquals(0, ss.size());
}
public void testIdentities() throws Exception {
// SystemScope ss = new SystemScope("SystemScope");
java.security.Identity aaa = new IdentityScopeStub("aaa");
java.security.Identity bbb = new IdentityScopeStub("bbb");
ss.addIdentity(aaa);
ss.addIdentity(bbb);
boolean hasAaa = false, hasBbb = false;
Enumeration e = ss.identities();
while (e.hasMoreElements()){
Object i = e.nextElement();
if (!hasAaa) hasAaa = (i==aaa);
if (!hasBbb) hasBbb = (i==bbb);
}
assertTrue(hasAaa && hasBbb);
}
/*
* Class under test for void SystemScope()
*/
public void testSystemScope() {
}
/*
* Class under test for void SystemScope(String)
*/
public void testSystemScopeString() {
SystemScope ss = new SystemScope("SystemScope");
assertEquals("SystemScope", ss.getName());
}
/*
* Class under test for void SystemScope(String, IdentityScope)
*/
public void testSystemScopeStringIdentityScope() throws Exception {
SystemScope ss = new SystemScope("SystemScope");
SystemScope nested = new SystemScope("NestedScope", ss);
assertEquals("NestedScope", nested.getName());
assertSame(ss, nested.getScope());
}
}