@Test public void testHintHandler() throws Exception { File fXmlFile = new File(HINT_XML_FILE); RuleLoaderContext loaderContext = new RuleLoaderContext(Collections.singleton(fXmlFile.toPath()), null); ParserContext parser = new ParserContext(furnace, loaderContext); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); dbFactory.setNamespaceAware(true); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); List<Element> hintList = $(doc).children("hint").get(); Assert.assertEquals(3, hintList.size()); Element firstHint = hintList.get(0); Hint hint = parser.processElement(firstHint); Assert.assertEquals("testVariable", hint.getVariableName()); Assert.assertEquals(5, hint.getEffort()); Assert.assertNull(IssueCategoryRegistry.OPTIONAL, hint.getIssueCategory()); Assert.assertEquals("test message", hint.getHintText().toString()); Assert.assertEquals(1, hint.getLinks().size()); List<Link> links = hint.getLinks(); Assert.assertEquals("someUrl", links.get(0).getLink()); Assert.assertEquals("someDescription", links.get(0).getTitle()); Element secondHint = hintList.get(1); hint = parser.processElement(secondHint); Assert.assertEquals(null, hint.getVariableName()); Assert.assertEquals(0, hint.getEffort()); Assert.assertEquals(IssueCategoryRegistry.MANDATORY, hint.getIssueCategory().getCategoryID()); Assert.assertEquals("test-message", hint.getHintText().toString()); Assert.assertEquals(3, hint.getLinks().size()); links = hint.getLinks(); Assert.assertEquals("url1", links.get(0).getLink()); Assert.assertEquals("url2", links.get(1).getLink()); Assert.assertEquals("url3", links.get(2).getLink()); Assert.assertEquals("description1", links.get(0).getTitle()); Assert.assertEquals("description2", links.get(1).getTitle()); Assert.assertEquals("description3", links.get(2).getTitle()); Set<String> tags = hint.getTags(); Assert.assertTrue(tags.contains("java-ee-6")); Assert.assertTrue(tags.contains("jpa-2")); Assert.assertTrue(tags.contains("jpa")); Assert.assertFalse(tags.contains("foo")); }