tobrien     2003/10/11 13:35:11

  Modified:    lang/src/test/org/apache/commons/lang NumberRangeTest.java
  Log:
  Added various tests to the NumberRangeTest class,
  including tests for null parameters to overlap, include*, and
  constructors.  Tests for hashCode, and tests for equals.
  
  Revision  Changes    Path
  1.6       +81 -30    
jakarta-commons/lang/src/test/org/apache/commons/lang/NumberRangeTest.java
  
  Index: NumberRangeTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/NumberRangeTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NumberRangeTest.java      18 Aug 2003 02:22:25 -0000      1.5
  +++ NumberRangeTest.java      11 Oct 2003 20:35:11 -0000      1.6
  @@ -53,6 +53,8 @@
    */
   package org.apache.commons.lang;
   
  +import java.math.BigDecimal;
  +
   import junit.framework.Test;
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
  @@ -62,6 +64,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Christopher Elkins</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Ringo De Smet</a>
  + * @author Tim O'Brien
    * @version $Revision$ $Date$
    */
   
  @@ -69,26 +72,30 @@
   
   
       private NumberRange tenToTwenty;
  +    private NumberRange fifteenToTwentyFive;
  +    private NumberRange fiveToNine;
       private Number five;
  +    private Number nine;
       private Number ten;
       private Number fifteen;
       private Number twenty;
       private Number twentyFive;
   
  -
       public NumberRangeTest(String name) {
           super(name);
       }
   
  -
       public void setUp() {
           five       = new Integer(5);
  +        nine      = new Double(9.0);
           ten        = new Integer(10);
           fifteen    = new Integer(15);
           twenty     = new Integer(20);
           twentyFive = new Integer(25);
   
           tenToTwenty = new NumberRange(ten, twenty);
  +        fifteenToTwentyFive = new NumberRange( fifteen, twentyFive);
  +        fiveToNine = new NumberRange( five, nine );
       }
   
   
  @@ -125,7 +132,26 @@
           result = tenToTwenty.equals(new NumberRange(fifteen, twenty));
           assertEquals(expected, result);
       }
  +    
  +    public void testEqualsWithOtherObject() {
  +        assertEquals( "A NumberRange should not equals a String object", false, 
fiveToNine.equals("TEST"));
  +    }
   
  +    public void testEqualsWithSameReference() {
  +        assertEquals( "A NumberRange should equal itself", true, 
fiveToNine.equals(fiveToNine));
  +    }
  +
  +    public void testEqualsNull() {
  +        assertEquals( "A NumberRange should not equal null", false, 
fiveToNine.equals(null));
  +    }
  +
  +    public void testHashCode() {
  +        NumberRange nr = new NumberRange( new Integer(5), new Double(9.0));
  +        assertEquals( "The hashCode of 5-9 should equals the hashcode of another 
NumberRange of the same min/max",
  +                                fiveToNine.hashCode(), nr.hashCode());
  +        assertTrue( "The hashCode of 10-20 should not equal the hashCode of 5-9", 
  +                            fiveToNine.hashCode() != tenToTwenty.hashCode());       
                 
  +    }
   
       public void testIncludesNumber() {
           boolean expected = false;
  @@ -149,6 +175,10 @@
           assertEquals(expected, result);
       }
   
  +    public void testIncludesNumberNull() {
  +        boolean result = tenToTwenty.includesNumber(null);
  +        assertEquals("Includes number should return false for null values", false, 
result);
  +    }
   
       public void testIncludesRange() {
           boolean expected = false;
  @@ -182,49 +212,70 @@
           assertEquals(expected, result);
       }
   
  -     public void testConstructorNullParameters()
  -     {
  -             try
  -             {
  +    public void testIncludesRangeNull() {
  +        boolean result = tenToTwenty.includesRange(null);
  +        assertEquals("Includes range should return false for null values", false, 
result);
  +    }
  +
  +    public void testConstructor() {
  +        NumberRange nr = new NumberRange( new Double(2.0));
  +        assertEquals("Unexpected min on NumberRange", 2.0, 
nr.getMinimum().doubleValue(), Double.MIN_VALUE);
  +        assertEquals("Unexpected max on NumberRange", 2.0, 
nr.getMaximum().doubleValue(), Double.MIN_VALUE);
  +    }
  +
  +     public void testConstructorNullParameters() {
  +             try {
                        NumberRange nr = new NumberRange(null);
                        fail("NumberRange(null) did not throw an exception.");
  -             }
  -             catch (Exception e)
  -             {
  -                     assertTrue(
  -                             "NumberRange(null)",
  -                             e instanceof NullPointerException);
  +             } catch (Exception e) {
  +                     assertTrue(     "NumberRange(null)", e instanceof 
NullPointerException);
                }
   
  -             try
  -             {
  +             try {
                        NumberRange nr = new NumberRange(five, null);
                        fail("NumberRange(five, null) did not throw an exception.");
  -             }
  -             catch (Exception e)
  -             {
  -                     assertTrue(
  -                             "NumberRange(five, null)",
  -                             e instanceof NullPointerException);
  +             } catch (Exception e) {
  +                     assertTrue("NumberRange(five, null)", e instanceof 
NullPointerException);
                }
   
  -             try
  -             {
  +             try {
                        NumberRange nr = new NumberRange(null, five);
                        fail("NumberRange(null, five) did not throw an exception.");
  +             } catch (Exception e) {
  +                     assertTrue("NumberRange(null, five)", e instanceof 
NullPointerException);
                }
  -             catch (Exception e)
  -             {
  -                     assertTrue(
  -                             "NumberRange(null, five)",
  -                             e instanceof NullPointerException);
  -             }
  -
        }
   
  +    public void testConstructorWithMaxLessThanMin() {
  +        NumberRange nr = new NumberRange( new Double(2.0), new Double(1.0));
  +        assertEquals("Unexpected min on NumberRange", 2.0, 
nr.getMinimum().doubleValue(), Double.MIN_VALUE);
  +        assertEquals("Unexpected max on NumberRange", 2.0, 
nr.getMaximum().doubleValue(), Double.MIN_VALUE);
  +    }
  +
  +    public void testOverlap() {
  +        assertEquals( "5-9 should not overlap 10-20", false, fiveToNine.overlaps( 
tenToTwenty ));
  +        assertEquals( "10-20 should overlap 15-25", true, tenToTwenty.overlaps( 
fifteenToTwentyFive ));
  +    }
  +
  +    public void testOverlapNull() {
  +        assertEquals( "5-9 should not overlap null", false, fiveToNine.overlaps( 
null ));
  +    }
  +
       public void testToString() {
           String expected = "10-20";
           String result = tenToTwenty.toString();
  +        assertEquals(expected, result);
  +    }
  +
  +    public void testToStringWithNegatives() {
  +        String expected = "(-20)-(-10)";
  +        NumberRange nr = new NumberRange( new Integer(-20), new Integer(-10));
  +        String result = nr.toString();
  +        assertEquals(expected, result);
  +
  +        expected = "(-20)-10";
  +        nr = new NumberRange( new Integer(-20), new Integer(10));
  +        result = nr.toString();
           assertEquals(expected, result);
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to