1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.puppycrawl.tools.checkstyle;
21
22 import static com.puppycrawl.tools.checkstyle.internal.utils.TestUtil.isUtilsClassHasPrivateConstructor;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertNull;
26 import static org.junit.Assert.assertTrue;
27
28 import java.util.HashMap;
29 import java.util.Map;
30
31 import javax.xml.parsers.ParserConfigurationException;
32
33 import org.junit.Test;
34 import org.powermock.reflect.Whitebox;
35 import org.xml.sax.SAXException;
36 import org.xml.sax.XMLReader;
37
38 public class XmlLoaderTest {
39
40 @Test
41 public void testParserConfiguredSuccessfully() throws Exception {
42 final DummyLoader dummyLoader = new DummyLoader(new HashMap<>(1));
43 final XMLReader parser = Whitebox.getInternalState(dummyLoader, "parser");
44 assertEquals("Invalid entity resolver", dummyLoader, parser.getEntityResolver());
45 }
46
47 @Test
48 public void testIsProperUtilsClass() throws ReflectiveOperationException {
49 assertTrue("Constructor is not private", isUtilsClassHasPrivateConstructor(
50 XmlLoader.LoadExternalDtdFeatureProvider.class, true));
51 }
52
53 @Test
54 public void testResolveEntityDefault() throws Exception {
55 final Map<String, String> map = new HashMap<>();
56 map.put("predefined", "/google.xml");
57 final DummyLoader dummyLoader = new DummyLoader(map);
58 assertNull("Invalid entity", dummyLoader.resolveEntity("notPredefined", "BAD"));
59 }
60
61 @Test
62 public void testResolveEntityMap() throws Exception {
63 final Map<String, String> map = new HashMap<>();
64 map.put("predefined", "/google.xml");
65 final DummyLoader dummyLoader = new DummyLoader(map);
66 assertNotNull("Invalid entity", dummyLoader.resolveEntity("predefined", "BAD"));
67 }
68
69 private static final class DummyLoader extends XmlLoader {
70
71 DummyLoader(Map<String, String> publicIdToResourceNameMap)
72 throws SAXException, ParserConfigurationException {
73 super(publicIdToResourceNameMap);
74 }
75
76 }
77
78 }