Skip to content

Commit 5d2cd9f

Browse files
committed
Bugfix: Nulls in validation fields
1 parent 973ac14 commit 5d2cd9f

File tree

5 files changed

+47
-7
lines changed

5 files changed

+47
-7
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dev.ditsche</groupId>
88
<artifactId>validator</artifactId>
9-
<version>1.1.0</version>
9+
<version>1.1.1</version>
1010

1111
<packaging>jar</packaging>
1212

src/main/java/dev/ditsche/validator/Validator.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.lang.reflect.Method;
1313
import java.util.ArrayList;
1414
import java.util.Arrays;
15+
import java.util.LinkedList;
1516
import java.util.List;
1617

1718
/**
@@ -65,6 +66,7 @@ public Validator<T> addField(String field, Rule...rules) {
6566
.findFirst().orElse(null);
6667
if(vf == null) {
6768
fields.add(new ValidationField(field, rules));
69+
return this;
6870
} else {
6971
fields.remove(vf);
7072
for(Rule rule : rules) {
@@ -88,14 +90,11 @@ public Validator<T> addField(String field, Rule...rules) {
8890
*/
8991
public Validator<T> addField(String field, String rulesString) {
9092
String[] rules = rulesString.split("\\|");
91-
ValidationField vf = fields.stream().filter(f -> f.getField().equals(field))
92-
.findFirst().orElse(new ValidationField(field));
93-
fields.remove(vf);
93+
List<Rule> parsed = new LinkedList<>();
9494
for(String rule : rules) {
95-
ruleParser.parse(rule).ifPresent(vf::addRule);
95+
ruleParser.parse(rule).ifPresent(parsed::add);
9696
}
97-
fields.add(vf);
98-
return this;
97+
return addField(field, (Rule[]) parsed.toArray());
9998
}
10099

101100
/**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dev.ditsche.validator;
2+
3+
/**
4+
* @author Tobias Dittmann
5+
*/
6+
public class TestEntity {
7+
private String title;
8+
9+
public TestEntity(String title) {
10+
this.title = title;
11+
}
12+
13+
public String getTitle() {
14+
return this.title;
15+
}
16+
}

src/test/java/dev/ditsche/validator/ruleset/PatternRuleTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,33 @@
11
package dev.ditsche.validator.ruleset;
22

3+
import dev.ditsche.validator.TestEntity;
4+
import dev.ditsche.validator.Validator;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Data;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import org.junit.jupiter.api.BeforeAll;
10+
import org.junit.jupiter.api.BeforeEach;
311
import org.junit.jupiter.api.Test;
412

513
import java.util.LinkedList;
614
import java.util.stream.Stream;
715

816
import static org.assertj.core.api.Assertions.assertThat;
17+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
918

1019
public class PatternRuleTest {
1120

1221
private final PatternRule patternRule = new PatternRule("\\d*");
1322

23+
private Validator<TestEntity> validator;
24+
25+
@BeforeEach
26+
public void setUp() {
27+
validator = new Validator<>();
28+
validator.addField("title", new PatternRule("/^[a-z ,.'-]+$/i"));
29+
}
30+
1431
@Test
1532
public void shouldFailIfNoStringIsProvided() {
1633
Stream.of(null, 1, new LinkedList<>(), 2.00f).forEach(value -> {
@@ -37,4 +54,11 @@ public void shouldReturnValidErrorMessage() {
3754
assertThat(patternRule.message("test")).isEqualTo("The field \"test\" has an invalid format");
3855
}
3956

57+
@Test
58+
public void shouldValidate() {
59+
assertDoesNotThrow(() -> {
60+
validator.tryValidate(new TestEntity("test"));
61+
});
62+
}
63+
4064
}

src/test/java/dev/ditsche/validator/ruleset/RequiredRuleTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.ditsche.validator.ruleset;
22

3+
import dev.ditsche.validator.Validator;
34
import org.junit.jupiter.api.Test;
45

56
import java.util.*;

0 commit comments

Comments
 (0)