1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration2.web;
19
20 import static org.junit.jupiter.api.Assertions.assertThrows;
21 import static org.mockito.Mockito.mock;
22 import static org.mockito.Mockito.when;
23
24 import java.util.Properties;
25
26 import javax.servlet.Servlet;
27 import javax.servlet.ServletConfig;
28 import javax.servlet.http.HttpServlet;
29
30 import org.apache.commons.configuration2.AbstractConfiguration;
31 import org.apache.commons.configuration2.TestAbstractConfiguration;
32 import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
33 import org.junit.jupiter.api.Test;
34 import org.mockito.ArgumentMatchers;
35
36
37
38
39 public class TestServletConfiguration extends TestAbstractConfiguration {
40
41
42
43
44
45
46
47 private ServletConfig mockServletConfig(final Properties parameters) {
48 final ServletConfig config = mock(ServletConfig.class);
49 when(config.getInitParameterNames()).thenAnswer(invocation -> parameters.keys());
50 when(config.getInitParameter(ArgumentMatchers.any())).thenAnswer(invocation -> {
51 final String name = invocation.getArgument(0, String.class);
52 return parameters.getProperty(name);
53 });
54 return config;
55 }
56
57 @Override
58 protected AbstractConfiguration getConfiguration() {
59 final Properties parameters = new Properties();
60 parameters.setProperty("key1", "value1");
61 parameters.setProperty("key2", "value2");
62 parameters.setProperty("list", "value1, value2");
63 parameters.setProperty("listesc", "value1\\,value2");
64
65 final ServletConfig config = mockServletConfig(parameters);
66
67 final Servlet servlet = new HttpServlet() {
68
69
70
71 private static final long serialVersionUID = 1L;
72
73 @Override
74 public ServletConfig getServletConfig() {
75 return config;
76 }
77 };
78
79 final ServletConfiguration servletConfiguration = new ServletConfiguration(servlet);
80 servletConfiguration.setListDelimiterHandler(new DefaultListDelimiterHandler(','));
81 return servletConfiguration;
82 }
83
84 @Override
85 protected AbstractConfiguration getEmptyConfiguration() {
86 return new ServletConfiguration(mockServletConfig(new Properties()));
87 }
88
89 @Override
90 @Test
91 public void testAddPropertyDirect() {
92 assertThrows(UnsupportedOperationException.class, super::testAddPropertyDirect);
93 }
94
95 @Override
96 @Test
97 public void testClearProperty() {
98 assertThrows(UnsupportedOperationException.class, super::testClearProperty);
99 }
100 }