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.AtomicReference;
27
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 public class IOSupplierTest {
35
36 private AtomicReference<String> ref1;
37
38 private String getThrowsIO(final IOSupplier<String> supplier) throws IOException {
39 return supplier.get();
40 }
41
42 private String getThrowsNone(final IOSupplier<String> supplier) {
43 return supplier.asSupplier().get();
44 }
45
46 @BeforeEach
47 public void initEach() {
48 ref1 = new AtomicReference<>();
49 }
50
51 @Test
52 public void testAsSupplier() {
53 assertThrows(UncheckedIOException.class, () -> TestConstants.THROWING_IO_SUPPLIER.asSupplier().get());
54 assertEquals("new1", getThrowsNone(() -> TestUtils.compareAndSetThrowsIO(ref1, "new1")));
55 assertEquals("new1", ref1.get());
56 assertNotEquals(TestConstants.THROWING_IO_SUPPLIER.asSupplier(), TestConstants.THROWING_IO_SUPPLIER.asSupplier());
57 }
58
59 @Test
60 public void testGet() throws IOException {
61 assertThrows(IOException.class, () -> TestConstants.THROWING_IO_SUPPLIER.get());
62 assertThrows(IOException.class, () -> {
63 throw new IOException();
64 });
65 assertEquals("new1", getThrowsIO(() -> TestUtils.compareAndSetThrowsIO(ref1, "new1")));
66 assertEquals("new1", ref1.get());
67 }
68
69 }