diff --git a/spring-cloud-starter/src/main/java/com/jmsoftware/maf/springcloudstarter/function/BooleanCheck.java b/spring-cloud-starter/src/main/java/com/jmsoftware/maf/springcloudstarter/function/BooleanCheck.java index 57999f33..17441a50 100644 --- a/spring-cloud-starter/src/main/java/com/jmsoftware/maf/springcloudstarter/function/BooleanCheck.java +++ b/spring-cloud-starter/src/main/java/com/jmsoftware/maf/springcloudstarter/function/BooleanCheck.java @@ -24,7 +24,7 @@ private BooleanCheck() { * @return the throw exception function * @see com.jmsoftware.maf.springcloudstarter.FunctionalInterfaceTests#testRequireTrue() */ - public static OrElseThrowExceptionFunction requireTrue(Boolean aBoolean, Consumer after) { + public static OrElseThrowExceptionFunction requireTrue(boolean aBoolean, Consumer after) { if (nonNull(after)) { after.accept(aBoolean); } @@ -34,4 +34,21 @@ public static OrElseThrowExceptionFunction requireTrue(Boolean aBoolean, Consume } }; } + + /** + * Require all true or else throw exception function. + * + * @param booleans the booleans + * @return the or else throw exception function + * @see com.jmsoftware.maf.springcloudstarter.FunctionalInterfaceTests#testRequireTrue() + */ + public static OrElseThrowExceptionFunction requireAllTrue(boolean... booleans) { + return exceptionSupplier -> { + for (boolean aBoolean : booleans) { + if (BooleanUtil.isFalse(aBoolean)) { + throw exceptionSupplier.get(); + } + } + }; + } } diff --git a/spring-cloud-starter/src/test/java/com/jmsoftware/maf/springcloudstarter/FunctionalInterfaceTests.java b/spring-cloud-starter/src/test/java/com/jmsoftware/maf/springcloudstarter/FunctionalInterfaceTests.java index f2e11914..1550edbb 100644 --- a/spring-cloud-starter/src/test/java/com/jmsoftware/maf/springcloudstarter/FunctionalInterfaceTests.java +++ b/spring-cloud-starter/src/test/java/com/jmsoftware/maf/springcloudstarter/FunctionalInterfaceTests.java @@ -15,6 +15,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; +import static com.jmsoftware.maf.springcloudstarter.function.BooleanCheck.requireAllTrue; import static com.jmsoftware.maf.springcloudstarter.function.BooleanCheck.requireTrue; import static com.jmsoftware.maf.springcloudstarter.function.Cache.cacheFunction; import static com.jmsoftware.maf.springcloudstarter.function.ExceptionHandling.computeAndHandleException; @@ -44,6 +45,13 @@ void testRequireTrue() { .orElseThrow(() -> new IllegalArgumentException("aBoolean is expected to be true")), "requireTrue doesn't throws exception" ); + + Assertions.assertThrows( + IllegalArgumentException.class, + () -> requireAllTrue(1 != 1, 2 == 2, 3 == 3) + .orElseThrow(() -> new IllegalArgumentException("Boolean array is expected to be all true")), + "requireTrue doesn't throws exception" + ); } /**