1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package nl.altindag.ssl.trustmanager;
18
19 import org.junit.jupiter.api.Test;
20 import org.junit.jupiter.api.extension.ExtendWith;
21 import org.mockito.junit.jupiter.MockitoExtension;
22
23 import javax.net.ssl.SSLEngine;
24 import javax.net.ssl.X509TrustManager;
25
26 import java.net.Socket;
27 import java.security.cert.CertificateException;
28 import java.security.cert.X509Certificate;
29
30 import static org.assertj.core.api.Assertions.assertThat;
31 import static org.assertj.core.api.Assertions.assertThatThrownBy;
32 import static org.mockito.Mockito.mock;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
35 import static org.mockito.Mockito.when;
36
37
38
39
40 @ExtendWith(MockitoExtension.class)
41 class X509TrustManagerWrapperShould {
42
43 @Test
44 void checkClientTrusted() throws CertificateException {
45 X509TrustManager trustManager = mock(X509TrustManager.class);
46
47 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
48 victim.checkClientTrusted(null, null);
49
50 verify(trustManager, times(1)).checkClientTrusted(null, null);
51 }
52
53 @Test
54 void checkClientTrustedWithSocket() throws CertificateException {
55 X509TrustManager trustManager = mock(X509TrustManager.class);
56
57 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
58 victim.checkClientTrusted(null, null, (Socket) null);
59
60 verify(trustManager, times(1)).checkClientTrusted(null, null);
61 }
62
63 @Test
64 void checkClientTrustedWithSslEngine() throws CertificateException {
65 X509TrustManager trustManager = mock(X509TrustManager.class);
66
67 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
68 victim.checkClientTrusted(null, null, (SSLEngine) null);
69
70 verify(trustManager, times(1)).checkClientTrusted(null, null);
71 }
72
73 @Test
74 void checkServerTrusted() throws CertificateException {
75 X509TrustManager trustManager = mock(X509TrustManager.class);
76
77 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
78 victim.checkServerTrusted(null, null);
79
80 verify(trustManager, times(1)).checkServerTrusted(null, null);
81 }
82
83 @Test
84 void checkServerTrustedWithSocket() throws CertificateException {
85 X509TrustManager trustManager = mock(X509TrustManager.class);
86
87 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
88 victim.checkServerTrusted(null, null, (Socket) null);
89
90 verify(trustManager, times(1)).checkServerTrusted(null, null);
91 }
92
93 @Test
94 void checkServerTrustedWithSslEngine() throws CertificateException {
95 X509TrustManager trustManager = mock(X509TrustManager.class);
96
97 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
98 victim.checkServerTrusted(null, null, (SSLEngine) null);
99
100 verify(trustManager, times(1)).checkServerTrusted(null, null);
101 }
102
103 @Test
104 void getAcceptedIssuers() {
105 X509TrustManager trustManager = mock(X509TrustManager.class);
106 when(trustManager.getAcceptedIssuers()).thenReturn(new X509Certificate[]{mock(X509Certificate.class)});
107
108 X509TrustManagerWrapper victim = new X509TrustManagerWrapper(trustManager);
109 X509Certificate[] acceptedIssuers = victim.getAcceptedIssuers();
110
111 assertThat(acceptedIssuers).hasSize(1);
112 verify(trustManager, times(1)).getAcceptedIssuers();
113 }
114
115 @Test
116 void throwNullPointerExceptionWhenKeyManagerIsNotPresent() {
117 assertThatThrownBy(() -> new X509TrustManagerWrapper(null))
118 .isInstanceOf(NullPointerException.class);
119 }
120
121 }