📄 configurationparsertest.java
字号:
package org.xmlBlaster.test.dispatch;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.dispatch.plugins.prio.*;import org.xmlBlaster.util.def.PriorityEnum;import org.xmlBlaster.util.XmlBlasterException;import java.util.Map;import java.util.Iterator;import junit.framework.*;/** * Test ConfigurationParser. * <p /> * All methods starting with 'test' and without arguments are invoked automatically * <p /> * TODO: http://xmlunit.sourceforge.net/ * <p /> * Invoke: java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.dispatch.ConfigurationParserTest * @see org.xmlBlaster.util.dispatch.plugins.prio.ConfigurationParser * @see org.xmlBlaster.util.dispatch.plugins.prio.PriorizedDispatchPlugin * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/dispatch.plugin.priorizedDispatch.html" target="others">the dispatch.plugin.priorizedDispatch requirement</a> * @author xmlBlaster@marcelruff.info */public class ConfigurationParserTest extends TestCase { protected Global glob; private static Logger log = Logger.getLogger(ConfigurationParserTest.class.getName()); int counter = 0; public ConfigurationParserTest(String name) { super(name); } protected void setUp() { this.glob = Global.instance(); } protected void tearDown() { this.glob = null; Global.instance().shutdown(); } /** Test a valid configuration */ public void testParse() { System.out.println("***ConfigurationParserTest: testParse ..."); try { String xml = "<msgDispatch defaultStatus='64k' defaultAction='send'>\n" + " <onStatus oid='_bandwidth.status' content='64k' defaultAction='destroy'>\n" + " <action do='send' ifPriority='7-9'/>\n" + " <action do='queue' ifPriority='3-6'/>\n" + " <action do='queue|notifySender' ifPriority='2'/>\n" + " </onStatus>\n" + " <onStatus oid='_bandwidth.status' content='2M'>\n" + " <action do='send'/>\n" + // defaults to ifPriority='0-9' " </onStatus>\n" + " <onStatus oid='_bandwidth.status' content='DOWN' defaultAction='queue' connectionState='polling'>\n" + " <action do='destroy'/>\n" + // defaults to ifPriority='0-9' " </onStatus>\n" + "</msgDispatch>\n"; ConfigurationParser parser = new ConfigurationParser(glob, xml); assertEquals("", "send", parser.getDefaultDispatchAction().getAction()); assertEquals("", "64k", parser.getDefaultStatus()); Map confMap = parser.getStatusConfigurationMap(); assertEquals("Illegal map size", 3, confMap.size()); assertTrue("Missing key", confMap.containsKey("64k")); assertTrue("Missing key", confMap.containsKey("2M")); assertTrue("Missing key", confMap.containsKey("DOWN")); //Iterator it = confMap.keySet().iterator(); //while (it.hasNext()) { // StatusConfiguration conf = (StatusConfiguration)it.next(); //} StatusConfiguration conf = (StatusConfiguration)confMap.get("64k"); assertEquals("", "_bandwidth.status", conf.getOid()); assertEquals("", "64k", conf.getContent()); assertEquals("", (String)null, conf.getConnectionState()); assertEquals("", "destroy", conf.getDefaultDispatchAction().getAction()); assertEquals("", false, conf.defaultActionOnly()); for (int i=7; i<=9; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "send", action.getAction()); assertEquals("Wrong boolean action", true, action.doSend()); assertEquals("Wrong boolean action", false, action.doQueue()); assertEquals("Wrong boolean action", false, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } for (int i=3; i<=6; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "queue", action.getAction()); assertEquals("Wrong boolean action", false, action.doSend()); assertEquals("Wrong boolean action", true, action.doQueue()); assertEquals("Wrong boolean action", false, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } for (int i=2; i<=2; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "queue|notifySender", action.getAction()); assertEquals("Wrong boolean action", false, action.doSend()); assertEquals("Wrong boolean action", true, action.doQueue()); assertEquals("Wrong boolean action", false, action.doDestroy()); assertEquals("Wrong boolean action", true, action.doNotifySender()); } for (int i=0; i<=1; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "destroy", action.getAction()); assertEquals("Wrong boolean action", false, action.doSend()); assertEquals("Wrong boolean action", false, action.doQueue()); assertEquals("Wrong boolean action", true, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } conf = (StatusConfiguration)confMap.get("2M"); assertEquals("", "_bandwidth.status", conf.getOid()); assertEquals("", "2M", conf.getContent()); assertEquals("", (String)null, conf.getConnectionState()); assertEquals("", "send", conf.getDefaultDispatchAction().getAction()); assertEquals("", true, conf.defaultActionOnly()); for (int i=0; i<=9; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "send", action.getAction()); assertEquals("Wrong boolean action", true, action.doSend()); assertEquals("Wrong boolean action", false, action.doQueue()); assertEquals("Wrong boolean action", false, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } conf = (StatusConfiguration)confMap.get("DOWN"); assertEquals("", "_bandwidth.status", conf.getOid()); assertEquals("", "DOWN", conf.getContent()); assertEquals("", "POLLING", conf.getConnectionState().toString()); assertEquals("", "queue", conf.getDefaultDispatchAction().getAction()); assertEquals("", false, conf.defaultActionOnly()); for (int i=0; i<=9; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "destroy", action.getAction()); assertEquals("Wrong boolean action", false, action.doSend()); assertEquals("Wrong boolean action", false, action.doQueue()); assertEquals("Wrong boolean action", true, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } } catch (XmlBlasterException e) { fail("testParse failed: " + e.toString()); } System.out.println("***ConfigurationParserTest: testParse [SUCCESS]"); } /** Test invalid configuration */ public void testInvalidParse() { System.out.println("***ConfigurationParserTest: testInvalidParse ..."); try { String xml = "<msgDispatch defaultStatus='64k' defaultAction='sendXXXX'/>"; ConfigurationParser parser = new ConfigurationParser(glob, xml); fail("testInvalidParse failed, invalid xml should not be parseable"); } catch (XmlBlasterException e) { System.out.println("Success: Expected exception: " + e.toString()); } try { String xml = "<msgDispatch defaultStatus='64k' defaultAction='send'>\n" + " <onStatus oid='_bandwidth.status' content='64k' defaultAction='destroy'>\n" + " <action do='send' ifPriority='7-99'/>\n" + " </onStatus>\n" + "</msgDispatch>\n"; ConfigurationParser parser = new ConfigurationParser(glob, xml); fail("testInvalidParse failed, invalid xml should not be parseable, prio is not allowed"); } catch (XmlBlasterException e) { System.out.println("Success: Expected exception: " + e.toString()); } try { String xml = "<msgDispatch defaultStatus='64k' defaultAction='send'>\n" + " <onStatus oid='_bandwidth.status' content='64k' defaultAction='destroy'>\n" + " <action do='sendXXX' ifPriority='7'/>\n" + " </onStatus>\n" + "</msgDispatch>\n"; ConfigurationParser parser = new ConfigurationParser(glob, xml); fail("testInvalidParse failed, invalid xml should not be parseable, action is invalid"); } catch (XmlBlasterException e) { System.out.println("Success: Expected exception: " + e.toString()); } try { String xml = "<msgDispatch defaultStatus='64k' defaultAction='send'>\n" + " <onStatus oid='_bandwidth.status' content='64k' defaultAction='XXXXdestroy'>\n" + " <action do='send' ifPriority='7'/>\n" + " </onStatus>\n" + "</msgDispatch>\n"; ConfigurationParser parser = new ConfigurationParser(glob, xml); fail("testInvalidParse failed, invalid xml should not be parseable"); } catch (XmlBlasterException e) { System.out.println("Success: Expected exception: " + e.toString()); } try { String xml = "<msgDispatch>\n" + " <onStatus oid='_bandwidth.status' content='64k'>\n" + " <action do='send|queue' ifPriority='7'/>\n" + " </onStatus>\n" + "</msgDispatch>\n"; ConfigurationParser parser = new ConfigurationParser(glob, xml); fail("testInvalidParse failed, some combination of actions are invalid"); } catch (XmlBlasterException e) { System.out.println("Success: Expected exception: " + e.toString()); } System.out.println("***ConfigurationParserTest: testInvalidParse [SUCCESS]"); } /** Test empty parse -> default settings */ public void testDefault() { System.out.println("***ConfigurationParserTest: testDefault ..."); try { ConfigurationParser parser = new ConfigurationParser(glob, (String)null); assertEquals("", DispatchAction.SEND, parser.getDefaultDispatchAction().getAction()); assertTrue("", null == parser.getDefaultStatus()); Map confMap = parser.getStatusConfigurationMap(); assertEquals("Illegal map size", 0, confMap.size()); StatusConfiguration conf = parser.getStatusConfiguration((String)null); assertTrue("", null == conf.getOid()); assertTrue("", null == conf.getContent()); assertEquals("", (String)null, conf.getConnectionState()); assertEquals("", true, conf.defaultActionOnly()); assertEquals("", DispatchAction.SEND, conf.getDefaultDispatchAction().getAction()); for (int i=0; i<=9; i++) { DispatchAction action = conf.getDispatchAction(PriorityEnum.toPriorityEnum(i)); assertEquals("Wrong action string", "send", action.getAction()); assertEquals("Wrong boolean action", true, action.doSend()); assertEquals("Wrong boolean action", false, action.doQueue()); assertEquals("Wrong boolean action", false, action.doDestroy()); assertEquals("Wrong boolean action", false, action.doNotifySender()); } } catch (XmlBlasterException e) { fail("testDefault failed: " + e.toString()); } System.out.println("***ConfigurationParserTest: testDefault [SUCCESS]"); } /** * <pre> * java org.xmlBlaster.test.dispatch.ConfigurationParserTest * </pre> */ public static void main(String args[]) { try { ConfigurationParserTest testSub = new ConfigurationParserTest("ConfigurationParserTest"); testSub.setUp(); testSub.testDefault(); testSub.testParse(); testSub.testInvalidParse(); testSub.tearDown(); } catch (Throwable e) { e.printStackTrace(); System.err.println("ERROR: " + e.toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -