[logback-dev] svn commit: r1156 - in logback/trunk/logback-core/src/test: input/joran java/ch/qos/logback/core/joran java/ch/qos/logback/core/joran/action
noreply.seb at qos.ch
noreply.seb at qos.ch
Thu Jan 4 16:13:08 CET 2007
Author: seb
Date: Thu Jan 4 16:13:08 2007
New Revision: 1156
Added:
logback/trunk/logback-core/src/test/input/joran/propertyActionTest.properties
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/DummyAttributes.java
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PackageTest.java
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PropertyActionTest.java
Modified:
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/PackageTest.java
Log:
Added unit tests for PropertyAction class
Added: logback/trunk/logback-core/src/test/input/joran/propertyActionTest.properties
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/test/input/joran/propertyActionTest.properties Thu Jan 4 16:13:08 2007
@@ -0,0 +1,2 @@
+v1=tata
+v2=toto
\ No newline at end of file
Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/PackageTest.java
==============================================================================
--- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/PackageTest.java (original)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/PackageTest.java Thu Jan 4 16:13:08 2007
@@ -19,6 +19,7 @@
TestSuite suite = new TestSuite();
suite.addTestSuite(SkippingInInterpreterTest.class);
suite.addTestSuite(TrivialcConfiguratorTest.class);
+ suite.addTest(ch.qos.logback.core.joran.action.PackageTest.suite());
suite.addTest(ch.qos.logback.core.joran.event.PackageTest.suite());
suite.addTest(ch.qos.logback.core.joran.spi.PackageTest.suite());
suite.addTest(ch.qos.logback.core.joran.replay.PackageTest.suite());
Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/DummyAttributes.java
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/DummyAttributes.java Thu Jan 4 16:13:08 2007
@@ -0,0 +1,63 @@
+package ch.qos.logback.core.joran.action;
+
+import java.util.HashMap;
+
+import org.xml.sax.Attributes;
+
+public class DummyAttributes implements Attributes {
+
+ HashMap<String, String> atts = new HashMap<String, String>();
+
+ public int getIndex(String qName) {
+ return 0;
+ }
+
+ public int getIndex(String uri, String localName) {
+ return 0;
+ }
+
+ public int getLength() {
+ return 0;
+ }
+
+ public String getLocalName(int index) {
+ return null;
+ }
+
+ public String getQName(int index) {
+ return null;
+ }
+
+ public String getType(int index) {
+ return null;
+ }
+
+ public String getType(String qName) {
+ return null;
+ }
+
+ public String getType(String uri, String localName) {
+ return null;
+ }
+
+ public String getURI(int index) {
+ return null;
+ }
+
+ public String getValue(int index) {
+ return null;
+ }
+
+ public String getValue(String qName) {
+ return atts.get(qName);
+ }
+
+ public void setValue(String key, String value) {
+ atts.put(key, value);
+ }
+
+ public String getValue(String uri, String localName) {
+ return null;
+ }
+
+}
Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PackageTest.java
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PackageTest.java Thu Jan 4 16:13:08 2007
@@ -0,0 +1,23 @@
+/**
+ * Logback: the generic, reliable, fast and flexible logging framework for Java.
+ *
+ * Copyright (C) 2000-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.action;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class PackageTest extends TestCase {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite();
+ suite.addTestSuite(PropertyActionTest.class);
+ return suite;
+ }
+}
Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PropertyActionTest.java
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/joran/action/PropertyActionTest.java Thu Jan 4 16:13:08 2007
@@ -0,0 +1,101 @@
+package ch.qos.logback.core.joran.action;
+
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+import ch.qos.logback.core.Context;
+import ch.qos.logback.core.ContextBase;
+import ch.qos.logback.core.joran.spi.InterpretationContext;
+import ch.qos.logback.core.status.ErrorStatus;
+import ch.qos.logback.core.util.Constants;
+import ch.qos.logback.core.util.StatusPrinter;
+
+public class PropertyActionTest extends TestCase {
+
+ Context context;
+ InterpretationContext ec;
+ SubstitutionPropertyAction spAction;
+ DummyAttributes atts = new DummyAttributes();
+
+ @Override
+ protected void setUp() throws Exception {
+ context = new ContextBase();
+ ec = new InterpretationContext(context, null);
+ spAction = new SubstitutionPropertyAction();
+ spAction.setContext(context);
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ context = null;
+ spAction = null;
+ atts = null;
+ super.tearDown();
+ }
+
+ public void testBegin() {
+ atts.setValue("name", "v1");
+ atts.setValue("value", "work");
+ spAction.begin(ec, null, atts);
+ assertEquals("work", ec.getSubstitutionProperty("v1"));
+ }
+
+ public void testBeginNoValue() {
+ atts.setValue("name", "v1");
+ spAction.begin(ec, null, atts);
+ assertEquals(1, context.getStatusManager().getCount());
+ assertTrue(checkError());
+ }
+
+ public void testBeginNoName() {
+ atts.setValue("value", "v1");
+ spAction.begin(ec, null, atts);
+ assertEquals(1, context.getStatusManager().getCount());
+ assertTrue(checkError());
+ }
+
+ public void testBeginNothing() {
+ spAction.begin(ec, null, atts);
+ assertEquals(1, context.getStatusManager().getCount());
+ assertTrue(checkError());
+ }
+
+ public void testFileNotLoaded() {
+ atts.setValue("file", "toto");
+ atts.setValue("value", "work");
+ spAction.begin(ec, null, atts);
+ assertEquals(1, context.getStatusManager().getCount());
+ assertTrue(checkError());
+ }
+
+ public void testLoadFile() {
+ atts.setValue("file", Constants.TEST_DIR_PREFIX + "input/joran/propertyActionTest.properties");
+ spAction.begin(ec, null, atts);
+ assertEquals("tata", ec.getSubstitutionProperty("v1"));
+ assertEquals("toto", ec.getSubstitutionProperty("v2"));
+ }
+
+ public void testLoadNotPossible() {
+ atts.setValue("file", "toto");
+ spAction.begin(ec, null, atts);
+ StatusPrinter.print(context);
+ assertEquals(2, context.getStatusManager().getCount());
+ assertTrue(checkFileErrors());
+ }
+
+ private boolean checkError() {
+ Iterator it = context.getStatusManager().iterator();
+ ErrorStatus es = (ErrorStatus)it.next();
+ return PropertyAction.INVALID_ATTRIBUTES.equals(es.getMessage());
+ }
+
+ private boolean checkFileErrors() {
+ Iterator it = context.getStatusManager().iterator();
+ ErrorStatus es1 = (ErrorStatus)it.next();
+ boolean result1 = "Could not read properties file [toto].".equals(es1.getMessage());
+ ErrorStatus es2 = (ErrorStatus)it.next();
+ boolean result2 = "Ignoring configuration file [toto].".equals(es2.getMessage());
+ return result1 && result2;
+ }
+}
More information about the logback-dev
mailing list