@Test public void testMacroFill() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); Collection<String> probesName = new ArrayList<String>(); for(Probe<?, ?> p: host.getProbes()) { probesName.add(p.toString()); } logger.trace(probesName); Assert.assertTrue("MacroProbe1 not found", probesName.contains("myhost/MacroProbe1")); Assert.assertTrue("MacroProbe2 not found", probesName.contains("myhost/MacroProbe2")); }
@Test public void testMacroTag() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); String tagname = "mytag"; d.getRootElement().addElement("tag").setTextContent(tagname); Macro m = doMacro(d, "macrodef"); HostBuilder hb = getBuilder(m); JrdsDocument hostdoc = Tools.parseString(goodHostXml); HostInfo host = hb.makeHost(hostdoc); Assert.assertTrue("tag not found", host.getTags().contains(tagname)); }
@Test public void testMacroFillwithProps2() throws Exception { Map<String, String> prop = new HashMap<String, String>(); prop.put(OutputKeys.INDENT, "yes"); prop.put(OutputKeys.INDENT, "yes"); prop.put("{http://xml.apache.org/xslt}indent-amount", "4"); JrdsDocument d = Tools.parseString(goodMacroXml); d.getRootElement().addElement("probe", "type=MacroProbe3").addElement("attr", "name=val").addTextNode("${a}"); Macro m = doMacro(d, "macrodef"); m.getDf(); JrdsDocument hostdoc = Tools.parseString(goodHostXml); hostdoc.getRootElement().getChildElementsByName("macro").iterator().next().addElement("arg", "type=String", "value=${a}"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe1".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertFalse(mp.getArgs().contains("bidule")); found = true; } else if("myhost/MacroProbe2".equals(p.toString())) { @SuppressWarnings("unused") MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; } } Assert.assertTrue("macro probe with properties not found", found); }
@Test public void testRecursive() throws Exception { JrdsDocument d1 = Tools.parseString(goodMacroXml); Tools.appendString(d1.getDocumentElement(), "<macro name=\"macrodef2\" />"); Macro m1 = doMacro(d1, "macrodef"); JrdsDocument d2 = Tools.parseString(goodMacroXml); Tools.appendString(Tools.appendString(d2.getDocumentElement(), "<probe type = \"MacroProbe3\" />"), "<arg type=\"String\" value=\"bidule\" />"); Macro m2 = doMacro(d2, "macrodef2"); HostBuilder hb = getBuilder(m1, m2); JrdsDocument hostdoc = Tools.parseString(goodHostXml); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertTrue(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("macro not recursive", found); }
@Test public void testMacroFillwithProps1() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); d.getRootElement().addElement("entry", "key=a").setTextContent("bidule"); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); hostdoc.getRootElement().addElement("probe", "type=MacroProbe3").addElement("arg", "type=String", "value=${a}"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertFalse(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("macro probe with properties not found", found); }
@Test public void testCollection() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); Tools.appendString(Tools.appendString(Tools.appendString(d.getDocumentElement(), "<for var=\"a\" collection=\"c\"/>"), "<probe type = \"MacroProbe3\" />"), "<arg type=\"String\" value=\"${a}\" />"); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); Tools.appendString(Tools.appendString(hostdoc.getDocumentElement(), "<collection name=\"c\"/>"), "<element>bidule</element>"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertTrue(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("collection not found", found); }