Browse Source

Optional validator should pass null through to inner validator.

Change-Id: I9b8ad2dca5d93dae3c656c5334ff916604d8c826
Reviewed-on: http://gerrit.dmdirc.com/2635
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
changes/51/2651/1
Greg Holmes 10 years ago
parent
commit
b4e4ee1a30

+ 10
- 4
src/com/dmdirc/util/validators/OptionalValidator.java View File

@@ -19,7 +19,6 @@
19 19
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 20
  * SOFTWARE.
21 21
  */
22
-
23 22
 package com.dmdirc.util.validators;
24 23
 
25 24
 /**
@@ -27,7 +26,9 @@ package com.dmdirc.util.validators;
27 26
  */
28 27
 public class OptionalValidator implements Validator<String> {
29 28
 
30
-    /** The minimum value for this number. */
29
+    /**
30
+     * The validator to validate the optional setting.
31
+     */
31 32
     protected final Validator<String> validator;
32 33
 
33 34
     /**
@@ -48,9 +49,15 @@ public class OptionalValidator implements Validator<String> {
48 49
         return validator;
49 50
     }
50 51
 
51
-    /** {@inheritDoc} */
52
+    /**
53
+     * {@inheritDoc}
54
+     */
52 55
     @Override
53 56
     public ValidationResponse validate(final String object) {
57
+        if (object == null) {
58
+            return validator.validate(object);
59
+        }
60
+
54 61
         final int colonIndex = object.indexOf(':');
55 62
 
56 63
         if (colonIndex == -1) {
@@ -65,5 +72,4 @@ public class OptionalValidator implements Validator<String> {
65 72
 
66 73
         return validator.validate(object);
67 74
     }
68
-
69 75
 }

+ 8
- 3
test/com/dmdirc/util/validators/OptionalValidatorTest.java View File

@@ -19,7 +19,6 @@
19 19
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 20
  * SOFTWARE.
21 21
  */
22
-
23 22
 package com.dmdirc.util.validators;
24 23
 
25 24
 import org.junit.Test;
@@ -35,6 +34,13 @@ public class OptionalValidatorTest {
35 34
         assertEquals(validator, instance.getValidator());
36 35
     }
37 36
 
37
+    @Test
38
+    public void testNullValue() {
39
+        final Validator<String> validator = new NotEmptyValidator();
40
+        final OptionalValidator instance = new OptionalValidator(validator);
41
+        assertTrue(instance.validate(null).isFailure());
42
+    }
43
+
38 44
     @Test
39 45
     public void testNoSeparator() {
40 46
         final ValidationResponse res = new OptionalValidator(new StringLengthValidator(0, 3))
@@ -63,5 +69,4 @@ public class OptionalValidatorTest {
63 69
         assertTrue(res.isFailure());
64 70
         assertTrue(res.getFailureReason().contains("at most 2"));
65 71
     }
66
-
67
-}
72
+}

Loading…
Cancel
Save