]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/dbObjects/TestCACertificate.java
add: display fingerprint on RootCertPage, TestCACertificate class
[gigi.git] / tests / club / wpia / gigi / dbObjects / TestCACertificate.java
1 package club.wpia.gigi.dbObjects;
2
3 import static org.junit.Assert.*;
4
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.security.NoSuchAlgorithmException;
9 import java.security.cert.CertificateEncodingException;
10 import java.security.cert.CertificateException;
11 import java.security.cert.CertificateFactory;
12 import java.security.cert.X509Certificate;
13
14 import org.junit.Before;
15 import org.junit.Test;
16
17 import club.wpia.gigi.testUtils.ClientBusinessTest;
18
19 public class TestCACertificate extends ClientBusinessTest {
20
21     public CertificateFactory fact;
22
23     public CACertificate root, orga;
24
25     public int rootId, orgaId;
26
27     public X509Certificate configRoot;
28
29     @Before
30     public void getTestCertificates() throws CertificateException, FileNotFoundException {
31         fact = CertificateFactory.getInstance("X.509");
32
33         for (CACertificate cert : CACertificate.getAll()) {
34             if ("root".equals(cert.getKeyname())) {
35                 root = cert;
36                 rootId = cert.getId();
37             } else if ("orga".equals(cert.getKeyname())) {
38                 orga = cert;
39                 orgaId = cert.getId();
40             }
41         }
42         FileInputStream fis = new FileInputStream(new File("config/ca/root.crt"));
43         configRoot = (X509Certificate) fact.generateCertificate(fis);
44     }
45
46     @Test
47     public void testGetParent() {
48         assertEquals(root, orga.getParent());
49     }
50
51     @Test
52     public void testGetCertificate() {
53         assertEquals(configRoot, root.getCertificate());
54     }
55
56     @Test
57     public void testToString() {
58         assertEquals("CACertificate: root", root.toString());
59         assertEquals("CACertificate: orga", orga.toString());
60     }
61
62     @Test
63     public void testGetId() {
64         assertEquals(rootId, root.getId());
65         assertEquals(orgaId, orga.getId());
66     }
67
68     @Test
69     public void testGetKeyname() {
70         assertEquals("root", root.getKeyname());
71         assertEquals("orga", orga.getKeyname());
72     }
73
74     // TODO: test getLink
75
76     @Test
77     public void testGetById() {
78         assertEquals(root, CACertificate.getById(rootId));
79         assertEquals(orga, CACertificate.getById(orgaId));
80     }
81
82     @Test
83     public void testIsSelfsigned() {
84         assertTrue(root.isSelfsigned());
85         assertFalse(orga.isSelfsigned());
86     }
87
88     @Test
89     public void testGetFingerprint() throws CertificateEncodingException, NoSuchAlgorithmException {
90         assertEquals(Certificate.getFingerprint(configRoot, "sha-1"), root.getFingerprint("sha-1"));
91         assertEquals(Certificate.getFingerprint(configRoot, "sha-256"), root.getFingerprint("sha-256"));
92     }
93
94     @Test
95     public void testGetAll() throws FileNotFoundException, CertificateException {
96         for (CACertificate cert : CACertificate.getAll()) {
97             FileInputStream fis = new FileInputStream(new File(String.format("config/ca/%s.crt", cert.getKeyname())));
98             assertEquals(cert.getCertificate(), (X509Certificate) fact.generateCertificate(fis));
99         }
100     }
101 }