Skip to content

Commit 158eecd

Browse files
committed
Merge remote-tracking branch 'origin/master' into issue638
2 parents 65c2304 + 4994735 commit 158eecd

File tree

8 files changed

+151
-103
lines changed

8 files changed

+151
-103
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.vijay.jsonwizard.validators.edittext;
22

3+
import android.support.annotation.NonNull;
4+
35
import com.rengwuxian.materialedittext.validation.METValidator;
46

57
/**
@@ -9,17 +11,22 @@ public class LengthValidator extends METValidator {
911

1012
protected int minLength = 0;
1113
protected int maxLength = Integer.MAX_VALUE;
14+
protected boolean isRequired;
1215

13-
public LengthValidator(String errorMessage, int minLength, int maxLength) {
16+
public LengthValidator(String errorMessage, int minLength, int maxLength, boolean isRequired) {
1417
super(errorMessage);
1518
this.minLength = minLength;
1619
this.maxLength = maxLength;
20+
this.isRequired = isRequired;
1721
}
1822

1923
@Override
20-
public boolean isValid(CharSequence charSequence, boolean isEmpty) {
21-
return charSequence != null ? !isEmpty && charSequence.length() >= minLength && charSequence.length() <= maxLength && charSequence != null
22-
: false;
23-
24+
public boolean isValid(@NonNull CharSequence charSequence, boolean isEmpty) {
25+
if (isRequired && isEmpty)
26+
return false;
27+
else if (!isRequired && isEmpty)
28+
return true;
29+
else
30+
return (charSequence != null && charSequence.length() >= minLength && charSequence.length() <= maxLength);
2431
}
2532
}

android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MaxLengthValidator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
public class MaxLengthValidator extends LengthValidator {
99

10-
public MaxLengthValidator(String errorMessage, int maxLength) {
11-
super(errorMessage, EditTextFactory.MIN_LENGTH, maxLength);
10+
public MaxLengthValidator(String errorMessage, int maxLength, boolean isRequired) {
11+
super(errorMessage, EditTextFactory.MIN_LENGTH, maxLength, isRequired);
1212
}
1313
}

android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MinLengthValidator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
public class MinLengthValidator extends LengthValidator {
99

10-
public MinLengthValidator(String errorMessage, int minLength) {
11-
super(errorMessage, minLength, EditTextFactory.MAX_LENGTH);
10+
public MinLengthValidator(String errorMessage, int minLength, boolean isRequired) {
11+
super(errorMessage, minLength, EditTextFactory.MAX_LENGTH, isRequired);
1212
}
1313
}

android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/EditTextFactory.java

+103-64
Large diffs are not rendered by default.

android-json-form-wizard/src/test/java/com/vijay/jsonwizard/validators/edittext/LengthValidatorTest.java

+21-7
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,32 @@
88
public class LengthValidatorTest extends BaseTest {
99

1010
@Test
11-
public void isValidShouldReturnFalseWhenIsEmptyTrue() {
11+
public void isValidShouldReturnTrueWhenEditTextValueIsEmptyAndMinimumLengthIsZeroAndIsNotRequired() {
12+
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50, false);
13+
Assert.assertEquals(true, validator.isValid("", true));
14+
}
1215

13-
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50);
14-
Assert.assertEquals(false, validator.isValid(DEFAULT_TEST_MESSAGE, true));
16+
@Test
17+
public void isValidShouldReturnFalseWhenEditTextValueIsEmptyAndIsRequired() {
18+
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50, true);
19+
Assert.assertEquals(false, validator.isValid("", true));
20+
}
1521

22+
@Test
23+
public void isValidShouldReturnTrueWhenEditTextValueIsNotEmptyAndIsLowerThanMaximumLength() {
24+
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50, false);
25+
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
1626
}
1727

1828
@Test
19-
public void isValidShouldReturnTrueWhenIsEmptyFalse() {
29+
public void isValidShouldReturnFalseWhenEditTextValueIsLongerThanMaximumLength() {
30+
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, 20, false);
31+
Assert.assertEquals(false, validator.isValid("This message is longer", false));
32+
}
2033

21-
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50);
34+
@Test
35+
public void isValidShouldReturnTrueWhenEditTextValueIsLongerThanMinimumLengthAndShorterThanMaximumLength() {
36+
LengthValidator validator = new LengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_0, CONSTANT_INT_50, false);
2237
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
2338
}
24-
}
25-
39+
}

android-json-form-wizard/src/test/java/com/vijay/jsonwizard/validators/edittext/MaxLengthValidatorTest.java

+5-11
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,28 @@
66
import org.junit.Test;
77

88
public class MaxLengthValidatorTest extends BaseTest {
9+
910
@Test
1011
public void isValidShouldReturnFalseWhenStringLengthGreaterThanMaxSetValue() {
11-
12-
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1);
12+
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1, false);
1313
Assert.assertEquals(false, validator.isValid(DEFAULT_TEST_MESSAGE, false));
14-
1514
}
1615

1716
@Test
1817
public void isValidShouldReturnTrueWhenStringLengthLessThanMaxSetValue() {
19-
20-
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_50);
18+
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_50, false);
2119
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
22-
2320
}
2421

2522
@Test
2623
public void isValidShouldReturnTrueWhenStringLengthEqualToMaxSetValue() {
27-
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_16);
24+
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_16, false);
2825
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
29-
3026
}
3127

3228
@Test
3329
public void isValidShouldReturnTrueWhenTheStringIsNull() {
34-
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1);
30+
MaxLengthValidator validator = new MaxLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1, false);
3531
Assert.assertEquals(false, (validator.isValid(null, false)));
3632
}
37-
3833
}
39-

android-json-form-wizard/src/test/java/com/vijay/jsonwizard/validators/edittext/MinLengthValidatorTest.java

+5-11
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,28 @@
66
import org.junit.Test;
77

88
public class MinLengthValidatorTest extends BaseTest {
9+
910
@Test
1011
public void isValidShouldReturnTrueWhenStringLengthIsGreaterThanMinSetValue() {
11-
12-
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1);
12+
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1, false);
1313
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
14-
1514
}
1615

1716
@Test
1817
public void isValidShouldReturnFalseWhenStringLengthIsLessThanMinSetValue() {
19-
20-
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_50);
18+
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_50, false);
2119
Assert.assertEquals(false, validator.isValid(DEFAULT_TEST_MESSAGE, false));
22-
2320
}
2421

2522
@Test
2623
public void isValidShouldReturnTrueWhenStringLengthIsEqualToMinSetValue() {
27-
28-
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_16);
24+
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_16, false);
2925
Assert.assertEquals(true, validator.isValid(DEFAULT_TEST_MESSAGE, false));
30-
3126
}
3227

3328
@Test
3429
public void isValidShouldReturnTrueWhenTheStringIsNull() {
35-
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1);
30+
MinLengthValidator validator = new MinLengthValidator(DEFAULT_ERROR_MSG, CONSTANT_INT_1, false);
3631
Assert.assertEquals(false, (validator.isValid(null, false)));
3732
}
38-
3933
}

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION_NAME=3.0.0-SNAPSHOT
1+
VERSION_NAME=3.0.0-BETA-SNAPSHOT
22
VERSION_CODE=1
33
GROUP=org.smartregister
44
POM_SETTING_DESCRIPTION=OpenSRP Client Native Form Json Wizard

0 commit comments

Comments
 (0)