/* * 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 Alexey V. Varlamov */ package org.apache.harmony.security.tests; import java.security.Principal; import org.apache.harmony.security.UnresolvedPrincipal; import junit.framework.TestCase; /** * Tests for UnresolvedPrincipal * */ public class UnresolvedPrincipalTest extends TestCase { public void testCtor() { String klass = "abc"; String name = "NAME"; UnresolvedPrincipal up = new UnresolvedPrincipal(klass, name); assertEquals(klass, up.getClassName()); assertEquals(name, up.getName()); up = new UnresolvedPrincipal(klass, null); assertEquals(klass, up.getClassName()); assertNull(up.getName()); try { up = new UnresolvedPrincipal(null, name); fail("No IllegalArgumentException is thrown"); } catch (IllegalArgumentException ok) { } } public void testEquals_Principal() { String name = "sgrt"; FakePrincipal fp = new FakePrincipal(name); assertTrue(new UnresolvedPrincipal(FakePrincipal.class.getName(), name) .equals(fp)); assertTrue(new UnresolvedPrincipal(UnresolvedPrincipal.WILDCARD, name) .equals(fp)); assertTrue(new UnresolvedPrincipal(FakePrincipal.class.getName(), UnresolvedPrincipal.WILDCARD).equals(fp)); assertFalse(new UnresolvedPrincipal(FakePrincipal.class.getName(), "sdkljfgbkwe").equals(fp)); } public void testEquals_Common() { String klass = "abc"; String name = "NAME"; UnresolvedPrincipal up = new UnresolvedPrincipal(klass, name); UnresolvedPrincipal up2 = new UnresolvedPrincipal(klass, name); UnresolvedPrincipal up3 = new UnresolvedPrincipal(name, klass); assertTrue(up.equals(up)); assertTrue(up.equals(up2)); assertEquals(up.hashCode(), up2.hashCode()); assertFalse(up.equals(up3)); assertFalse(up.equals(null)); assertFalse(up.equals(new Object())); } public void testImplies() { String name = "sgrt"; FakePrincipal fp = new FakePrincipal(name); assertTrue(new UnresolvedPrincipal(FakePrincipal.class.getName(), name) .implies(fp)); assertTrue(new UnresolvedPrincipal(UnresolvedPrincipal.WILDCARD, name) .implies(fp)); assertTrue(new UnresolvedPrincipal(FakePrincipal.class.getName(), UnresolvedPrincipal.WILDCARD).implies(fp)); assertTrue(new UnresolvedPrincipal(UnresolvedPrincipal.WILDCARD, UnresolvedPrincipal.WILDCARD).implies(fp)); assertFalse(new UnresolvedPrincipal( UnresolvedPrincipal.class.getName(), name).implies(fp)); assertFalse(new UnresolvedPrincipal(FakePrincipal.class.getName(), "hgfuytr765").implies(fp)); } } class FakePrincipal implements Principal { private String name; public FakePrincipal(String name) { this.name = name; } public String getName() { return name; } }