1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.filter.internal

File AbstractFilterDescriptorManagerTest.java

 

Code metrics

0
55
9
1
189
128
9
0.16
6.11
9
1

Classes

Class Line # Actions
AbstractFilterDescriptorManagerTest 50 55 0% 9 0
1.0100%
 

Contributing tests

This file is covered by 14 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
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   
 
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   
 
60  14 toggle public AbstractFilterDescriptorManagerTest(Object filter)
61    {
62  14 this.filter = filter;
63    }
64   
 
65  14 toggle @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   
 
79  2 toggle @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   
 
94  2 toggle @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   
 
111  2 toggle @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   
 
129  2 toggle @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   
 
154  2 toggle @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   
 
165  2 toggle @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   
 
176  2 toggle @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    }