Klasse Validator eingefügt

This commit is contained in:
ngb
2022-07-06 20:16:37 +02:00
parent 62dc4190a1
commit 49063c9581
3 changed files with 283 additions and 1 deletions

View File

@@ -0,0 +1,127 @@
package schule.ngb.zm.util;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class ValidatorTest {
@Test
void requireNotNull() {
StringBuilder sb = new StringBuilder("Message");
Object o1 = new Object();
assertEquals(o1, Validator.requireNotNull(o1));
assertEquals(o1, Validator.requireNotNull(o1, "Message"));
assertEquals(o1, Validator.requireNotNull(o1, sb));
assertEquals(o1, Validator.requireNotNull(o1, ()->"Message"));
String o2 = null;
assertThrowsExactly(NullPointerException.class, () -> Validator.requireNotNull(o2));
assertThrowsExactly(NullPointerException.class, () -> Validator.requireNotNull(o2, "Message"));
assertThrowsExactly(NullPointerException.class, () -> Validator.requireNotNull(o2, ()->"Message"));
}
@Test
void requireNotEmpty() {
StringBuilder sb = new StringBuilder("Message");
String s1 = "Content";
assertEquals(s1, Validator.requireNotEmpty(s1));
assertEquals(s1, Validator.requireNotEmpty(s1, "Message"));
assertEquals(s1, Validator.requireNotEmpty(s1, sb));
assertEquals(s1, Validator.requireNotEmpty(s1, ()->"Message"));
String s2 = "";
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotEmpty(s2));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotEmpty(s2, "Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotEmpty(s2, ()->"Message"));
}
@Test
void requirePositive() {
int i = 1;
assertEquals(i, Validator.requirePositive(i));
assertEquals(i, Validator.requirePositive(i, "Message"));
assertEquals(i, Validator.requirePositive(i, ()->"Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(i-1));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(i-1, "Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(i-1, ()->"Message"));
double k = 1.0;
assertEquals(k, Validator.requirePositive(i));
assertEquals(k, Validator.requirePositive(i, "Message"));
assertEquals(k, Validator.requirePositive(i, ()->"Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(k-1.0));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(k-1.0, "Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requirePositive(k-1.0, ()->"Message"));
}
@Test
void requireNotNegative() {
int i = 0;
assertEquals(i, Validator.requireNotNegative(i));
assertEquals(i, Validator.requireNotNegative(i, "Message"));
assertEquals(i, Validator.requireNotNegative(i, ()->"Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(i-1));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(i-1, "Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(i-1, ()->"Message"));
double k = 0.0;
assertEquals(k, Validator.requireNotNegative(i));
assertEquals(k, Validator.requireNotNegative(i, "Message"));
assertEquals(k, Validator.requireNotNegative(i, ()->"Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(k-1.0));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(k-1.0, "Message"));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireNotNegative(k-1.0, ()->"Message"));
}
@Test
void requireInRange() {
int min = 50, max = 100;
for( int ii = min; ii < max; ii++ ) {
final int i = ii;
assertEquals(i, Validator.requireInRange(i, min, max));
assertEquals(i, Validator.requireInRange(i, min, max, "Message"));
assertEquals(i, Validator.requireInRange(i, min, max, () -> "Message"));
}
for( int ii = 0; ii < min; ii++ ) {
final int i = ii;
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
}
for( int ii = max+1; ii < 2*max; ii++ ) {
final int i = ii;
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(i, min, max));
}
double dmin = 50, dmax = 60;
for( double dd = dmin; dd < dmax; dd+=0.1 ) {
final double d = dd;
assertEquals(d, Validator.requireInRange(d, dmin, dmax));
assertEquals(d, Validator.requireInRange(d, dmin, dmax, "Message"));
assertEquals(d, Validator.requireInRange(d, dmin, dmax, () -> "Message"));
}
for( double dd = dmin-10.0; dd < dmin; dd+=0.1 ) {
final double d = dd;
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
}
for( double dd = dmax+0.1; dd < dmax+10.0; dd+=0.1 ) {
final double d = dd;
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
assertThrowsExactly(IllegalArgumentException.class, () -> Validator.requireInRange(d, dmin, dmax));
}
}
}