| /* |
| * 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 Alexander V. Astapchuk |
| * @version $Revision$ |
| */ |
| |
| package org.apache.harmony.security.tests.java.security; |
| |
| import java.security.CodeSigner; |
| import java.security.Timestamp; |
| import java.security.cert.CertPath; |
| import java.util.Date; |
| |
| import org.apache.harmony.security.tests.support.TestCertUtils; |
| |
| import junit.framework.TestCase; |
| |
| /** |
| * Unit test for CodeSigner. |
| */ |
| public class CodeSignerTest extends TestCase { |
| private CertPath cpath = TestCertUtils.genCertPath(3, 0); |
| private Date now = new Date(); |
| |
| private Timestamp ts = new Timestamp(now, cpath); |
| |
| /** |
| * must throw NPE if signerCertPath is null |
| */ |
| public void testCodeSigner_00() { |
| try { |
| new CodeSigner(null, ts); |
| fail("must not accept null"); |
| } catch (NullPointerException ex) { |
| /* it's ok */ |
| } |
| } |
| |
| /** |
| * timestamp can be null |
| */ |
| public final void testCodeSigner_01() { |
| try { |
| CodeSigner cs = new CodeSigner(cpath, null); |
| assertNotNull(cs); |
| } catch (Exception e) { |
| fail("Unexpected exception"); |
| } |
| } |
| |
| /** |
| * Not null parameters |
| */ |
| public final void testCodeSigner_02() { |
| try { |
| CodeSigner cs = new CodeSigner(cpath, ts); |
| assertNotNull(cs); |
| } catch (Exception e) { |
| fail("Unexpected exception"); |
| } |
| } |
| |
| /** |
| * Test various assertions about equals() |
| */ |
| public final void testEqualsObject() { |
| |
| CodeSigner one = new CodeSigner(cpath, ts); |
| CodeSigner two = new CodeSigner(cpath, ts); |
| CodeSigner three = new CodeSigner(cpath, null); |
| |
| CertPath cpath2 = TestCertUtils.genCertPath(5, 3); |
| CodeSigner four = new CodeSigner(cpath2, null); |
| |
| assertTrue(one.equals(one)); |
| assertTrue(one.equals(two)); |
| assertTrue(two.equals(one)); |
| assertFalse(one.equals(three)); |
| assertFalse(three.equals(one)); |
| assertTrue(three.equals(three)); |
| // different CertPaths |
| assertFalse( three.equals(four)); |
| // special cases |
| assertFalse( one.equals(null) ); |
| assertFalse( one.equals(new Object()) ); |
| } |
| |
| /** |
| * Tests CodeSigner.getSignerCertPath() |
| */ |
| public void testGetSignerCertPath() { |
| assertSame(new CodeSigner(cpath, null).getSignerCertPath(), cpath); |
| } |
| |
| /** |
| * Tests CodeSigner.getTimeStamp() |
| */ |
| public void testGetTimestamp() { |
| assertNull(new CodeSigner(cpath, null).getTimestamp()); |
| assertSame(new CodeSigner(cpath, ts).getTimestamp(), ts); |
| } |
| |
| /** |
| * Tests CodeSigner.toString() |
| */ |
| public void testToString() { |
| assertTrue(new CodeSigner(cpath, null).toString().contains("")); |
| assertTrue(new CodeSigner(cpath, ts).toString().contains("")); |
| |
| assertTrue(new CodeSigner(cpath, null).toString().contains("Signer")); |
| assertTrue(new CodeSigner(cpath, ts).toString().contains(ts.toString())); |
| } |
| |
| /** |
| * Tests CodeSigner.hashCode() |
| */ |
| public void testHashCode() { |
| CodeSigner cs1 = new CodeSigner(cpath, ts); |
| CodeSigner cs2 = new CodeSigner(cpath, ts); |
| CodeSigner cs3 = new CodeSigner(cpath, null); |
| |
| assertTrue(cs1.hashCode() == cs2.hashCode()); |
| assertTrue(cs2.hashCode() != cs3.hashCode()); |
| } |
| |
| } |