CertificateCertificateRepTest.java revision cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd
1package tests.security.cert;
2
3import dalvik.annotation.TestLevel;
4import dalvik.annotation.TestTargetClass;
5import dalvik.annotation.TestTargetNew;
6
7import junit.framework.TestCase;
8
9import org.apache.harmony.security.tests.support.cert.MyCertificate;
10import org.apache.harmony.security.tests.support.cert.TestUtils;
11import org.apache.harmony.security.tests.support.cert.MyCertificate.MyCertificateRep;
12
13import java.io.ObjectStreamException;
14import java.security.cert.Certificate;
15import java.util.Arrays;
16
17@TestTargetClass(java.security.cert.Certificate.class)
18public class CertificateCertificateRepTest extends TestCase {
19
20    private static final byte[] testEncoding = new byte[] { (byte) 1, (byte) 2,
21            (byte) 3, (byte) 4, (byte) 5 };
22
23    protected void setUp() throws Exception {
24        super.setUp();
25    }
26
27    protected void tearDown() throws Exception {
28        super.tearDown();
29    }
30
31    /**
32     * Test for
33     * <code>Certificate.CertificateRep(String type, byte[] data)</code>
34     * method<br>
35     */
36    @TestTargetNew(
37        level = TestLevel.COMPLETE,
38        notes = "",
39        method = "Certificate.CertificateRep.CertificateRep",
40        args = { String.class, byte[].class}
41    )
42    public final void testCertificateCertificateRep() {
43        MyCertificate c1 = new MyCertificate("TEST_TYPE", testEncoding);
44        MyCertificateRep rep = c1.new MyCertificateRep("TEST_TYPE", new byte[] {
45                (byte) 1, (byte) 2, (byte) 3 });
46
47        assertTrue(Arrays.equals(new byte[] { (byte) 1, (byte) 2, (byte) 3 },
48                rep.getData()));
49        assertEquals("TEST_TYPE", rep.getType());
50
51        try {
52            c1.new MyCertificateRep(null, null);
53        } catch (Exception e) {
54            fail("Unexpected exeption " + e.getMessage());
55        }
56
57        try {
58            MyCertificate.MyCertificateRep rep1 = c1.new MyCertificateRep(
59                    "X509", TestUtils.getX509Certificate_v3());
60            assertEquals("X509", rep1.getType());
61            assertTrue(Arrays.equals(TestUtils.getX509Certificate_v3(), rep1.getData()));
62        } catch (Exception e) {
63            fail("Unexpected exeption " + e.getMessage());
64        }
65    }
66
67    /**
68     * Test for <code>readResolve()</code> method<br>
69     */
70    @TestTargetNew(
71        level = TestLevel.COMPLETE,
72        notes = "",
73        method = "Certificate.CertificateRep.readResolve",
74        args = {}
75    )
76    public final void testReadResolve() {
77        MyCertificate c1 = new MyCertificate("TEST_TYPE", testEncoding);
78        MyCertificateRep rep = c1.new MyCertificateRep("TEST_TYPE", new byte[] {
79                (byte) 1, (byte) 2, (byte) 3 });
80
81        try {
82            rep.readResolve();
83            fail("ObjectStreamException expected");
84        } catch (ObjectStreamException e) {
85            // expected
86        }
87
88        MyCertificateRep rep1 = c1.new MyCertificateRep("X509", TestUtils
89                .getX509Certificate_v3());
90        try {
91            Certificate obj = (Certificate) rep1.readResolve();
92            assertEquals("0.3.5", obj.getPublicKey().getAlgorithm());
93            assertEquals("X.509", obj.getPublicKey().getFormat());
94            assertEquals("X.509", obj.getType());
95        } catch (ObjectStreamException e) {
96            fail("Unexpected ObjectStreamException " + e.getMessage());
97        }
98    }
99}
100