1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
package org.xwiki.filter.internal; |
21 |
|
|
22 |
|
import java.awt.Color; |
23 |
|
import java.lang.reflect.Type; |
24 |
|
import java.util.Collections; |
25 |
|
import java.util.Map; |
26 |
|
|
27 |
|
import org.junit.Assert; |
28 |
|
import org.junit.Before; |
29 |
|
import org.junit.Rule; |
30 |
|
import org.junit.Test; |
31 |
|
import org.xwiki.component.manager.ComponentLookupException; |
32 |
|
import org.xwiki.component.util.DefaultParameterizedType; |
33 |
|
import org.xwiki.filter.FilterDescriptor; |
34 |
|
import org.xwiki.filter.FilterDescriptorManager; |
35 |
|
import org.xwiki.filter.FilterElementDescriptor; |
36 |
|
import org.xwiki.filter.FilterElementParameterDescriptor; |
37 |
|
import org.xwiki.filter.FilterException; |
38 |
|
import org.xwiki.filter.UnknownFilter; |
39 |
|
import org.xwiki.filter.test.TestFilterImplementation; |
40 |
|
import org.xwiki.properties.ConverterManager; |
41 |
|
import org.xwiki.properties.converter.ConversionException; |
42 |
|
import org.xwiki.test.mockito.MockitoComponentMockingRule; |
43 |
|
|
44 |
|
import static org.junit.Assert.assertNotSame; |
45 |
|
import static org.mockito.ArgumentMatchers.any; |
46 |
|
import static org.mockito.Mockito.doThrow; |
47 |
|
import static org.mockito.Mockito.mock; |
48 |
|
import static org.mockito.Mockito.when; |
49 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (64) |
Complexity: 9 |
Complexity Density: 0.16 |
|
50 |
|
public abstract class AbstractFilterDescriptorManagerTest |
51 |
|
{ |
52 |
|
@Rule |
53 |
|
public MockitoComponentMockingRule<FilterDescriptorManager> mocker = |
54 |
|
new MockitoComponentMockingRule<FilterDescriptorManager>(DefaultFilterDescriptorManager.class); |
55 |
|
|
56 |
|
private Object filter; |
57 |
|
|
58 |
|
private FilterDescriptor filterDescriptor; |
59 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
60 |
14 |
public AbstractFilterDescriptorManagerTest(Object filter)... |
61 |
|
{ |
62 |
14 |
this.filter = filter; |
63 |
|
} |
64 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
65 |
14 |
@Before... |
66 |
|
public void before() throws ComponentLookupException |
67 |
|
{ |
68 |
14 |
ConverterManager converter = this.mocker.getInstance(ConverterManager.class); |
69 |
|
|
70 |
14 |
when(converter.convert(int.class, "42")).thenReturn(42); |
71 |
14 |
when(converter.convert(String.class, "default value")).thenReturn("default value"); |
72 |
14 |
when(converter.convert(Color.class, "#ffffff")).thenReturn(Color.WHITE); |
73 |
14 |
when(converter.convert(new DefaultParameterizedType(null, Map.class, new Type[] { String.class, String.class }), |
74 |
|
"")).thenThrow(ConversionException.class); |
75 |
|
|
76 |
14 |
this.filterDescriptor = this.mocker.getComponentUnderTest().getFilterDescriptor(this.filter.getClass()); |
77 |
|
} |
78 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
4-
|
|
79 |
2 |
@Test... |
80 |
|
public void testContainerWithParameters() |
81 |
|
{ |
82 |
2 |
FilterElementDescriptor filterElement = this.filterDescriptor.getElement("containerwithparameters"); |
83 |
|
|
84 |
2 |
Assert.assertNotNull(filterElement); |
85 |
|
|
86 |
2 |
FilterElementParameterDescriptor<?> parameter0 = filterElement.getParameters()[0]; |
87 |
2 |
parameter0 = filterElement.getParameter("param0"); |
88 |
|
|
89 |
2 |
Assert.assertEquals("param0", parameter0.getName()); |
90 |
2 |
Assert.assertEquals(0, parameter0.getIndex()); |
91 |
2 |
Assert.assertEquals(String.class, parameter0.getType()); |
92 |
|
} |
93 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (8) |
Complexity: 1 |
Complexity Density: 0.12 |
4-
|
|
94 |
2 |
@Test... |
95 |
|
public void testContainerWithNamedParameters() |
96 |
|
{ |
97 |
2 |
FilterElementDescriptor filterElement = this.filterDescriptor.getElement("containerwithnamedparameters"); |
98 |
|
|
99 |
2 |
Assert.assertNotNull(filterElement); |
100 |
|
|
101 |
2 |
FilterElementParameterDescriptor<?> parameter0 = filterElement.getParameters()[0]; |
102 |
2 |
parameter0 = filterElement.getParameter("namedParam"); |
103 |
|
|
104 |
2 |
Assert.assertNotNull(parameter0); |
105 |
|
|
106 |
2 |
Assert.assertEquals("namedParam", parameter0.getName()); |
107 |
2 |
Assert.assertEquals(0, parameter0.getIndex()); |
108 |
2 |
Assert.assertEquals(String.class, parameter0.getType()); |
109 |
|
} |
110 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (8) |
Complexity: 1 |
Complexity Density: 0.12 |
4-
|
|
111 |
2 |
@Test... |
112 |
|
public void testNameInheritance() throws ComponentLookupException |
113 |
|
{ |
114 |
2 |
FilterElementDescriptor filterElement = this.mocker.getComponentUnderTest() |
115 |
|
.getFilterDescriptor(TestFilterImplementation.class).getElement("containerwithnamedparameters"); |
116 |
|
|
117 |
2 |
Assert.assertNotNull(filterElement); |
118 |
|
|
119 |
2 |
FilterElementParameterDescriptor<?> parameter0 = filterElement.getParameters()[0]; |
120 |
2 |
parameter0 = filterElement.getParameter("namedParam"); |
121 |
|
|
122 |
2 |
Assert.assertNotNull(parameter0); |
123 |
|
|
124 |
2 |
Assert.assertEquals("namedParam", parameter0.getName()); |
125 |
2 |
Assert.assertEquals(0, parameter0.getIndex()); |
126 |
2 |
Assert.assertEquals(String.class, parameter0.getType()); |
127 |
|
} |
128 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (10) |
Complexity: 1 |
Complexity Density: 0.1 |
4-
|
|
129 |
2 |
@Test... |
130 |
|
public void testWithDefaultValue() throws ComponentLookupException |
131 |
|
{ |
132 |
2 |
FilterElementDescriptor filterElement = this.mocker.getComponentUnderTest() |
133 |
|
.getFilterDescriptor(TestFilterImplementation.class).getElement("childwithdefaultvalue"); |
134 |
|
|
135 |
2 |
Assert.assertNotNull(filterElement); |
136 |
|
|
137 |
2 |
FilterElementParameterDescriptor<Integer> parameter0 = filterElement.getParameter("int"); |
138 |
|
|
139 |
2 |
Assert.assertEquals(Integer.valueOf(42), parameter0.getDefaultValue()); |
140 |
|
|
141 |
2 |
FilterElementParameterDescriptor<String> parameter1 = filterElement.getParameter("string"); |
142 |
|
|
143 |
2 |
Assert.assertEquals("default value", parameter1.getDefaultValue()); |
144 |
|
|
145 |
2 |
FilterElementParameterDescriptor<Color> parameter2 = filterElement.getParameter("color"); |
146 |
|
|
147 |
2 |
Assert.assertEquals(Color.WHITE, parameter2.getDefaultValue()); |
148 |
|
|
149 |
2 |
FilterElementParameterDescriptor<Map<String, String>> parameter3 = filterElement.getParameter("map"); |
150 |
|
|
151 |
2 |
Assert.assertEquals(Collections.EMPTY_MAP, parameter3.getDefaultValue()); |
152 |
|
} |
153 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
4-
|
|
154 |
2 |
@Test... |
155 |
|
public void testNamedChild() |
156 |
|
{ |
157 |
2 |
FilterElementDescriptor filterElement = this.filterDescriptor.getElement("childwithname"); |
158 |
|
|
159 |
2 |
Assert.assertNotNull(filterElement); |
160 |
2 |
Assert.assertNull(filterElement.getBeginMethod()); |
161 |
2 |
Assert.assertNull(filterElement.getEndMethod()); |
162 |
2 |
Assert.assertNotNull(filterElement.getOnMethod()); |
163 |
|
} |
164 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
4-
|
|
165 |
2 |
@Test... |
166 |
|
public void testNamedContainer() |
167 |
|
{ |
168 |
2 |
FilterElementDescriptor filterElement = this.filterDescriptor.getElement("containerwithname"); |
169 |
|
|
170 |
2 |
Assert.assertNotNull(filterElement); |
171 |
2 |
Assert.assertNotNull(filterElement.getBeginMethod()); |
172 |
2 |
Assert.assertNotNull(filterElement.getEndMethod()); |
173 |
2 |
Assert.assertNull(filterElement.getOnMethod()); |
174 |
|
} |
175 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
4-
|
|
176 |
2 |
@Test(expected = FilterException.class)... |
177 |
|
public void testProxyFailing() throws FilterException, ComponentLookupException |
178 |
|
{ |
179 |
2 |
UnknownFilter filter = mock(UnknownFilter.class); |
180 |
2 |
doThrow(FilterException.class).when(filter).onUnknwon(any(), any()); |
181 |
|
|
182 |
2 |
UnknownFilter proxyFilter = this.mocker.getComponentUnderTest().createFilterProxy(filter, UnknownFilter.class, |
183 |
|
FilterDescriptorManager.class); |
184 |
|
|
185 |
2 |
assertNotSame(filter, proxyFilter); |
186 |
|
|
187 |
2 |
proxyFilter.onUnknwon(null, null); |
188 |
|
} |
189 |
|
} |