1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io.function;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotEquals;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import java.io.IOException;
25 import java.io.UncheckedIOException;
26 import java.util.concurrent.atomic.AtomicBoolean;
27
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 class IOBooleanSupplierTest {
35
36 private AtomicBoolean atomicBoolean;
37
38 @BeforeEach
39 public void beforeEach() {
40 atomicBoolean = new AtomicBoolean();
41 }
42
43 private boolean getThrowsIO(final IOBooleanSupplier supplier) throws IOException {
44 return supplier.getAsBoolean();
45 }
46
47 private boolean getThrowsNone(final IOBooleanSupplier supplier) {
48 return supplier.asBooleanSupplier().getAsBoolean();
49 }
50
51 @Test
52 void testAsSupplier() {
53 assertThrows(UncheckedIOException.class, () -> TestConstants.THROWING_IO_BOOLEAN_SUPPLIER.asBooleanSupplier().getAsBoolean());
54 assertEquals(true, getThrowsNone(() -> TestUtils.compareAndSetThrowsIO(atomicBoolean, true)));
55 assertEquals(true, atomicBoolean.get());
56 assertNotEquals(TestConstants.THROWING_IO_BOOLEAN_SUPPLIER.asBooleanSupplier(), TestConstants.THROWING_IO_BOOLEAN_SUPPLIER.asBooleanSupplier());
57 }
58
59 @Test
60 void testGet() throws IOException {
61 assertThrows(IOException.class, () -> TestConstants.THROWING_IO_BOOLEAN_SUPPLIER.getAsBoolean());
62 assertThrows(IOException.class, () -> {
63 throw new IOException();
64 });
65 assertEquals(true, getThrowsIO(() -> TestUtils.compareAndSetThrowsIO(atomicBoolean, true)));
66 assertEquals(true, atomicBoolean.get());
67 }
68 }