diff options
author | pacien | 2019-04-13 21:24:40 +0200 |
---|---|---|
committer | pacien | 2019-04-13 21:24:40 +0200 |
commit | 7ded9823fb54b81cbd73a133fd1e1fe036f31b04 (patch) | |
tree | d6f05d089507290d9cc47f24b6799e81ba31a5d8 /src/test/java/org/pacien/lemonad/validation/ValidationTest.java | |
parent | 80f7acccde921fb387a17d2a5712babf3001b974 (diff) | |
download | java-lemonad-7ded9823fb54b81cbd73a133fd1e1fe036f31b04.tar.gz |
refactor validation
Diffstat (limited to 'src/test/java/org/pacien/lemonad/validation/ValidationTest.java')
-rw-r--r-- | src/test/java/org/pacien/lemonad/validation/ValidationTest.java | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/src/test/java/org/pacien/lemonad/validation/ValidationTest.java b/src/test/java/org/pacien/lemonad/validation/ValidationTest.java index fed74a3..c19c694 100644 --- a/src/test/java/org/pacien/lemonad/validation/ValidationTest.java +++ b/src/test/java/org/pacien/lemonad/validation/ValidationTest.java | |||
@@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test; | |||
23 | import org.pacien.lemonad.attempt.Attempt; | 23 | import org.pacien.lemonad.attempt.Attempt; |
24 | 24 | ||
25 | import java.util.List; | 25 | import java.util.List; |
26 | import java.util.stream.Stream; | ||
27 | 26 | ||
28 | import static org.junit.jupiter.api.Assertions.assertEquals; | 27 | import static org.junit.jupiter.api.Assertions.assertEquals; |
29 | import static org.junit.jupiter.api.Assertions.assertFalse; | 28 | import static org.junit.jupiter.api.Assertions.assertFalse; |
@@ -36,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.fail; | |||
36 | class ValidationTest { | 35 | class ValidationTest { |
37 | @Test void testValidResult() { | 36 | @Test void testValidResult() { |
38 | var subject = "subject"; | 37 | var subject = "subject"; |
39 | var validation = Validation.valid(subject); | 38 | var validation = Validation.of(subject); |
40 | assertTrue(validation.getErrors().isEmpty()); | 39 | assertTrue(validation.getErrors().isEmpty()); |
41 | assertTrue(validation.isValid()); | 40 | assertTrue(validation.isValid()); |
42 | assertFalse(validation.isInvalid()); | 41 | assertFalse(validation.isInvalid()); |
@@ -48,7 +47,7 @@ class ValidationTest { | |||
48 | @Test void testInvalidResult() { | 47 | @Test void testInvalidResult() { |
49 | var subject = "subject"; | 48 | var subject = "subject"; |
50 | var errors = List.of(0, 1); | 49 | var errors = List.of(0, 1); |
51 | var validation = Validation.invalid(subject, 0, 1); | 50 | var validation = Validation.of(subject, 0, 1); |
52 | assertEquals(errors, validation.getErrors()); | 51 | assertEquals(errors, validation.getErrors()); |
53 | assertFalse(validation.isValid()); | 52 | assertFalse(validation.isValid()); |
54 | assertTrue(validation.isInvalid()); | 53 | assertTrue(validation.isInvalid()); |
@@ -61,18 +60,32 @@ class ValidationTest { | |||
61 | } | 60 | } |
62 | 61 | ||
63 | @Test void testFlatMap() { | 62 | @Test void testFlatMap() { |
64 | Validation.valid("subject") | 63 | Validation |
65 | .ifInvalid((__, ___) -> fail()) | 64 | .of("subject") |
66 | .flatMap(res -> Validation.invalid(res.getSubject(), 0)) | 65 | .ifInvalid((__, ___) -> fail()) |
67 | .ifValid(innerSubject -> fail()); | 66 | .flatMap(res -> Validation.of(res.getSubject(), 0)) |
67 | .ifValid(innerSubject -> fail()); | ||
68 | } | 68 | } |
69 | 69 | ||
70 | @Test void testMerge() { | 70 | @Test void testMerge() { |
71 | var subject = "subject"; | 71 | var validation = Validation |
72 | assertEquals(List.of(0, 1, 2, 3), Validation.merge(subject, Stream.of( | 72 | .of(12345, 0) |
73 | Validation.valid(subject), | 73 | .merge(s -> Validation.of(s, 1)) |
74 | Validation.invalid(subject, 0, 1), | 74 | .merge((Integer s) -> Integer.toString(s), (String s) -> Validation.of(s, 2)) |
75 | Validation.invalid(subject, 2, 3)) | 75 | .merge(Validation.of(0L, List.of(3))) |
76 | ).getErrors()); | 76 | .merge(List.of(4)); |
77 | |||
78 | assertEquals(Validation.of(12345, 0, 1, 2, 3, 4), validation); | ||
79 | } | ||
80 | |||
81 | @Test void testValidate() { | ||
82 | var validation = Validation | ||
83 | .of("subject") | ||
84 | .validate(String::isEmpty, 0) | ||
85 | .validate(String::length, len -> len > 0, 1) | ||
86 | .validate(subject -> List.of(2, 3)) | ||
87 | .validate(subject -> subject.charAt(0), firstChar -> firstChar == 's' ? List.of() : List.of(4)); | ||
88 | |||
89 | assertEquals(Validation.of("subject", 0, 2, 3), validation); | ||
77 | } | 90 | } |
78 | } | 91 | } |