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 }