This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: SpinnerNumberModel - extra checks
- From: David Gilbert <david dot gilbert at object-refinery dot com>
- To: mauve-patches at sources dot redhat dot com
- Date: Wed, 15 Feb 2006 10:52:35 +0000
- Subject: 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));
}
}