cvs commit: jakarta-commons/configuration/src/test/org/apache/commons/configuration TestStrictConfigurationComparator.java

2004-06-22 Thread ebourg
ebourg  2004/06/22 02:56:38

  Modified:configuration/src/java/org/apache/commons/configuration
ConfigurationComparator.java
StrictConfigurationComparator.java
   configuration/src/test/org/apache/commons/configuration
TestStrictConfigurationComparator.java
  Log:
  Better test coverage for StrictConfigurationComparator
  
  Revision  ChangesPath
  1.3   +6 -2  
jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationComparator.java
  
  Index: ConfigurationComparator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationComparator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ConfigurationComparator.java  27 Feb 2004 17:41:35 -  1.2
  +++ ConfigurationComparator.java  22 Jun 2004 09:56:38 -  1.3
  @@ -1,5 +1,3 @@
  -package org.apache.commons.configuration;
  -
   /*
* Copyright 2001-2004 The Apache Software Foundation.
*
  @@ -16,9 +14,15 @@
* limitations under the License.
*/
   
  +package org.apache.commons.configuration;
  +
   /**
* Comparator for configurations interface.
*
  + * @since 1.0
  + * 
  + * @author mailto:[EMAIL PROTECTED]">Herve Quiroz
  + * @version $Revision$, $Date$
*/
   public interface ConfigurationComparator
   {
  
  
  
  1.3   +19 -12
jakarta-commons/configuration/src/java/org/apache/commons/configuration/StrictConfigurationComparator.java
  
  Index: StrictConfigurationComparator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/StrictConfigurationComparator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StrictConfigurationComparator.java27 Feb 2004 17:41:35 -  1.2
  +++ StrictConfigurationComparator.java22 Jun 2004 09:56:38 -  1.3
  @@ -1,5 +1,3 @@
  -package org.apache.commons.configuration;
  -
   /*
* Copyright 2001-2004 The Apache Software Foundation.
*
  @@ -16,11 +14,18 @@
* limitations under the License.
*/
   
  +package org.apache.commons.configuration;
  +
   import java.util.Iterator;
   
   /**
* Strict comparator for configurations.
*
  + * @since 1.0
  + *
  + * @author mailto:[EMAIL PROTECTED]">Herve Quiroz
  + * @author mailto:[EMAIL PROTECTED]">Yoav Shapira
  + * @version $Revision$, $Date$
*/
   public class StrictConfigurationComparator implements ConfigurationComparator
   {
  @@ -42,33 +47,35 @@
*/
   public boolean compare(Configuration a, Configuration b)
   {
  -if ((a == null) && (b == null))
  +if (a == null && b == null)
   {
   return true;
   }
  -else if (a == null)
  -{
  -return false;
  -}
  -else if (b == null)
  +else if (a == null || b == null)
   {
   return false;
   }
   
  -for (Iterator i = a.getKeys(); i.hasNext();)
  +for (Iterator keys = a.getKeys(); keys.hasNext();)
   {
  -String key = (String) i.next();
  +String key = (String) keys.next();
   Object value = a.getProperty(key);
   if (!value.equals(b.getProperty(key)))
  +{
   return false;
  +}
   }
  -for (Iterator i = b.getKeys(); i.hasNext();)
  +
  +for (Iterator keys = b.getKeys(); keys.hasNext();)
   {
  -String key = (String) i.next();
  +String key = (String) keys.next();
   Object value = b.getProperty(key);
   if (!value.equals(a.getProperty(key)))
  +{
   return false;
  +}
   }
  +
   return true;
   }
   }
  
  
  
  1.4   +11 -4 
jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestStrictConfigurationComparator.java
  
  Index: TestStrictConfigurationComparator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestStrictConfigurationComparator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestStrictConfigurationComparator.java2 Jun 2004 17:18:01 -   1.3
  +++ TestStrictConfigurationComparator.java22 Jun 2004 09:56:38 -  1.4
  @@ -1,5 +1,3 @@
  -package org.apache.commons.configuration;
  -
   /*
* Copyright 2001-2004 The Apache Software Foundation.
*
  @@ -16,19 +14,21 @@
* limitations under the License.
*/
   
  +package org.apache.commons.configuration;
  +
   import junit.fra

cvs commit: jakarta-commons/configuration/src/test/org/apache/commons/configuration TestStrictConfigurationComparator.java

2004-02-14 Thread epugh
epugh   2004/02/14 11:10:42

  Added:   configuration/src/java/org/apache/commons/configuration
StrictConfigurationComparator.java
ConfigurationComparator.java
   configuration/src/test/org/apache/commons/configuration
TestStrictConfigurationComparator.java
  Log:
  ConfigurationComparator from Bugzilla bug 16504 from back in january 2003!
  
  Revision  ChangesPath
  1.1  
jakarta-commons/configuration/src/java/org/apache/commons/configuration/StrictConfigurationComparator.java
  
  Index: StrictConfigurationComparator.java
  ===
  package org.apache.commons.configuration;
  
  /* 
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   */
  
  import java.util.Iterator;
  
  /**
   * Strict comparator for configurations.
   *
   * @author mailto:[EMAIL PROTECTED]">Herve Quiroz
   * @author mailto:[EMAIL PROTECTED]">Yoav Shapira
   */
  public class StrictConfigurationComparator implements ConfigurationComparator
  {
  /**
   * Create a new strict comparator.
   */
  public StrictConfigurationComparator()
  {
  }
  
  /**
   * Compare two configuration objects.
   *
   * @param a the first configuration
   * @param b the second configuration
   * @return true if keys from a are found in b and keys from b are
   * found in a and for each key in a, the corresponding value
   * is the sale in for the same key in b
   */
  public boolean compare(Configuration a, Configuration b)
  {
  if ((a == null) && (b == null))
  {
  return true;
  }
  else if (a == null)
  {
  return false;
  }
  else if (b == null)
  {
  return false;
  }
  
  for (Iterator i = a.getKeys(); i.hasNext();)
  {
  String key = (String) i.next();
  Object value = a.getProperty(key);
  if (!value.equals(b.getProperty(key)))
  return false;
  }
  for (Iterator i = b.getKeys(); i.hasNext();)
  {
  String key = (String) i.next();
  Ob