Assert the composite BooleanConsumer created by andThen
diff --git a/src/test/java/org/apache/commons/lang3/function/BooleanConsumerTest.java b/src/test/java/org/apache/commons/lang3/function/BooleanConsumerTest.java
index e86b7e0..2f7a906 100644
--- a/src/test/java/org/apache/commons/lang3/function/BooleanConsumerTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/BooleanConsumerTest.java
@@ -22,7 +22,8 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.concurrent.atomic.AtomicBoolean;
-
+import java.util.concurrent.atomic.AtomicInteger;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -50,12 +51,32 @@
         nop.andThen(nop);
         // Documented in Javadoc edge-case.
         assertThrows(NullPointerException.class, () -> nop.andThen(null));
-        //
+
         final AtomicBoolean aBool1 = new AtomicBoolean();
         final AtomicBoolean aBool2 = new AtomicBoolean();
-        accept(aBool1::lazySet, true).andThen(aBool2::lazySet);
-        accept(aBool1::lazySet, true);
-        accept(aBool2::lazySet, true);
+
+        final BooleanConsumer bc = aBool1::lazySet;
+        final BooleanConsumer composite = bc.andThen(aBool2::lazySet);
+
+        composite.accept(true);
+        assertTrue(aBool1.get());
+        assertTrue(aBool2.get());
+
+        composite.accept(false);
+        assertFalse(aBool1.get());
+        assertFalse(aBool2.get());
+
+        // Check order
+        final BooleanConsumer bad = new BooleanConsumer() {
+            @Override
+            public void accept(boolean value) {
+                throw new IllegalStateException();
+            }
+        };
+        final BooleanConsumer badComposite = bad.andThen(aBool2::lazySet);
+
+        Assertions.assertThrows(IllegalStateException.class, () -> badComposite.accept(true));
+        assertFalse(aBool2.get(), "Second consumer should not be invoked");
     }
 
 }