This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FYI: SpinnerNumberModel - extra checks


I added these checks which reveal a bug (NullPointerException) in our SpinnerNumberModel implementation, which I'll fix in Classpath shortly:

2006-02-15 David Gilbert <david.gilbert@object-refinery.com>

   * gnu/testlet/javax/swing/SpinnerNumberModel/getNextValue.java
   (test): Add checks for model without bounds,
   * gnu/testlet/javax/swing/SpinnerNumberModel/getPreviousValue.java
   (test): Likewise.

Regards,

Dave
Index: gnu/testlet/javax/swing/SpinnerNumberModel/getNextValue.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/SpinnerNumberModel/getNextValue.java,v
retrieving revision 1.1
diff -u -r1.1 getNextValue.java
--- gnu/testlet/javax/swing/SpinnerNumberModel/getNextValue.java	8 Feb 2006 16:38:36 -0000	1.1
+++ gnu/testlet/javax/swing/SpinnerNumberModel/getNextValue.java	15 Feb 2006 10:47:08 -0000
@@ -31,7 +31,6 @@
 
 public class getNextValue implements Testlet {
 
-  
   public void test(TestHarness harness) 
   {
     SpinnerNumberModel m = new SpinnerNumberModel(2.0, 1.0, 3.0, 0.5);
@@ -40,9 +39,25 @@
     
     // accessing the next value doesn't update the current value
     harness.check(m.getValue(), new Double(2.0));
+    
     m.setValue(new Double(2.5));
     harness.check(m.getNextValue(), new Double(3.0));
     m.setValue(new Double(3.0));
     harness.check(m.getNextValue(), null);
+    
+    // repeat for model without bounds
+    m = new SpinnerNumberModel(new Integer(0), null, null, new Integer(1));
+    harness.check(m.getValue(), new Integer(0));
+    harness.check(m.getNextValue(), new Integer(1));
+
+    // accessing the next value doesn't update the current value
+    harness.check(m.getValue(), new Integer(0));
+    
+    m.setValue(new Integer(99));
+    harness.check(m.getNextValue(), new Integer(100));
+    
+    // what happens for max integer
+    m.setValue(new Integer(Integer.MAX_VALUE));
+    harness.check(m.getNextValue(), new Integer(Integer.MIN_VALUE));
   }
 }
Index: gnu/testlet/javax/swing/SpinnerNumberModel/getPreviousValue.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/SpinnerNumberModel/getPreviousValue.java,v
retrieving revision 1.1
diff -u -r1.1 getPreviousValue.java
--- gnu/testlet/javax/swing/SpinnerNumberModel/getPreviousValue.java	8 Feb 2006 16:38:36 -0000	1.1
+++ gnu/testlet/javax/swing/SpinnerNumberModel/getPreviousValue.java	15 Feb 2006 10:47:08 -0000
@@ -31,7 +31,7 @@
 
 public class getPreviousValue implements Testlet {
 
-  
+
   public void test(TestHarness harness) 
   {
     SpinnerNumberModel m = new SpinnerNumberModel(2.0, 1.0, 3.0, 0.5);
@@ -43,5 +43,20 @@
     harness.check(m.getPreviousValue(), new Double(1.0));
     m.setValue(new Double(1.0));
     harness.check(m.getPreviousValue(), null);
+
+    // repeat for model without bounds
+    m = new SpinnerNumberModel(new Integer(0), null, null, new Integer(1));
+    harness.check(m.getValue(), new Integer(0));
+    harness.check(m.getPreviousValue(), new Integer(-1));
+
+    // accessing the next value doesn't update the current value
+    harness.check(m.getValue(), new Integer(0));
+    
+    m.setValue(new Integer(-99));
+    harness.check(m.getPreviousValue(), new Integer(-100));
+    
+    // what happens for min integer
+    m.setValue(new Integer(Integer.MIN_VALUE));
+    harness.check(m.getPreviousValue(), new Integer(Integer.MAX_VALUE));  
   }
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]