
Author: ceki Date: Wed Mar 5 14:31:06 2008 New Revision: 1633 Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Cake.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/ImplicitActionTest.java - copied, changed from r1632, /logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/SimplePropertyIATest.java Removed: logback/trunk/logback-core/src/test/input/joran/simplePropertyIA1.xml logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/SimplePropertyIATest.java Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Fruit.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/PackageTest.java Log: - added a new test, checking the configuration of nested collection of complex objects Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Cake.java ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Cake.java Wed Mar 5 14:31:06 2008 @@ -0,0 +1,22 @@ +package ch.qos.logback.core.joran.implicitAction; + +public class Cake { + + String type; + int code; + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + public int getCode() { + return code; + } + public void setCode(int code) { + this.code = code; + } + + +} Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Fruit.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Fruit.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/Fruit.java Wed Mar 5 14:31:06 2008 @@ -7,6 +7,7 @@ String name; List<String> textList = new ArrayList<String>(); + List<Cake> cakeList = new ArrayList<Cake>(); public Fruit() { } @@ -23,4 +24,7 @@ textList.add(s); } + public void addCake(Cake c) { + cakeList.add(c); + } } Copied: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/ImplicitActionTest.java (from r1632, /logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/SimplePropertyIATest.java) ============================================================================== --- /logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/SimplePropertyIATest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/ImplicitActionTest.java Wed Mar 5 14:31:06 2008 @@ -1,42 +1,44 @@ package ch.qos.logback.core.joran.implicitAction; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import java.util.HashMap; import java.util.List; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; + import ch.qos.logback.core.joran.SimpleConfigurator; import ch.qos.logback.core.joran.action.Action; import ch.qos.logback.core.joran.spi.Pattern; import ch.qos.logback.core.util.Constants; import ch.qos.logback.core.util.StatusPrinter; -public class SimplePropertyIATest extends TestCase { +public class ImplicitActionTest { + static final String IMPLCIT_DIR = Constants.TEST_DIR_PREFIX +"input/joran/implicitAction/"; + FruitContext fruitContext = new FruitContext(); + SimpleConfigurator simpleConfigurator; - public SimplePropertyIATest(String arg0) { - super(arg0); + public ImplicitActionTest() { } - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { fruitContext.setName("fruits"); + HashMap<Pattern, Action> rulesMap = new HashMap<Pattern, Action>(); + rulesMap.put(new Pattern("/context/"), new FruitContextAction()); + simpleConfigurator = new SimpleConfigurator(rulesMap); + simpleConfigurator.setContext(fruitContext); } - protected void tearDown() throws Exception { - super.tearDown(); - } - - public void test() throws Exception { + @Test + public void nested() throws Exception { try { - HashMap<Pattern, Action> rulesMap = new HashMap<Pattern, Action>(); - rulesMap.put(new Pattern("/context/"), new FruitContextAction()); - SimpleConfigurator simpleConfigurator = new SimpleConfigurator(rulesMap); - - simpleConfigurator.setContext(fruitContext); - - simpleConfigurator.doConfigure(Constants.TEST_DIR_PREFIX + "input/joran/" - + "simplePropertyIA1.xml"); + simpleConfigurator.doConfigure(IMPLCIT_DIR + "nestedComponent.xml"); + List<Fruit> fList = fruitContext.getFruitList(); assertNotNull(fList); assertEquals(1, fList.size()); @@ -46,11 +48,35 @@ assertEquals(2, f0.textList.size()); assertEquals("hello", f0.textList.get(0)); assertEquals("world", f0.textList.get(1)); + } catch (Exception je) { StatusPrinter.print(fruitContext); throw je; } } + @Test + public void nestedCollection() throws Exception { + try { + simpleConfigurator.doConfigure(IMPLCIT_DIR + "nestedComponentCollection.xml"); + + List<Fruit> fList = fruitContext.getFruitList(); + assertNotNull(fList); + assertEquals(1, fList.size()); + + Fruit f0 = fList.get(0); + assertEquals(2, f0.cakeList.size()); + + Cake cakeA = f0.cakeList.get(0); + assertEquals("A", cakeA.getType()); + + Cake cakeB = f0.cakeList.get(1); + assertEquals("B", cakeB.getType()); + + } catch (Exception je) { + StatusPrinter.print(fruitContext); + throw je; + } + } } Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/PackageTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/PackageTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/implicitAction/PackageTest.java Wed Mar 5 14:31:06 2008 @@ -9,6 +9,7 @@ */ package ch.qos.logback.core.joran.implicitAction; +import junit.framework.JUnit4TestAdapter; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -17,7 +18,7 @@ public static Test suite() { TestSuite suite = new TestSuite(); - suite.addTestSuite(SimplePropertyIATest.class); + suite.addTest(new JUnit4TestAdapter(ImplicitActionTest.class)); return suite; } }