add BooleanComparator and tests
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130925 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c97200ea71
commit
69c423e40f
|
@ -0,0 +1,216 @@
|
|||
/*
|
||||
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/comparators/BooleanComparator.java,v 1.1 2003/01/10 00:21:08 rwaldhoff Exp $
|
||||
* ====================================================================
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
* Copyright (c) 2003 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 acknowledgment:
|
||||
* "This product includes software developed by the
|
||||
* Apache Software Foundation (http://www.apache.org/)."
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The names "Apache" and "Apache Software Foundation" and
|
||||
* "Apache Commons" must not be used to endorse or promote products
|
||||
* derived from this software without prior written permission. For
|
||||
* written permission, please contact apache@apache.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "Apache",
|
||||
* "Apache Turbine", nor may "Apache" appear in their name, without
|
||||
* prior written permission of the Apache Software Foundation.
|
||||
*
|
||||
* 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
|
||||
* <http://www.apache.org/>.
|
||||
*/
|
||||
package org.apache.commons.collections.comparators;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* A {@link Comparator} for {@link Boolean}s.
|
||||
*
|
||||
* @see #getTrueFirstComparator
|
||||
* @see #getFalseFirstComparator
|
||||
* @see #getBooleanComparator
|
||||
*
|
||||
* @since Commons Collections 2.2
|
||||
*
|
||||
* @version $Revision: 1.1 $ $Date: 2003/01/10 00:21:08 $
|
||||
*
|
||||
* @author Rodney Waldhoff
|
||||
*/
|
||||
public final class BooleanComparator implements Comparator, Serializable {
|
||||
|
||||
/**
|
||||
* Creates a <code>BooleanComparator</code>
|
||||
* that sorts <code>false</code> values before
|
||||
* <code>true</code> values.
|
||||
*
|
||||
* Equivalent to {@link BooleanComparator(boolean) BooleanComparator(false)}.
|
||||
*/
|
||||
public BooleanComparator() {
|
||||
this(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>BooleanComparator</code>
|
||||
* that sorts <code><i>trueFirst</i></code> values before
|
||||
* <code>!<i>trueFirst</i></code> values.
|
||||
*
|
||||
* @param trueFirst when <code>true</code>, sort
|
||||
* <code>true</code> {@link Boolean}s before
|
||||
* <code>false</code> {@link Boolean}s.
|
||||
*/
|
||||
public BooleanComparator(boolean trueFirst) {
|
||||
this.trueFirst = trueFirst;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two arbitrary Objects. When both arguments
|
||||
* are {@link Boolean}, this method is equivalent to
|
||||
* {@link #compare(Boolean,Boolean) compare((Boolean)<i>o1</i>,(Boolean)<i>o2</i>)}.
|
||||
* When either argument is not a {@link Boolean}, this methods throws
|
||||
* a {@link ClassCastException}.
|
||||
*
|
||||
* @throws ClassCastException when either argument is not
|
||||
* a {@link Boolean}
|
||||
*/
|
||||
public int compare(Object o1, Object o2) {
|
||||
return compare((Boolean)o1,(Boolean)o2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two non-<code>null</code> {@link Boolean}s
|
||||
* according to the value of {@link #sortsTrueFirst}.
|
||||
*
|
||||
* @throws NullPointerException when either argument <code>null</code>
|
||||
*/
|
||||
public int compare(Boolean b1, Boolean b2) {
|
||||
boolean v1 = b1.booleanValue();
|
||||
boolean v2 = b2.booleanValue();
|
||||
|
||||
return (v1 ^ v2) ? ( (v1 ^ trueFirst) ? 1 : -1 ) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implement a hash code for this comparator that is consistent with
|
||||
* {@link #equals equals}.
|
||||
*
|
||||
* @return a hash code for this comparator.
|
||||
*/
|
||||
public int hashCode() {
|
||||
int hash = "BooleanComparator".hashCode();
|
||||
return trueFirst ? -1 * hash : hash;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> iff <i>that</i> Object is
|
||||
* is a {@link Comparator} whose ordering is known to be
|
||||
* equivalent to mine.
|
||||
* <p>
|
||||
* This implementation returns <code>true</code>
|
||||
* iff <code><i>that</i></code> is a {@link BooleanComparator}
|
||||
* whose {@link #sortsTrueFirst} value is equal to mine.
|
||||
*/
|
||||
public boolean equals(Object that) {
|
||||
return (this == that) ||
|
||||
((that instanceof BooleanComparator) &&
|
||||
(this.trueFirst == ((BooleanComparator)that).trueFirst));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> iff
|
||||
* I sort <code>true</code> values before
|
||||
* <code>false</code> values. In other words,
|
||||
* returns <code>true</code> iff
|
||||
* {@link #compare(Boolean,Boolean) compare(Boolean.TRUE,Boolean.FALSE)}
|
||||
* returns a positive value.
|
||||
*/
|
||||
public boolean sortsTrueFirst() {
|
||||
return trueFirst;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a BooleanComparator instance that sorts
|
||||
* <code>true</code> values before <code>false</code> values.
|
||||
* <p />
|
||||
* Clients are encouraged to use the value returned from
|
||||
* this method instead of constructing a new instance
|
||||
* to reduce allocation and garbage collection overhead when
|
||||
* multiple BooleanComparators may be used in the same
|
||||
* virtual machine.
|
||||
*/
|
||||
public static BooleanComparator getTrueFirstComparator() {
|
||||
return TRUE_FIRST;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a BooleanComparator instance that sorts
|
||||
* <code>false</code> values before <code>true</code> values.
|
||||
* <p />
|
||||
* Clients are encouraged to use the value returned from
|
||||
* this method instead of constructing a new instance
|
||||
* to reduce allocation and garbage collection overhead when
|
||||
* multiple BooleanComparators may be used in the same
|
||||
* virtual machine.
|
||||
*/
|
||||
public static BooleanComparator getFalseFirstComparator() {
|
||||
return FALSE_FIRST;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a BooleanComparator instance that sorts
|
||||
* <code><i>trueFirst</i></code> values before
|
||||
* <code>!<i>trueFirst</i></code> values.
|
||||
* <p />
|
||||
* Clients are encouraged to use the value returned from
|
||||
* this method instead of constructing a new instance
|
||||
* to reduce allocation and garbage collection overhead when
|
||||
* multiple BooleanComparators may be used in the same
|
||||
* virtual machine.
|
||||
*/
|
||||
public static BooleanComparator getBooleanComparator(boolean trueFirst) {
|
||||
return trueFirst ? TRUE_FIRST : FALSE_FIRST;
|
||||
}
|
||||
|
||||
/** <code>true</code> iff <code>true</code> values sort before <code>false</code> values. */
|
||||
private boolean trueFirst = false;
|
||||
|
||||
/** My static "true first" reference. */
|
||||
private static final BooleanComparator TRUE_FIRST = new BooleanComparator(true);
|
||||
|
||||
/** My static "false first" reference. */
|
||||
private static final BooleanComparator FALSE_FIRST = new BooleanComparator(false);
|
||||
}
|
|
@ -1,13 +1,10 @@
|
|||
/*
|
||||
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/comparators/TestAll.java,v 1.1 2002/10/12 22:35:10 scolebourne Exp $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2002/10/12 22:35:10 $
|
||||
*
|
||||
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/comparators/TestAll.java,v 1.2 2003/01/10 00:21:08 rwaldhoff Exp $
|
||||
* ====================================================================
|
||||
*
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
|
||||
* Copyright (c) 1999-2003 The Apache Software Foundation. All rights
|
||||
* reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -67,7 +64,7 @@ import junit.framework.TestSuite;
|
|||
/**
|
||||
* Entry point for all Comparator Collections tests.
|
||||
* @author Stephen Colebourne
|
||||
* @version $Id: TestAll.java,v 1.1 2002/10/12 22:35:10 scolebourne Exp $
|
||||
* @version $Revision: 1.2 $ $Date: 2003/01/10 00:21:08 $
|
||||
*/
|
||||
public class TestAll extends TestCase {
|
||||
public TestAll(String testName) {
|
||||
|
@ -76,6 +73,7 @@ public class TestAll extends TestCase {
|
|||
|
||||
public static Test suite() {
|
||||
TestSuite suite = new TestSuite();
|
||||
suite.addTest(TestBooleanComparator.suite());
|
||||
suite.addTest(TestComparableComparator.suite());
|
||||
suite.addTest(TestComparatorChain.suite());
|
||||
suite.addTest(TestNullComparator.suite());
|
||||
|
|
|
@ -0,0 +1,273 @@
|
|||
/*
|
||||
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/comparators/TestBooleanComparator.java,v 1.1 2003/01/10 00:21:08 rwaldhoff Exp $
|
||||
* ====================================================================
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
* Copyright (c) 2003 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 acknowledgment:
|
||||
* "This product includes software developed by the
|
||||
* Apache Software Foundation (http://www.apache.org/)."
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The names "Apache" and "Apache Software Foundation" and
|
||||
* "Apache Commons" must not be used to endorse or promote products
|
||||
* derived from this software without prior written permission. For
|
||||
* written permission, please contact apache@apache.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "Apache",
|
||||
* "Apache Turbine", nor may "Apache" appear in their name, without
|
||||
* prior written permission of the Apache Software Foundation.
|
||||
*
|
||||
* 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
|
||||
* <http://www.apache.org/>.
|
||||
*/
|
||||
package org.apache.commons.collections.comparators;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
/**
|
||||
* Tests for {@link BooleanComparator}.
|
||||
*
|
||||
* @since Commons Collections 2.2
|
||||
*
|
||||
* @version $Revision: 1.1 $ $Date: 2003/01/10 00:21:08 $
|
||||
*
|
||||
* @author Rodney Waldhoff
|
||||
*/
|
||||
public class TestBooleanComparator extends TestComparator {
|
||||
|
||||
// conventional
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
public TestBooleanComparator(String testName) {
|
||||
super(testName);
|
||||
}
|
||||
|
||||
public static Test suite() {
|
||||
return new TestSuite(TestBooleanComparator.class);
|
||||
}
|
||||
|
||||
// collections testing framework
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
public Comparator makeComparator() {
|
||||
return new BooleanComparator();
|
||||
}
|
||||
|
||||
public List getComparableObjectsOrdered() {
|
||||
List list = new ArrayList();
|
||||
list.add(new Boolean(false));
|
||||
list.add(Boolean.FALSE);
|
||||
list.add(new Boolean(false));
|
||||
list.add(Boolean.TRUE);
|
||||
list.add(new Boolean(true));
|
||||
list.add(Boolean.TRUE);
|
||||
return list;
|
||||
}
|
||||
|
||||
// tests
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
public void testConstructors() {
|
||||
allTests(false,new BooleanComparator());
|
||||
allTests(false,new BooleanComparator(false));
|
||||
allTests(true,new BooleanComparator(true));
|
||||
}
|
||||
|
||||
public void testStaticFactoryMethods() {
|
||||
allTests(false,BooleanComparator.getFalseFirstComparator());
|
||||
allTests(false,BooleanComparator.getBooleanComparator(false));
|
||||
allTests(true,BooleanComparator.getTrueFirstComparator());
|
||||
allTests(true,BooleanComparator.getBooleanComparator(true));
|
||||
}
|
||||
|
||||
public void testEqualsCompatibleInstance() {
|
||||
assertEquals(new BooleanComparator(),new BooleanComparator(false));
|
||||
assertEquals(new BooleanComparator(false),new BooleanComparator(false));
|
||||
assertEquals(new BooleanComparator(false),BooleanComparator.getFalseFirstComparator());
|
||||
assertSame(BooleanComparator.getFalseFirstComparator(),BooleanComparator.getBooleanComparator(false));
|
||||
|
||||
assertEquals(new BooleanComparator(true),new BooleanComparator(true));
|
||||
assertEquals(new BooleanComparator(true),BooleanComparator.getTrueFirstComparator());
|
||||
assertSame(BooleanComparator.getTrueFirstComparator(),BooleanComparator.getBooleanComparator(true));
|
||||
|
||||
assertTrue(!(new BooleanComparator().equals(new BooleanComparator(true))));
|
||||
assertTrue(!(new BooleanComparator(true).equals(new BooleanComparator(false))));
|
||||
}
|
||||
|
||||
public void testComparatorCompatibility() {
|
||||
// XXX FIX ME XXX
|
||||
// need to a serialized form to cvs
|
||||
// XXX FIX ME XXX
|
||||
}
|
||||
|
||||
// utilities
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
protected void allTests(boolean trueFirst, BooleanComparator comp) {
|
||||
orderIndependentTests(comp);
|
||||
if(trueFirst) {
|
||||
trueFirstTests(comp);
|
||||
} else {
|
||||
falseFirstTests(comp);
|
||||
}
|
||||
}
|
||||
|
||||
protected void trueFirstTests(BooleanComparator comp) {
|
||||
assertNotNull(comp);
|
||||
assertEquals(0,comp.compare(Boolean.TRUE,Boolean.TRUE));
|
||||
assertEquals(0,comp.compare(Boolean.FALSE,Boolean.FALSE));
|
||||
assertTrue(comp.compare(Boolean.FALSE,Boolean.TRUE) > 0);
|
||||
assertTrue(comp.compare(Boolean.TRUE,Boolean.FALSE) < 0);
|
||||
|
||||
assertEquals(0,comp.compare((Object)(Boolean.TRUE),(Object)(Boolean.TRUE)));
|
||||
assertEquals(0,comp.compare((Object)(Boolean.FALSE),(Object)(Boolean.FALSE)));
|
||||
assertTrue(comp.compare((Object)(Boolean.FALSE),(Object)(Boolean.TRUE)) > 0);
|
||||
assertTrue(comp.compare((Object)(Boolean.TRUE),(Object)(Boolean.FALSE)) < 0);
|
||||
}
|
||||
|
||||
protected void falseFirstTests(BooleanComparator comp) {
|
||||
assertNotNull(comp);
|
||||
assertEquals(0,comp.compare(Boolean.TRUE,Boolean.TRUE));
|
||||
assertEquals(0,comp.compare(Boolean.FALSE,Boolean.FALSE));
|
||||
assertTrue(comp.compare(Boolean.FALSE,Boolean.TRUE) < 0);
|
||||
assertTrue(comp.compare(Boolean.TRUE,Boolean.FALSE) > 0);
|
||||
|
||||
assertEquals(0,comp.compare((Object)(Boolean.TRUE),(Object)(Boolean.TRUE)));
|
||||
assertEquals(0,comp.compare((Object)(Boolean.FALSE),(Object)(Boolean.FALSE)));
|
||||
assertTrue(comp.compare((Object)(Boolean.FALSE),(Object)(Boolean.TRUE)) < 0);
|
||||
assertTrue(comp.compare((Object)(Boolean.TRUE),(Object)(Boolean.FALSE)) > 0);
|
||||
}
|
||||
|
||||
protected void orderIndependentTests(BooleanComparator comp) {
|
||||
nullArgumentTests(comp);
|
||||
nonBooleanArgumentTests(comp);
|
||||
nullAndNonBooleanArgumentsTests(comp);
|
||||
}
|
||||
|
||||
protected void nullArgumentTests(BooleanComparator comp) {
|
||||
assertNotNull(comp);
|
||||
try {
|
||||
comp.compare(null,null);
|
||||
fail("Expected NullPointerException");
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(Boolean.TRUE,null);
|
||||
fail("Expected NullPointerException");
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(Boolean.FALSE,null);
|
||||
fail("Expected NullPointerException");
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(null,Boolean.TRUE);
|
||||
fail("Expected NullPointerException");
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(null,Boolean.FALSE);
|
||||
fail("Expected NullPointerException");
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
protected void nonBooleanArgumentTests(BooleanComparator comp) {
|
||||
assertNotNull(comp);
|
||||
try {
|
||||
comp.compare("string","string");
|
||||
fail("Expected ClassCastException");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(Boolean.TRUE,"string");
|
||||
fail("Expected ClassCastException");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare("string",Boolean.TRUE);
|
||||
fail("Expected ClassCastException");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare("string",new Integer(3));
|
||||
fail("Expected ClassCastException");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare(new Integer(3),"string");
|
||||
fail("Expected ClassCastException");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
protected void nullAndNonBooleanArgumentsTests(BooleanComparator comp) {
|
||||
assertNotNull(comp);
|
||||
try {
|
||||
comp.compare(null,"string");
|
||||
fail("Expected ClassCast or NullPointer Exception");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
try {
|
||||
comp.compare("string",null);
|
||||
fail("Expected ClassCast or NullPointer Exception");
|
||||
} catch(ClassCastException e) {
|
||||
// expected
|
||||
} catch(NullPointerException e) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue