|
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