|
21 | 21 | */
|
22 | 22 | package org.exist.indexing.range;
|
23 | 23 |
|
| 24 | +import nl.altindag.log.LogCaptor; |
24 | 25 | import org.apache.logging.log4j.Logger;
|
25 | 26 | import org.easymock.Capture;
|
26 |
| -import org.exist.util.JDKCompatibility; |
27 | 27 | import org.junit.Test;
|
28 | 28 | import org.w3c.dom.Document;
|
29 | 29 | import org.w3c.dom.Element;
|
30 | 30 | import org.w3c.dom.Node;
|
31 | 31 | import org.w3c.dom.NodeList;
|
32 | 32 |
|
33 |
| -import java.lang.reflect.Field; |
34 |
| -import java.lang.reflect.Modifier; |
35 | 33 | import java.util.HashMap;
|
36 | 34 | import java.util.Map;
|
37 | 35 |
|
38 |
| -import static junit.framework.TestCase.assertTrue; |
39 | 36 | import static org.easymock.EasyMock.*;
|
40 | 37 | import static org.exist.collections.CollectionConfiguration.DEFAULT_COLLECTION_CONFIG_FILE;
|
41 | 38 | import static org.exist.indexing.lucene.LuceneIndexConfig.MATCH_ATTR;
|
42 | 39 | import static org.exist.indexing.lucene.LuceneIndexConfig.QNAME_ATTR;
|
| 40 | +import static org.junit.Assert.assertTrue; |
43 | 41 |
|
44 | 42 | public class RangeIndexConfigTest {
|
45 | 43 |
|
@@ -88,30 +86,20 @@ public void errorsHaveSourceContext() throws NoSuchFieldException, IllegalAccess
|
88 | 86 | replay(mockConfigNodes, mockConfigNode, mockCreates, mockCreateDocument, mockCreate, mockEmptyNodeList, mockLogger);
|
89 | 87 |
|
90 | 88 |
|
91 |
| - |
92 | 89 | final Map<String, String> namespaces = new HashMap<>();
|
93 | 90 | namespaces.put("tei", "http://www.tei-c.org/ns/1.0");
|
94 | 91 |
|
95 |
| - overrideLogger(RangeIndexConfig.class, mockLogger); |
96 |
| - final RangeIndexConfig config = new RangeIndexConfig(mockConfigNodes, namespaces); |
97 |
| - |
98 |
| - assertTrue(errorMsgCapture.getValue().contains("Illegal QName: '" + badCreateQName + "'.. QName is invalid: INVALID_LOCAL_PART")); |
99 |
| - assertTrue(errorMsgCapture.getValue().contains("(" + mockCollectionXConfUri + ")")); |
| 92 | + LogCaptor logCaptor = LogCaptor.forClass(RangeIndexConfig.class); |
100 | 93 |
|
101 |
| - verify(mockConfigNodes, mockConfigNode, mockCreates, mockCreateDocument, mockCreate, mockEmptyNodeList, mockLogger); |
102 |
| - } |
103 |
| - |
104 |
| - private void overrideLogger(final Class clazz, final Logger logger) throws NoSuchFieldException, IllegalAccessException { |
105 |
| - final Field loggerField = clazz.getDeclaredField("LOG"); |
| 94 | + final RangeIndexConfig config = new RangeIndexConfig(mockConfigNodes, namespaces); |
106 | 95 |
|
107 |
| - // allow access to private field |
108 |
| - loggerField.setAccessible(true); |
| 96 | + assertTrue(logCaptor.getLogs().get(0) |
| 97 | + .contains("Illegal QName: '" + badCreateQName + "'.. QName is invalid: INVALID_LOCAL_PART")); |
109 | 98 |
|
110 |
| - // remove final modifier |
111 |
| - final Field modifiersField = JDKCompatibility.getModifiersField(); |
112 |
| - modifiersField.setAccessible(true); |
113 |
| - modifiersField.setInt(loggerField, loggerField.getModifiers() & ~Modifier.FINAL); |
| 99 | + assertTrue(logCaptor.getLogs().get(0) |
| 100 | + .contains("(" + mockCollectionXConfUri + ")")); |
114 | 101 |
|
115 |
| - loggerField.set(null, logger); |
| 102 | + verify(mockConfigNodes, mockConfigNode, mockCreates, mockCreateDocument, mockCreate, mockEmptyNodeList); |
116 | 103 | }
|
| 104 | + |
117 | 105 | }
|
0 commit comments