View Javadoc
1   /*
2    * Licensed under the GPL License. You may not use this file except in compliance with the License.
3    * You may obtain a copy of the License at
4    *
5    *   https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
6    *
7    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
8    * WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
9    * PURPOSE.
10   */
11  package psiprobe.controllers.certificates;
12  
13  import static org.junit.jupiter.api.Assertions.*;
14  
15  import java.util.Arrays;
16  import java.util.List;
17  
18  import org.junit.jupiter.api.Test;
19  
20  import psiprobe.model.certificates.Cert;
21  import psiprobe.model.certificates.CertificateInfo;
22  import psiprobe.model.certificates.SslHostConfigInfo;
23  
24  /**
25   * The Class SslHostConfigInfoTest.
26   */
27  class SslHostConfigInfoTest {
28  
29    /**
30     * Test string properties.
31     */
32    @Test
33    void testStringProperties() {
34      SslHostConfigInfo info = new SslHostConfigInfo();
35  
36      info.setHostName("localhost");
37      assertEquals("localhost", info.getHostName());
38  
39      info.setCertificateVerification("REQUIRED");
40      assertEquals("REQUIRED", info.getCertificateVerification());
41  
42      info.setProtocols("TLSv1.2,TLSv1.3");
43      assertEquals("TLSv1.2,TLSv1.3", info.getProtocols());
44  
45      info.setCiphers("AES128");
46      assertEquals("AES128", info.getCiphers());
47  
48      info.setCertificateVerificationDepth("2");
49      assertEquals("2", info.getCertificateVerificationDepth());
50  
51      info.setInsecureRenegotiation("false");
52      assertEquals("false", info.getInsecureRenegotiation());
53  
54      info.setTruststoreFile("/tmp/truststore.jks");
55      assertEquals("/tmp/truststore.jks", info.getTruststoreFile());
56  
57      info.setTruststorePassword("secret");
58      assertEquals("secret", info.getTruststorePassword());
59  
60      info.setTruststoreProvider("SUN");
61      assertEquals("SUN", info.getTruststoreProvider());
62  
63      info.setTruststoreType("JKS");
64      assertEquals("JKS", info.getTruststoreType());
65  
66      info.setTruststoreAlgorithm("PKIX");
67      assertEquals("PKIX", info.getTruststoreAlgorithm());
68    }
69  
70    /**
71     * Test trust store certs.
72     */
73    @Test
74    void testTrustStoreCerts() {
75      SslHostConfigInfo info = new SslHostConfigInfo();
76      Cert cert1 = new Cert();
77      Cert cert2 = new Cert();
78  
79      info.setTrustStoreCerts(Arrays.asList(cert1, cert2));
80      List<Cert> certs = info.getTrustStoreCerts();
81      assertEquals(2, certs.size());
82      assertTrue(certs.contains(cert1));
83      assertTrue(certs.contains(cert2));
84  
85      // Defensive copy
86      certs.clear();
87      assertEquals(2, info.getTrustStoreCerts().size());
88  
89      // Null handling
90      info.setTrustStoreCerts(null);
91      assertNotNull(info.getTrustStoreCerts());
92      assertTrue(info.getTrustStoreCerts().isEmpty());
93    }
94  
95    /**
96     * Test certificate infos.
97     */
98    @Test
99    void testCertificateInfos() {
100     SslHostConfigInfo info = new SslHostConfigInfo();
101     CertificateInfo ci1 = new CertificateInfo();
102     CertificateInfo ci2 = new CertificateInfo();
103 
104     info.setCertificateInfos(Arrays.asList(ci1, ci2));
105     List<CertificateInfo> infos = info.getCertificateInfos();
106     assertEquals(2, infos.size());
107     assertTrue(infos.contains(ci1));
108     assertTrue(infos.contains(ci2));
109 
110     // Defensive copy
111     infos.clear();
112     assertEquals(2, info.getCertificateInfos().size());
113 
114     // Null handling
115     info.setCertificateInfos(null);
116     assertNotNull(info.getCertificateInfos());
117     assertTrue(info.getCertificateInfos().isEmpty());
118   }
119 }