svn commit: r674 - in logback/trunk/logback-core/src/test: input/joran java/ch/qos/logback/core/joran

Author: ceki Date: Fri Oct 13 17:18:01 2006 New Revision: 674 Added: logback/trunk/logback-core/src/test/input/joran/event1.xml logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/EventInterpreterTest.java Log: ongoing work on replaying Joran Added: logback/trunk/logback-core/src/test/input/joran/event1.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/test/input/joran/event1.xml Fri Oct 13 17:18:01 2006 @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE test> + +<test> + + <!-- this action throws an exception in the Action.begin method --> + <badBegin> + <touch/> + <touch/> + </badBegin> + + <hello name="John Doe">XXX</hello> + +</test> \ No newline at end of file Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/EventInterpreterTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/EventInterpreterTest.java Fri Oct 13 17:18:01 2006 @@ -0,0 +1,85 @@ +/** + * LOGBack: the generic, reliable, fast and flexible logging framework. + * + * Copyright (C) 1999-2006, QOS.ch + * + * This library is free software, you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation. + */ +package ch.qos.logback.core.joran; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import junit.framework.TestCase; +import ch.qos.logback.core.ContextBase; +import ch.qos.logback.core.joran.spi.ExecutionContext; +import ch.qos.logback.core.joran.spi.Interpreter; +import ch.qos.logback.core.joran.spi.RuleStore; +import ch.qos.logback.core.joran.spi.SaxEvent; +import ch.qos.logback.core.joran.spi.SimpleRuleStore; +import ch.qos.logback.core.util.Constants; +import ch.qos.logback.core.util.StatusPrinter; + + +/** + * Test the way Interpreter skips elements in case of exceptions thrown by + * Actions. + * + * @author Ceki Gulcu + */ +public class EventInterpreterTest extends TestCase { + + public EventInterpreterTest(String name) { + super(name); + } + + protected void setUp() throws Exception { + super.setUp(); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + } + + SAXParser createParser() throws Exception { + SAXParserFactory spf = SAXParserFactory.newInstance(); + return spf.newSAXParser(); + } + + /** + * Tests that whenever an action throws an exception, processing of child + * elements is skipped. + * + * @throws Exception + */ + public void test1() throws Exception { + RuleStore rs = new SimpleRuleStore(new ContextBase()); + + Interpreter jp = new Interpreter(rs); + ExecutionContext ec = jp.getExecutionContext(); + ec.setContext(new ContextBase()); + + SAXParser saxParser = createParser(); + saxParser.parse("file:" + Constants.TEST_DIR_PREFIX + "input/joran/event1.xml", jp); + + StatusPrinter.print(ec.getStatusManager()); + for(SaxEvent se : jp.saxEventList) { + System.out.println(se); + } + + } + + +// public static Test suite() { +// TestSuite suite = new TestSuite(); +// //suite.addTest(new SkippingInInterpreterTest("testSkipSiblings2")); +// suite.addTestSuite(SkippingInInterpreterTest.class); +// return suite; +// } + +}
participants (1)
-
noreply.ceki@qos.ch