1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.net.ssl;
15
16 import java.util.Arrays;
17
18 import org.junit.jupiter.api.BeforeEach;
19 import org.junit.jupiter.api.Test;
20
21 import ch.qos.logback.core.ContextBase;
22 import ch.qos.logback.core.net.ssl.mock.MockSSLConfigurable;
23
24 import static org.junit.jupiter.api.Assertions.assertTrue;
25
26
27
28
29
30
31 public class SSLParametersConfigurationTest {
32
33 private MockSSLConfigurable configurable = new MockSSLConfigurable();
34
35 private SSLParametersConfiguration configuration = new SSLParametersConfiguration();
36
37 @BeforeEach
38 public void setUp() throws Exception {
39 configuration.setContext(new ContextBase());
40 }
41
42 @Test
43 public void testSetIncludedProtocols() throws Exception {
44 configurable.setSupportedProtocols(new String[] { "A", "B", "C", "D" });
45 configuration.setIncludedProtocols("A,B ,C, D");
46 configuration.configure(configurable);
47 assertTrue(Arrays.equals(new String[] { "A", "B", "C", "D" }, configurable.getEnabledProtocols()));
48 }
49
50 @Test
51 public void testSetExcludedProtocols() throws Exception {
52 configurable.setSupportedProtocols(new String[] { "A", "B" });
53 configuration.setExcludedProtocols("A");
54 configuration.configure(configurable);
55 assertTrue(Arrays.equals(new String[] { "B" }, configurable.getEnabledProtocols()));
56 }
57
58 @Test
59 public void testSetIncludedAndExcludedProtocols() throws Exception {
60 configurable.setSupportedProtocols(new String[] { "A", "B", "C" });
61 configuration.setIncludedProtocols("A, B");
62 configuration.setExcludedProtocols("B");
63 configuration.configure(configurable);
64 assertTrue(Arrays.equals(new String[] { "A" }, configurable.getEnabledProtocols()));
65 }
66
67 @Test
68 public void testSetIncludedCipherSuites() throws Exception {
69 configurable.setSupportedCipherSuites(new String[] { "A", "B", "C", "D" });
70 configuration.setIncludedCipherSuites("A,B ,C, D");
71 configuration.configure(configurable);
72 assertTrue(Arrays.equals(new String[] { "A", "B", "C", "D" }, configurable.getEnabledCipherSuites()));
73 }
74
75 @Test
76 public void testSetExcludedCipherSuites() throws Exception {
77 configurable.setSupportedCipherSuites(new String[] { "A", "B" });
78 configuration.setExcludedCipherSuites("A");
79 configuration.configure(configurable);
80 assertTrue(Arrays.equals(new String[] { "B" }, configurable.getEnabledCipherSuites()));
81 }
82
83 @Test
84 public void testSetExcludedAndIncludedCipherSuites() throws Exception {
85 configurable.setSupportedCipherSuites(new String[] { "A", "B", "C" });
86 configuration.setIncludedCipherSuites("A, B");
87 configuration.setExcludedCipherSuites("B");
88 configuration.configure(configurable);
89 assertTrue(Arrays.equals(new String[] { "A" }, configurable.getEnabledCipherSuites()));
90 }
91
92 @Test
93 public void testSetNeedClientAuth() throws Exception {
94 configuration.setNeedClientAuth(true);
95 configuration.configure(configurable);
96 assertTrue(configurable.isNeedClientAuth());
97 }
98
99 @Test
100 public void testSetWantClientAuth() throws Exception {
101 configuration.setWantClientAuth(true);
102 configuration.configure(configurable);
103 assertTrue(configurable.isWantClientAuth());
104 }
105
106 @Test
107 public void testPassDefaultProtocols() throws Exception {
108 final String[] protocols = new String[] { "A" };
109 configurable.setDefaultProtocols(protocols);
110 configuration.configure(configurable);
111 assertTrue(Arrays.equals(protocols, configurable.getEnabledProtocols()));
112 }
113
114 @Test
115 public void testPassDefaultCipherSuites() throws Exception {
116 final String[] cipherSuites = new String[] { "A" };
117 configurable.setDefaultCipherSuites(cipherSuites);
118 configuration.configure(configurable);
119 assertTrue(Arrays.equals(cipherSuites, configurable.getEnabledCipherSuites()));
120 }
121
122 @Test
123 public void testPassDefaultNeedClientAuth() throws Exception {
124 configurable.setNeedClientAuth(true);
125 configuration.configure(configurable);
126 assertTrue(configurable.isNeedClientAuth());
127 }
128
129 @Test
130 public void testPassDefaultWantClientAuth() throws Exception {
131 configurable.setWantClientAuth(true);
132 configuration.configure(configurable);
133 assertTrue(configurable.isWantClientAuth());
134 }
135
136 }