diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2023-12-13 09:30:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 09:30:49 +0100 |
commit | 29d71b65bd854881d741b41c5522b8954b9bdd2e (patch) | |
tree | 6a49e7f4d2a4847bef2f18ca5f136342c5a6cb30 /vespajlib/src | |
parent | 243d4a7b507b780e890766951e3ead475944bcd4 (diff) | |
parent | 7d707401ed2bf651885d4c2fe9b18094f601cab4 (diff) |
Merge pull request #29593 from vespa-engine/bjorncs/validation
Bjorncs/validation
Diffstat (limited to 'vespajlib/src')
-rw-r--r-- | vespajlib/src/main/java/ai/vespa/validation/Validation.java | 8 | ||||
-rw-r--r-- | vespajlib/src/test/java/ai/vespa/validation/ValidationTest.java | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/validation/Validation.java b/vespajlib/src/main/java/ai/vespa/validation/Validation.java index c03aa71c1bb..0ef2778f85e 100644 --- a/vespajlib/src/main/java/ai/vespa/validation/Validation.java +++ b/vespajlib/src/main/java/ai/vespa/validation/Validation.java @@ -3,6 +3,7 @@ package ai.vespa.validation; import com.yahoo.yolean.Exceptions; +import java.util.Objects; import java.util.function.Function; import java.util.regex.Pattern; @@ -69,4 +70,11 @@ public class Validation { throw new IllegalArgumentException(description + ", but got: '" + value + "'"); } + public static void requireNonNulls(Object... objs) { + for (int i = 0; i < objs.length; i++) { + int effectivelyFinal = i; + Objects.requireNonNull(objs[i], () -> "Argument at index %d is null".formatted(effectivelyFinal)); + } + } + } diff --git a/vespajlib/src/test/java/ai/vespa/validation/ValidationTest.java b/vespajlib/src/test/java/ai/vespa/validation/ValidationTest.java index 85bd6ed393a..e4d3cc2b854 100644 --- a/vespajlib/src/test/java/ai/vespa/validation/ValidationTest.java +++ b/vespajlib/src/test/java/ai/vespa/validation/ValidationTest.java @@ -3,11 +3,14 @@ package ai.vespa.validation; import org.junit.jupiter.api.Test; +import java.util.List; + import static ai.vespa.validation.Validation.parse; import static ai.vespa.validation.Validation.requireAtLeast; import static ai.vespa.validation.Validation.requireAtMost; import static ai.vespa.validation.Validation.requireInRange; import static ai.vespa.validation.Validation.requireNonBlank; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -68,4 +71,12 @@ class ValidationTest { .getMessage()); } + @Test + void testNonNulls() { + assertDoesNotThrow(() -> Validation.requireNonNulls("hei", 123L, List.of("hoi"))); + var exception = assertThrows(NullPointerException.class, () -> Validation.requireNonNulls("hei", null, List.of("hoi"))); + assertEquals("Argument at index 1 is null", exception.getMessage()); + } + + } |