Author: oheger Date: Sat Jul 21 08:26:19 2007 New Revision: 558330 URL: http://svn.apache.org/viewvc?view=rev&rev=558330 Log: Minor refactoring of the unit tests that check error listeners: a generic mock event listener class was extracted.
Added: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java (with props) Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDatabaseConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java Added: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java?view=auto&rev=558330 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java (added) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java Sat Jul 21 08:26:19 2007 @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.configuration; + +import junit.framework.Assert; + +import org.apache.commons.configuration.event.ConfigurationErrorEvent; +import org.apache.commons.configuration.event.ConfigurationErrorListener; + +/** + * An implementation of the <code>ConfigurationErrorListener</code> interface + * that can be used in unit tests. This implementation just records received + * events and allows to test whether expected errors occurred. + * + * @author Oliver Heger + * @version $Id$ + */ +public class ConfigurationErrorListenerImpl implements + ConfigurationErrorListener +{ + /** Stores the last received error event. */ + private ConfigurationErrorEvent event; + + /** Stores the number of calls to configurationError(). */ + private int errorCount; + + /** + * An error event is received. Updates the internal counter and stores the + * event. + * + * @param event the error event + */ + public void configurationError(ConfigurationErrorEvent event) + { + this.event = event; + errorCount++; + } + + /** + * Returns the last received error event. + * + * @return the last error event (may be <b>null</b>) + */ + public ConfigurationErrorEvent getLastEvent() + { + return event; + } + + /** + * Returns the number of received error events. + * + * @return the number of error events + */ + public int getErrorCount() + { + return errorCount; + } + + /** + * Checks whether no error event was received. + */ + public void verify() + { + Assert.assertEquals("Error events received", 0, errorCount); + } + + /** + * Checks whether an expected error event was received. This is a + * convenience method for checking whether exactly one event of a certain + * type was received. + * + * @param type the type of the event + * @param propName the name of the property + * @param propValue the value of the property + */ + public void verify(int type, String propName, Object propValue) + { + Assert.assertEquals("Wrong number of error events", 1, errorCount); + Assert.assertEquals("Wrong event type", type, event.getType()); + Assert.assertTrue("Wrong property name", (propName == null) ? event + .getPropertyName() == null : propName.equals(event + .getPropertyName())); + Assert.assertTrue("Wrong property value", (propValue == null) ? event + .getPropertyValue() == null : propValue.equals(event + .getPropertyValue())); + } +} Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/ConfigurationErrorListenerImpl.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDatabaseConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDatabaseConfiguration.java?view=diff&rev=558330&r1=558329&r2=558330 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDatabaseConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDatabaseConfiguration.java Sat Jul 21 08:26:19 2007 @@ -27,7 +27,6 @@ import junit.framework.TestCase; -import org.apache.commons.configuration.event.ConfigurationErrorEvent; import org.apache.commons.configuration.event.ConfigurationErrorListener; import org.apache.commons.configuration.test.HsqlDB; import org.apache.commons.dbcp.BasicDataSource; @@ -74,7 +73,7 @@ private DataSource datasource; /** An error listener for testing whether internal errors occurred.*/ - private TestErrorListener listener; + private ConfigurationErrorListenerImpl listener; protected void setUp() throws Exception { @@ -121,7 +120,7 @@ // if an error listener is defined, we check whether an error occurred if(listener != null) { - assertEquals("An internal error occurred", 0, listener.errorCount); + assertEquals("An internal error occurred", 0, listener.getErrorCount()); } super.tearDown(); } @@ -156,7 +155,7 @@ { // remove log listener to avoid exception longs config.removeErrorListener((ConfigurationErrorListener) config.getErrorListeners().iterator().next()); - listener = new TestErrorListener(); + listener = new ConfigurationErrorListenerImpl(); config.addErrorListener(listener); config.failOnConnect = true; } @@ -184,16 +183,12 @@ */ private void checkErrorListener(int type, String key, Object value) { - assertEquals("Wrong number of errors", 1, listener.errorCount); - assertEquals("Wrong event type", type, listener.event.getType()); - assertTrue("Wrong event source", listener.event.getSource() instanceof DatabaseConfiguration); - assertTrue("Wrong exception", listener.event.getCause() instanceof SQLException); - assertTrue("Wrong property key", (key == null) ? listener.event - .getPropertyName() == null : key.equals(listener.event - .getPropertyName())); - assertTrue("Wrong property value", (value == null) ? listener.event - .getPropertyValue() == null : value.equals(listener.event - .getPropertyValue())); + listener.verify(type, key, value); + assertTrue( + "Wrong event source", + listener.getLastEvent().getSource() instanceof DatabaseConfiguration); + assertTrue("Wrong exception", + listener.getLastEvent().getCause() instanceof SQLException); listener = null; // mark as checked } @@ -483,25 +478,6 @@ throw new SQLException("Simulated DB error"); } return super.getConnection(); - } - } - - /** - * A test error listener implementation that is used for finding out whether - * error events are correctly triggered. - */ - static class TestErrorListener implements ConfigurationErrorListener - { - /** Stores the number of calls. */ - int errorCount; - - /** Stores the last error event. */ - ConfigurationErrorEvent event; - - public void configurationError(ConfigurationErrorEvent event) - { - errorCount++; - this.event = event; } } } Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java?view=diff&rev=558330&r1=558329&r2=558330 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java Sat Jul 21 08:26:19 2007 @@ -26,8 +26,6 @@ import java.io.IOException; import java.io.PrintWriter; -import org.apache.commons.configuration.event.ConfigurationErrorEvent; -import org.apache.commons.configuration.event.ConfigurationErrorListener; import org.apache.commons.configuration.reloading.FileAlwaysReloadingStrategy; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; @@ -578,20 +576,7 @@ */ public void testReloadError() throws ConfigurationException { - class TestConfigurationErrorListener implements - ConfigurationErrorListener - { - ConfigurationErrorEvent event; - - int errorCount; - - public void configurationError(ConfigurationErrorEvent event) - { - this.event = event; - errorCount++; - } - }; - TestConfigurationErrorListener l = new TestConfigurationErrorListener(); + ConfigurationErrorListenerImpl l = new ConfigurationErrorListenerImpl(); PropertiesConfiguration config = new PropertiesConfiguration( RESOURCE_NAME); config.clearErrorListeners(); @@ -600,12 +585,8 @@ config.getString("test"); config.setFileName("Not existing file"); config.getString("test"); - assertEquals("Wrong number of error events", 1, l.errorCount); - assertEquals("Wrong error type", - AbstractFileConfiguration.EVENT_RELOAD, l.event.getType()); - assertNull("Wrong property name", l.event.getPropertyName()); - assertNull("Wrong property value", l.event.getPropertyValue()); - assertNotNull("Exception is not set", l.event.getCause()); + l.verify(AbstractFileConfiguration.EVENT_RELOAD, null, null); + assertNotNull("Exception is not set", l.getLastEvent().getCause()); } /** Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java?view=diff&rev=558330&r1=558329&r2=558330 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java Sat Jul 21 08:26:19 2007 @@ -19,13 +19,12 @@ import java.util.Hashtable; -import junit.framework.TestCase; - import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; -import org.apache.commons.configuration.event.ConfigurationErrorEvent; +import junit.framework.TestCase; + import org.apache.commons.configuration.event.ConfigurationErrorListener; /** @@ -41,7 +40,7 @@ private NonStringTestHolder nonStringTestHolder; /** A test error listener for counting internal errors.*/ - private TestErrorListener listener; + private ConfigurationErrorListenerImpl listener; public void setUp() throws Exception { @@ -52,7 +51,7 @@ nonStringTestHolder = new NonStringTestHolder(); nonStringTestHolder.setConfiguration(conf); - listener = new TestErrorListener(); + listener = new ConfigurationErrorListenerImpl(); conf.addErrorListener(listener); } @@ -204,6 +203,8 @@ private void checkErrorListener(int type, String propName, Object propValue) { listener.verify(type, propName, propValue); + assertTrue("Wrong exception class", + listener.getLastEvent().getCause() instanceof NamingException); listener = null; } @@ -299,54 +300,6 @@ throw new NamingException("Simulated JNDI exception!"); } return super.getBaseContext(); - } - } - - /** - * A test listener implementation that is used for counting and testing - * internal errors. - */ - static class TestErrorListener implements ConfigurationErrorListener - { - /** Stores the last received error event. */ - ConfigurationErrorEvent event; - - /** Stores the number of calls. */ - int errorCount; - - public void configurationError(ConfigurationErrorEvent event) - { - this.event = event; - errorCount++; - } - - /** - * Checks whether no error event was received. - */ - public void verify() - { - assertEquals("Error events received", 0, errorCount); - } - - /** - * Checks whether an expected error event was received. - * - * @param type the type of the event - * @param propName the name of the property - * @param propValue the value of the property - */ - public void verify(int type, String propName, Object propValue) - { - assertEquals("Wrong number of error events", 1, errorCount); - assertEquals("Wrong event type", type, event.getType()); - assertTrue("Wrong property name", (propName == null) ? event - .getPropertyName() == null : propName.equals(event - .getPropertyName())); - assertTrue("Wrong property value", (propValue == null) ? event - .getPropertyValue() == null : propValue.equals(event - .getPropertyValue())); - assertTrue("Wrong exception class", - event.getCause() instanceof NamingException); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]