Skip to content

Commit 5606f00

Browse files
author
John Keyes
committed
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/cli/trunk@278640 13f79535-47bb-0310-9956-ffa450edef68
1 parent cce36ec commit 5606f00

8 files changed

Lines changed: 62 additions & 40 deletions

File tree

src/java/org/apache/commons/cli2/validation/EnumValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class EnumValidator implements Validator {
5151
* @param values The list of permitted values
5252
*/
5353
public EnumValidator(final Set values) {
54-
this.validValues = values;
54+
setValidValues(values);
5555
}
5656

5757
/**
@@ -113,7 +113,7 @@ public Set getValidValues() {
113113
*
114114
* @param validValues The Set of valid argument values.
115115
*/
116-
public void setValidValues(Set validValues) {
116+
protected void setValidValues(Set validValues) {
117117
this.validValues = validValues;
118118
}
119119
}

src/java/org/apache/commons/cli2/validation/NumberValidator.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,12 @@ public static NumberValidator getNumberInstance() {
100100
/** the upper bound for argument values */
101101
private Number maximum = null;
102102

103-
/**
104-
* Creates a new NumberValidator.
105-
*/
106-
public NumberValidator() {
107-
this(NumberFormat.getInstance());
108-
}
109-
110103
/**
111104
* Creates a new NumberValidator based on the specified NumberFormat
112105
* @param format the format of numbers to accept
113106
*/
114107
public NumberValidator(final NumberFormat format) {
115-
this.format = format;
108+
setFormat(format);
116109
}
117110

118111
/**
@@ -124,7 +117,7 @@ public NumberValidator(final NumberFormat format) {
124117
*/
125118
public void validate(final List values) throws InvalidArgumentException {
126119
for (final ListIterator i = values.listIterator(); i.hasNext();) {
127-
final String value = (String)i.next();
120+
final String value = (String) i.next();
128121

129122
final ParsePosition pp = new ParsePosition(0);
130123
final Number number = format.parse(value, pp);
@@ -157,7 +150,7 @@ public NumberFormat getFormat() {
157150
*
158151
* @param format the format being used to validate argument values against.
159152
*/
160-
public void setFormat(NumberFormat format) {
153+
protected void setFormat(NumberFormat format) {
161154
this.format = format;
162155
}
163156

src/test/data/hidden.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hidden text file.

src/test/data/readable.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Readable text file.

src/test/data/writable.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Writable text file.

src/test/org/apache/commons/cli2/validation/DateValidatorTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,12 @@ public void testMinimumBounds() throws InvalidArgumentException {
149149

150150
public void testFormats() throws InvalidArgumentException {
151151
final DateValidator validator = new DateValidator(formats);
152-
assertEquals("date formats are incorrect", formats, validator.getFormats());
152+
assertEquals("date format is incorrect",
153+
((SimpleDateFormat)formats.get(0)).toPattern(),
154+
((SimpleDateFormat)validator.getFormats()[0]).toPattern());
155+
assertEquals("date format is incorrect",
156+
((SimpleDateFormat)formats.get(1)).toPattern(),
157+
((SimpleDateFormat)validator.getFormats()[1]).toPattern());
153158
}
154159

155160
public void testMaximumBounds() throws InvalidArgumentException {

src/test/org/apache/commons/cli2/validation/EnumValidatorTest.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,22 @@ public class EnumValidatorTest extends TestCase {
2727
private final Set enumSet = new TreeSet(
2828
Arrays.asList(
2929
new Object[]{"red", "green", "blue"}));
30-
30+
3131
public void testValidate() throws InvalidArgumentException {
3232
final Object[] array = new Object[] { "red", "green"};
33-
final List list = Arrays.asList(array);
34-
final Validator validator = new EnumValidator(enumSet);
35-
36-
validator.validate(list);
33+
{
34+
final List list = Arrays.asList(array);
35+
final EnumValidator validator = new EnumValidator(enumSet);
36+
assertEquals("valid values are incorrect", enumSet, validator.getValidValues());
37+
validator.validate(list);
3738

38-
final Iterator i = list.iterator();
39-
assertEquals("red", i.next());
40-
assertEquals("green", i.next());
41-
assertFalse(i.hasNext());
39+
final Iterator i = list.iterator();
40+
assertEquals("red", i.next());
41+
assertEquals("green", i.next());
42+
assertFalse(i.hasNext());
43+
}
4244
}
43-
45+
4446
public void testNonMember() {
4547
final Object[] array = new Object[] { "red", "pink"};
4648
final List list = Arrays.asList(array);

src/test/org/apache/commons/cli2/validation/NumberValidatorTest.java

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
/**
2-
* Copyright 2003-2004 The Apache Software Foundation
1+
/*
2+
* Copyright 2003-2005 The Apache Software Foundation
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,27 +22,35 @@
2222

2323
import junit.framework.TestCase;
2424

25+
/**
26+
* JUnit test case for NumberValidator.
27+
*
28+
* @author Rob Oxspring
29+
* @author John Keyes
30+
*/
2531
public class NumberValidatorTest extends TestCase {
2632

2733
public void testValidate_Number() throws InvalidArgumentException {
2834
final NumberFormat format = NumberFormat.getNumberInstance();
2935

3036
final Object[] array =
3137
new Object[] {
32-
format.format(1d),
33-
format.format(1.07d),
34-
format.format(-.45d)};
35-
36-
final List list = Arrays.asList(array);
37-
final Validator validator = NumberValidator.getNumberInstance();
38+
format.format(1d),
39+
format.format(1.07d),
40+
format.format(-.45d)};
3841

39-
validator.validate(list);
42+
{
43+
final List list = Arrays.asList(array);
44+
final Validator validator = NumberValidator.getNumberInstance();
4045

41-
final Iterator i = list.iterator();
42-
assertEquals(1d, ((Number)i.next()).doubleValue(), 0.0001);
43-
assertEquals(1.07d, ((Number)i.next()).doubleValue(), 0.0001);
44-
assertEquals(-.45d, ((Number)i.next()).doubleValue(), 0.0001);
45-
assertFalse(i.hasNext());
46+
validator.validate(list);
47+
48+
final Iterator i = list.iterator();
49+
assertEquals(1d, ((Number)i.next()).doubleValue(), 0.0001);
50+
assertEquals(1.07d, ((Number)i.next()).doubleValue(), 0.0001);
51+
assertEquals(-.45d, ((Number)i.next()).doubleValue(), 0.0001);
52+
assertFalse(i.hasNext());
53+
}
4654
}
4755

4856
public void testValidate_Currency() throws InvalidArgumentException {
@@ -53,7 +61,9 @@ public void testValidate_Currency() throws InvalidArgumentException {
5361
format.format(1.07),
5462
format.format(-0.45)};
5563
final List list = Arrays.asList(array);
56-
final Validator validator = NumberValidator.getCurrencyInstance();
64+
65+
final NumberValidator validator = NumberValidator.getCurrencyInstance();
66+
assertEquals("incorrect currency format", format, validator.getFormat());
5767

5868
validator.validate(list);
5969

@@ -118,7 +128,12 @@ public void testValidate_Maximum() {
118128
final Object[] array = new Object[] { "1", "107" };
119129
final List list = Arrays.asList(array);
120130
final NumberValidator validator = NumberValidator.getIntegerInstance();
121-
validator.setMaximum(new Integer(100));
131+
Integer max = new Integer(100);
132+
133+
validator.setMaximum(max);
134+
135+
assertTrue("no minimum set", validator.getMinimum() == null);
136+
assertEquals("incorrect maximum value", max, validator.getMaximum());
122137

123138
try {
124139
validator.validate(list);
@@ -133,7 +148,11 @@ public void testValidate_Minimum() {
133148
final Object[] array = new Object[] { "107", "1" };
134149
final List list = Arrays.asList(array);
135150
final NumberValidator validator = NumberValidator.getIntegerInstance();
136-
validator.setMinimum(new Integer(100));
151+
Integer min = new Integer(100);
152+
validator.setMinimum(min);
153+
154+
assertTrue("no maximum set", validator.getMaximum() == null);
155+
assertEquals("incorrect minimum value", min, validator.getMinimum());
137156

138157
try {
139158
validator.validate(list);

0 commit comments

Comments
 (0)